Activity.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use think\App;
  5. use think\facade\Db;
  6. class Activity extends BaseController
  7. {
  8. public $post="";
  9. public function __construct(App $app)
  10. {
  11. parent::__construct($app);
  12. $this->post=$this->request->post();
  13. }
  14. public function list(){
  15. $page = isset($this->post['page']) && $this->post['page'] !==""? intval($this->post['page']):"1";
  16. $size = isset($this->post['size']) && $this->post['size'] !==""? intval($this->post['size']):"10";
  17. $where = [["is_del","=",0]];
  18. $activity_name = isset($this->post['activity_name']) && $this->post['activity_name'] !=="" ? trim($this->post['activity_name']):"";
  19. if($activity_name!=""){
  20. $where[]=['activity_name',"like","%$activity_name%"];
  21. }
  22. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']):"";
  23. if($status!=""){
  24. $where[]=['status',"=",$status];
  25. }
  26. $activity_code = isset($this->post['activity_code']) && $this->post['activity_code'] !=="" ? intval($this->post['activity_code']):"";
  27. if($activity_code!=""){
  28. $where[]=['activity_code',"like","%$activity_code%"];
  29. }
  30. $starttime = isset($this->post['starttime']) && $this->post['starttime']!=="" ? $this->post['starttime']:"";
  31. if($starttime!==""){
  32. $where[]=['start',">=",date('Y-m-d H:i:s',strtotime($starttime))];
  33. }
  34. $endtime = isset($this->post['endtime']) && $this->post['endtime']!=="" ? $this->post['endtime']:"";
  35. if($endtime!==""){
  36. $where[]=['end',"<",date('Y-m-d H:i:s',strtotime($endtime)+24*3600)];
  37. }
  38. $platform_code = isset($this->post['platform_code']) && $this->post['platform_code'] !=="" ? trim($this->post['platform_code']):"";
  39. if($platform_code!=""){
  40. $where[]=['platform_code',"=",$platform_code];
  41. }
  42. $company_id = isset($this->post['company_id']) && $this->post['company_id'] !=="" ? trim($this->post['company_id']):"";
  43. if($company_id!=""){
  44. $where[]=['company_id',"=",$company_id];
  45. }
  46. $count = Db::name('good_activity')->where($where)->count();
  47. $total = ceil($count / $size);
  48. $page = $page >= $total ? $total : $page;
  49. $list = Db::name('good_activity')->where($where)->page($page,$size)->order("addtime desc")->select();
  50. $data=[];
  51. foreach ($list as $value){
  52. $info = Db::name("platform")->where(['platform_code'=>$value['platform_code']])->find();
  53. $value['platform_name']=$info['platform_name'];
  54. $data[]=$value;
  55. }
  56. return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);
  57. }
  58. public function linst()
  59. {
  60. $page = isset($this->post['page']) && $this->post['page'] !== "" ? intval($this->post['page']) : "1";
  61. $size = isset($this->post['size']) && $this->post['size'] !== "" ? intval($this->post['size']) : "10";
  62. $where = [["a.is_del", "=", 0]];
  63. $spuCode = isset($this->post['spuCode']) && $this->post['spuCode'] !== "" ? trim($this->post['spuCode']) : "";
  64. if ($spuCode != "") {
  65. $where[] = ['a.spuCode', "like", "%$spuCode%"];
  66. }
  67. $good_name = isset($this->post['good_name']) && $this->post['good_name'] !== "" ? trim($this->post['good_name']) : "";
  68. if ($good_name != "") {
  69. $where[] = ['a.good_name', "like", "%$good_name%"];
  70. }
  71. $activity_code = isset($this->post['activity_code']) && $this->post['activity_code'] !=="" ? intval($this->post['activity_code']):"";
  72. if($activity_code!=""){
  73. $where[]=['a.activity_code',"like","%$activity_code%"];
  74. }
  75. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']):"";
  76. if($status!=""){
  77. $where[]=['a.status',"=",$status];
  78. }
  79. $activity_name = isset($this->post['activity_name']) && $this->post['activity_name'] !=="" ? trim($this->post['activity_name']):"";
  80. if($activity_name!=""){
  81. $where[]=['b.activity_name',"like","%$activity_name%"];
  82. }
  83. $platform_code = isset($this->post['platform_code']) && $this->post['platform_code'] !=="" ? trim($this->post['platform_code']):"";
  84. if($platform_code!=""){
  85. $where[]=['c.platform_code',"=",$platform_code];
  86. }
  87. $count = Db::name('activity_info')->alias("a")
  88. ->join("good_activity b","b.activity_code=b.activity_code","left")
  89. ->join("platform c","c.platform_code=b.platform_code","left")
  90. ->where($where)->count();
  91. $total = ceil($count / $size);
  92. $page = $page >= $total ? $total : $page;
  93. $list = Db::name('activity_info')->alias("a")
  94. ->join("good_activity b","b.activity_code=b.activity_code","left")
  95. ->join("platform c","c.platform_code=b.platform_code","left")
  96. ->where($where)->page($page,$size)->order("a.addtime desc")->field("a.*,b.activity_name,c.platform_name")->select();
  97. return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
  98. }
  99. public function zilist(){
  100. $page = isset($this->post['page']) && $this->post['page'] !== "" ? intval($this->post['page']) : "1";
  101. $size = isset($this->post['size']) && $this->post['size'] !== "" ? intval($this->post['size']) : "10";
  102. $where = [["a.is_del", "=", 0]];
  103. $good_code = isset($this->post['good_code']) && $this->post['good_code'] !== "" ? trim($this->post['good_code']) : "";
  104. if ($good_code != "") {
  105. $where[] = ['a.good_code', "like", "%$good_code%"];
  106. }
  107. $good_name = isset($this->post['good_name']) && $this->post['good_name'] !== "" ? trim($this->post['good_name']) : "";
  108. if ($good_name != "") {
  109. $where[] = ['a.good_name', "like", "%$good_name%"];
  110. }
  111. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']):"";
  112. if($status!=""){
  113. $where[]=['a.status',"=",$status];
  114. }
  115. $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !== "" ? trim($this->post['supplierNo']) : "";
  116. if ($supplierNo != "") {
  117. $where[] = ['a.supplierNo', "like", "%$supplierNo%"];
  118. }
  119. $name = isset($this->post['name']) && $this->post['name'] !== "" ? trim($this->post['name']) : "";
  120. if ($name != "") {
  121. $where[] = ['b.name', "like", "%$name%"];
  122. }
  123. $count = Db::name('good_zixun')->alias("a")->join("supplier b","b.code=a.supplierNo","left")
  124. ->where($where)->count();
  125. $total = ceil($count / $size);
  126. $page = $page >= $total ? $total : $page;
  127. $list = Db::name('good_zixun')->alias("a")->join("supplier b","b.code=a.supplierNo","left")
  128. ->where($where)->page($page,$size)->order("a.addtime desc")->field("a.*,b.name")->select();
  129. return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
  130. }
  131. public function create(){
  132. $activity_name = isset($this->post['activity_name'])&&$this->post['activity_name']!="" ? trim($this->post['activity_name']):"";
  133. if($activity_name==""){
  134. return error_show(1004,"参数activity_name不能为空");
  135. }
  136. $platform_code = isset($this->post['platform_code'])&&$this->post['platform_code']!="" ? trim($this->post['platform_code']):"";
  137. if($platform_code==""){
  138. return error_show(1004,"参数platform_code不能为空");
  139. }
  140. $company_id = isset($this->post['company_id'])&&$this->post['company_id']!="" ? trim($this->post['company_id']):"";
  141. if($company_id==""){
  142. return error_show(1004,"参数company_id不能为空");
  143. }
  144. $activity_start = isset($this->post['activity_start'])&&$this->post['activity_start']!="" ? $this->post['activity_start']:"";
  145. if($activity_start==""){
  146. return error_show(1004,"参数activity_start不能为空");
  147. }
  148. $activity_end = isset($this->post['activity_end'])&&$this->post['activity_end']!="" ? $this->post['activity_end']:"";
  149. if($activity_end==""){
  150. return error_show(1004,"参数activity_end不能为空");
  151. }
  152. $activity_desc = isset($this->post['activity_desc'])&&$this->post['activity_desc']!="" ?
  153. trim($this->post['activity_desc']):"";
  154. if($activity_desc==""){
  155. return error_show(1004,"参数activity_desc不能为空");
  156. }
  157. $is_stock = isset($this->post['is_stock'])&&$this->post['is_stock']!=="" ?
  158. intval($this->post['is_stock']):"";
  159. if($is_stock===""){
  160. return error_show(1004,"参数is_stock不能为空");
  161. }
  162. $good_list= isset($this->post['good_list'])&&$this->post['good_list']!=="" ?$this->post['good_list']:"";
  163. if($good_list==""){
  164. return error_show(1004,"参数good_list不能为空");
  165. }
  166. $activity_code = makeNo("ACT");
  167. Db::startTrans();
  168. try{
  169. $data=[
  170. "activity_name"=>$activity_name,
  171. "activity_code"=>$activity_code,
  172. "is_stock"=>$is_stock,
  173. "start"=>$activity_start,
  174. "end"=>$activity_end,
  175. "platform_code"=>$platform_code,
  176. "activity_desc"=>$activity_desc,
  177. "company_id"=>$company_id,
  178. "creater"=>"",
  179. "createrid"=>0,
  180. "status"=>0,
  181. "is_del"=>0,
  182. "addtime"=>date("Y-m-d H:i:s"),
  183. "updatetime"=>date("Y-m-d H:i:s")
  184. ];
  185. $inset = Db::name("good_activity")->insert($data);
  186. if($inset){
  187. if($good_list!=""&&!empty($good_list)){
  188. $temp=[];
  189. foreach ($good_list as $value){
  190. $lemp=[];
  191. $lemp['spuCode']=$value['spuCode'];
  192. $lemp['good_name']=$value['good_name'];
  193. $lemp['activity_code']=$activity_code;
  194. $lemp['activity_stock']=$value['activity_stock'];
  195. $lemp['moq_num']=0;
  196. $lemp['cost_price']=0;
  197. $lemp['sale_price']=0;
  198. $lemp['activity_price']=0;
  199. $lemp['status']=0;
  200. $lemp['remark']="";
  201. $lemp['is_del']=0;
  202. $lemp['addtime']=date("Y-m-d H:i:s");
  203. $lemp['updatetime']=date("Y-m-d H:i:s");
  204. $temp[]=$lemp;
  205. }
  206. $iall=Db::name("activity_info")->insertAll($temp);
  207. if($iall==0){
  208. Db::rollback();
  209. return error_show(1005,"新建失败");
  210. }
  211. }
  212. Db::commit();
  213. return app_show(0,"新建成功");
  214. }
  215. }catch (\Exception $e){
  216. Db::rollback();
  217. return error_show(1005,$e->getMessage());
  218. }
  219. }
  220. public function cost(){
  221. $good_list= isset($this->post['good_list'])&&!empty($this->post['good_list']) ?$this->post['good_list']:"";
  222. if($good_list==""){
  223. return error_show(1004,"参数good_list不能为空");
  224. }
  225. $activity_code= isset($this->post['activity_code'])&&$this->post['activity_code']!=="" ?trim($this->post['activity_code']):"";
  226. if($activity_code==""){
  227. return error_show(1004,"参数activity_code不能为空");
  228. }
  229. $activity = Db::name("good_activity")->where(["activity_code"=>$activity_code,"is_del"=>0])->find();
  230. if($activity==false){
  231. return error_show(1004,"未找到活动数据");
  232. }
  233. Db::startTrans();
  234. try{
  235. foreach ($good_list as $value){
  236. $temp=[];
  237. $temp["id"]=$value['id'];
  238. $temp["cost_price"]=$value['cost_price'];
  239. $temp["moq_num"]=$value['moq_num'];
  240. $temp["updatetime"]=date("Y-m-d H:i:s");
  241. $up=Db::name("activity_info")->save($temp);
  242. if($up==false){
  243. Db::rollback();
  244. return error_show(1004,"商品数据更新失败");
  245. }
  246. }
  247. $activity['status']=2;
  248. $activity['updatetime']=date("Y-m-d H:i:s");
  249. $act = Db::name("good_activity")->save($activity);
  250. if($act){
  251. Db::commit();
  252. return error_show(0,"商品数据更新成功");
  253. }else{
  254. Db::rollback();
  255. return error_show(1004,"商品数据更新失败");
  256. }
  257. }catch (\Exception $e){
  258. Db::rollback();
  259. return error_show(1004,$e->getMessage());
  260. }
  261. }
  262. public function activity(){
  263. $good_list= isset($this->post['good_list'])&&!empty($this->post['good_list']) ?$this->post['good_list']:"";
  264. if($good_list==""){
  265. return error_show(1004,"参数good_list不能为空");
  266. }
  267. $activity_code= isset($this->post['activity_code'])&&$this->post['activity_code']!=="" ?trim($this->post['activity_code']):"";
  268. if($activity_code==""){
  269. return error_show(1004,"参数activity_code不能为空");
  270. }
  271. $activity = Db::name("good_activity")->where(["activity_code"=>$activity_code,"is_del"=>0])->find();
  272. if($activity==false){
  273. return error_show(1004,"未找到活动数据");
  274. }
  275. Db::startTrans();
  276. try{
  277. foreach ($good_list as $value){
  278. $temp=[];
  279. $temp["id"]=$value['id'];
  280. $temp["sale_price"]=$value['sale_price'];
  281. $temp["activity_price"]=$value['activity_price'];
  282. $temp["updatetime"]=date("Y-m-d H:i:s");
  283. $up=Db::name("activity_info")->save($temp);
  284. if($up==false){
  285. Db::rollback();
  286. return error_show(1004,"商品数据更新失败");
  287. }
  288. }
  289. $activity['status']=3;
  290. $activity['updatetime']=date("Y-m-d H:i:s");
  291. $act = Db::name("good_activity")->save($activity);
  292. if($act){
  293. Db::commit();
  294. return error_show(0,"商品数据更新成功");
  295. }else{
  296. Db::rollback();
  297. return error_show(1004,"商品数据更新失败");
  298. }
  299. }catch (\Exception $e){
  300. Db::rollback();
  301. return error_show(1004,$e->getMessage());
  302. }
  303. }
  304. public function exam(){
  305. $good_list= isset($this->post['good_list'])&&!empty($this->post['good_list']) ?$this->post['good_list']:"";
  306. if($good_list==""){
  307. return error_show(1004,"参数good_list不能为空");
  308. }
  309. $activity_code= isset($this->post['activity_code'])&&$this->post['activity_code']!=="" ?trim($this->post['activity_code']):"";
  310. if($activity_code==""){
  311. return error_show(1004,"参数activity_code不能为空");
  312. }
  313. $activity = Db::name("good_activity")->where(["activity_code"=>$activity_code,"is_del"=>0])->find();
  314. if($activity==false){
  315. return error_show(1004,"未找到活动数据");
  316. }
  317. Db::startTrans();
  318. try{
  319. foreach ($good_list as $value){
  320. $temp=[];
  321. $temp["id"]=$value['id'];
  322. $temp["status"]=$value['status'];
  323. $temp["remark"]=$value['remark'];
  324. $temp["updatetime"]=date("Y-m-d H:i:s");
  325. $up=Db::name("activity_info")->save($temp);
  326. if($up==false){
  327. Db::rollback();
  328. return error_show(1004,"商品数据更新失败");
  329. }
  330. }
  331. $activity['status']=4;
  332. $activity['updatetime']=date("Y-m-d H:i:s");
  333. $act = Db::name("good_activity")->save($activity);
  334. if($act){
  335. Db::commit();
  336. return error_show(0,"商品数据审核成功");
  337. }else{
  338. Db::rollback();
  339. return error_show(1004,"商品数据审核失败");
  340. }
  341. }catch (\Exception $e){
  342. Db::rollback();
  343. return error_show(1004,$e->getMessage());
  344. }
  345. }
  346. public function info(){
  347. $activity_code= isset($this->post['activity_code'])&&$this->post['activity_code']!=="" ?trim($this->post['activity_code']):"";
  348. if($activity_code==""){
  349. return error_show(1004,"参数activity_code不能为空");
  350. }
  351. $activity = Db::name("good_activity")->where(["activity_code"=>$activity_code,"is_del"=>0])->find();
  352. if($activity==false){
  353. return error_show(1004,"未找到活动数据");
  354. }
  355. $activity_info =Db::name("activity_info")->where(["activity_code"=>$activity_code,"is_del"=>0])->select();
  356. $activity['info']=empty($activity_info)?[]:$activity_info;
  357. return app_show(0,"获取成功",$activity);
  358. }
  359. }