Activity.php 16 KB

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