Cat.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\model\ActionLog;
  4. use app\BaseController;
  5. use think\App;
  6. use think\facade\Db;
  7. class Cat extends BaseController
  8. {
  9. public $post="";
  10. public function __construct(App $app)
  11. {
  12. parent::__construct($app);
  13. $this->post=$this->request->post();
  14. }
  15. public function list(){
  16. $where=[];
  17. $pid = isset($this->post['pid']) &&$this->post['pid']!=="" ?intval($this->post['pid']): "0";
  18. $where[]=["pid","=",$pid];
  19. $cat_name=isset($this->post['cat_name']) && $this->post['cat_name'] !==""? intval($this->post['cat_name']) :"";
  20. if($cat_name!==""){
  21. $where[]=['cat_name',"like","%$cat_name%"];
  22. }
  23. $data = Db::name("cat")->where($where)->select();
  24. $vmp = [];
  25. foreach ($data as $sts){
  26. $vmp[]=stro($sts);
  27. }
  28. return app_show(0,"获取成功",$vmp);
  29. }
  30. public function plist(){
  31. $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']) :"1";
  32. $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
  33. $where =[];
  34. $cat_name=isset($this->post['cat_name']) && $this->post['cat_name'] !==""? trim($this->post['cat_name']) :"";
  35. if($cat_name!==""){
  36. $where[]=['cat_name',"like","%$cat_name%"];
  37. }
  38. $pid=isset($this->post['pid']) && $this->post['pid'] !==""? intval($this->post['pid']) :"";
  39. if($pid!==""){
  40. $where[]=['pid',"=",$pid];
  41. }
  42. $status=isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']) :"";
  43. if($status!==""){
  44. $where[]=['status',"=",$status];
  45. }
  46. $count = Db::name("cat")->where($where)->count();
  47. $total = ceil($count / $size);
  48. $page = $page >= $total ? $total : $page;
  49. $list = Db::name('cat')->where($where)->page($page, $size)->select();
  50. return app_show(0, "获取成功", ['list' => $list, 'count' => $count]);
  51. }
  52. public function create()
  53. {
  54. $cat_name = isset($this->post['cat_name']) && $this->post['cat_name'] !== "" ? trim($this->post['cat_name']) : "";
  55. if ($cat_name == "") {
  56. return error_show(1002, "参数cat_name不能为空");
  57. }
  58. $pid = isset($this->post['pid']) && $this->post['pid'] !== "" ? intval($this->post['pid']) : "";
  59. if ($pid === "") {
  60. return error_show(1002, "参数pid不能为空");
  61. }
  62. //$level = isset($this->post['level']) && $this->post['level'] !== "" ? intval($this->post['level']) : "";
  63. $levl=Db::name('cat')->where(['id'=>$pid])->find();
  64. $level =1;
  65. if ($pid !== 0) {
  66. if(empty($levl)){
  67. return error_show(1002,"未找到父级数据");
  68. }
  69. $level =$levl['level']+1;
  70. }
  71. $specs_id = isset($this->post['specs_id']) && $this->post['specs_id'] !== "" ? $this->post['specs_id'] : [];
  72. if (empty($specs_id)) {
  73. return error_show(1002, "参数specs_id不能为空");
  74. }
  75. $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
  76. if($token==''){
  77. return error_show(1005,"参数token不能为空");
  78. }
  79. $user =GetUserInfo($token);
  80. if(empty($user)||$user['code']!=0){
  81. return error_show(1002,"创建人数据不存在");
  82. }
  83. $createrid= isset($user["data"]['id']) ? $user["data"]['id'] : "";
  84. $creater= isset($user["data"]['nickname']) ? $user["data"]['nickname'] : "";
  85. $rate = isset($this->post['rate']) && $this->post['rate'] !== "" ? intval($this->post['rate']) : "";
  86. $weight = isset($this->post['weight']) && $this->post['weight'] !== "" ? intval($this->post['weight']) : "0";
  87. $status = isset($this->post['status']) && $this->post['status'] !== "" ? intval($this->post['status']) : "1";
  88. Db::startTrans();
  89. try{
  90. $data = [
  91. "cat_name" => $cat_name,
  92. "pid" => $pid,
  93. "level" => $level,
  94. "rate" => $rate,
  95. "weight" => $weight,
  96. "status" => $status,
  97. "addtime" => date("Y-m-d H:i:s"),
  98. "updatetime" => date("Y-m-d H:i:s")
  99. ];
  100. $datainfo = Db::name('cat')->insert($data);
  101. $vat =[];
  102. if ($datainfo>0) {
  103. $stx = ["order_code"=>$pid,"status"=>$status,"action_remark"=>'',"action_type"=>"create"];
  104. ActionLog::logAdd($this->post['token'],$stx,"sxd",$status,$stx);
  105. $spc =[];
  106. $spc['cat_id']=$datainfo['id'];
  107. $spc['exam_status']=0;
  108. $spc['status']=0;
  109. $spc['creater']=$creater;
  110. $spc['createrid']=$createrid;
  111. $spc['is_del']=0;
  112. $spc['addtime']=date("Y-m-d H:i:d");
  113. $spc['updatetime']=date("Y-m_d H:i:s");
  114. $vpn = Db::name('cat_spec')->insert($spc,true);
  115. if ($vpn == "") {
  116. Db::rollback();
  117. return error_show(1002, "新建失败");
  118. }
  119. foreach ($specs_id as $value){
  120. $item =[];
  121. $item['cat_spec_id']=$vpn['id'];
  122. $item['specs_id']=$value['specs_id'];
  123. $item['is_del']=0;
  124. $item['addtime']=date("Y-m-d H:i:d");
  125. $vat[] = $item;
  126. }
  127. $vp = Db::name('cat_specs')->insertAll($vat);
  128. if ($vp) {
  129. Db::rollback();
  130. return error_show(1002, "新建失败");
  131. }
  132. Db::commit();
  133. return error_show(0, "新建成功");
  134. } else {
  135. Db::rollback();
  136. return error_show(1002, "新建失败");
  137. }
  138. }catch (\Exception $e){
  139. Db::rollback();
  140. return error_show(1005,$e->getMessage());
  141. }
  142. }
  143. public function edit(){
  144. $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']) :"";
  145. $idinfo = Db::name('cat')->where(['id'=>$id])->find();
  146. if($idinfo==""){
  147. return error_show(1002,"未找到商品数据");
  148. }
  149. $cat_name= isset($this->post['cat_name']) && $this->post['cat_name'] !=="" ? trim($this->post['cat_name']) :"";
  150. if($cat_name==""){
  151. return error_show(1002,"参数cat_name不能为空");
  152. }
  153. $pid = isset($this->post['pid']) && $this->post['pid'] !=="" ? intval($this->post['pid']) :"";
  154. if($pid==""){
  155. return error_show(1002,"参数pid不能为空");
  156. }
  157. $specs_id = isset($this->post['specs_id']) && $this->post['specs_id'] !== "" ? $this->post['specs_id'] : [];
  158. if (empty($specs_id)) {
  159. return error_show(1002, "参数specs_id不能为空");
  160. }
  161. $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
  162. if($token==''){
  163. return error_show(1005,"参数token不能为空");
  164. }
  165. $user =GetUserInfo($token);
  166. if(empty($user)||$user['code']!=0){
  167. return error_show(1002,"创建人数据不存在");
  168. }
  169. $createrid= isset($user["data"]['id']) ? $user["data"]['id'] : "";
  170. $creater= isset($user["data"]['nickname']) ? $user["data"]['nickname'] : "";
  171. $level = isset($this->post['level']) && $this->post['level'] !=="" ? intval($this->post['level']) :"";
  172. $weight = isset($this->post['weight']) && $this->post['weight']!==""? intval($this->post['weight']):"0";
  173. $status = isset($this->post['status']) && $this->post['status'] !==""?intval($this->post['status']) :"1";
  174. Db::startTrans();
  175. try{
  176. $str = [
  177. "id"=>$id,
  178. "cat_name"=>$cat_name,
  179. "pid"=>$pid,
  180. "level"=>$level,
  181. "weight"=>$weight,
  182. "status"=>$status,
  183. "updatetime"=>date("Y-m-d H:i:s")
  184. ];
  185. $strinfo = Db::name('cat')->where(['id'=>$id])->save($str);
  186. if($strinfo){
  187. $order = ["order_code"=>$id,"status"=>$status,"action_remark"=>'',"action_type"=>"edit"];
  188. ActionLog::logAdd($this->post['token'],$order,"sxd",$status,$order);
  189. $spc =[];
  190. $vp = Db::name('cat_spec')->where(['id'=>$idinfo['id'],'is_del'=>0])->find();
  191. if($vp==false){
  192. isset($vp['id']) && $vp['id'] !== "" ? $spc['id'] = $vp['id'] : '';
  193. }
  194. $spc['cat_id']=$idinfo['id'];
  195. $spc['exam_status']=0;
  196. $spc['status']=0;
  197. $spc['creater']=$creater;
  198. $spc['createrid']=$createrid;
  199. $spc['is_del']=0;
  200. $spc['addtime']=date("Y-m-d H:i:d");
  201. $spc['updatetime']=date("Y-m_d H:i:s");
  202. $vpn = Db::name('cat_spec')->save($spc);
  203. if ($vpn == false) {
  204. Db::rollback();
  205. return error_show(1002, "更新失败");
  206. }
  207. foreach ($specs_id as $value){
  208. $item =[];
  209. $item['id']=$value['id'];
  210. $item['cat_spec_id']=$vpn['id'];
  211. $item['specs_id']=$value;
  212. $item['is_del']=0;
  213. isset($value['id']) && $value['id'] !== "" ? '' : $item['addtime'] = date("Y-m-d H:i:s");
  214. $vat[] = $item;
  215. }
  216. $vp = Db::name('cat_specs')->save($vat);
  217. if ($vp) {
  218. Db::rollback();
  219. return error_show(1002, "编辑失败");
  220. }
  221. Db::commit();
  222. return error_show(0,"编辑成功");
  223. }else{
  224. Db::rollback();
  225. return error_show(1002,"编辑失败");
  226. }
  227. }catch (\Exception $e){
  228. Db::rollback();
  229. return error_show(1005,$e->getMessage());
  230. }
  231. }
  232. public function info(){
  233. $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
  234. if($id==""){
  235. return error_show(1002,"参数id不能为空");
  236. }
  237. $idinfo = Db::name('cat')->where(['id'=>$id])->find();
  238. return app_show(0,"获取成功",$idinfo);
  239. }
  240. public function status(){
  241. $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):"";
  242. if($id===""){
  243. return error_show(1002,"参数id不能为空");
  244. }
  245. $stn = Db::name('cat')->where(['id'=>$id])->find();
  246. if(empty($stn)){
  247. return error_show(1002,"未找到商品数据");
  248. }
  249. $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
  250. if($status===""){
  251. return error_show(1002,"参数status不能为空");
  252. }
  253. $pd= $stn['status'];
  254. $stn['status']=$status;
  255. $stn['updatetime']=date("Y-m-d H:i:s");
  256. $str = Db::name('cat')->where(['id'=>$id])->save($stn);
  257. if($str){
  258. $order = ["order_code"=>$id,"status"=>$pd,"action_remark"=>'',"action_type"=>"edit"];
  259. ActionLog::logAdd($this->post['token'],$order,"sxd",$stn['status'],$order);
  260. return error_show(0,"状态更新成功");
  261. }else{
  262. return error_show(1002,"状态更新失败");
  263. }
  264. }
  265. }