123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- <?php
- namespace app\admin\controller;
- use app\admin\model\ActionLog;
- use app\BaseController;
- use think\App;
- use think\facade\Db;
- class Cat extends BaseController
- {
- public $post="";
- public function __construct(App $app)
- {
- parent::__construct($app);
- $this->post=$this->request->post();
- }
- public function list(){
- $where=[["is_del","=",0]];
- $pid = isset($this->post['pid']) &&$this->post['pid']!=="" ?intval($this->post['pid']): "0";
- $where[]=["pid","=",$pid];
- $cat_name=isset($this->post['cat_name']) && $this->post['cat_name'] !==""? intval($this->post['cat_name']) :"";
- if($cat_name!==""){
- $where[]=['cat_name',"like","%$cat_name%"];
- }
- $data = Db::name("cat")->where($where)->select();
- $vmp = [];
- foreach ($data as $sts){
- $vmp[]=stro($sts);
- }
- return app_show(0,"获取成功",$vmp);
- }
- public function plist(){
- $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']) :"1";
- $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
- $where =[["is_del","=",0]];
- $cat_name=isset($this->post['cat_name']) && $this->post['cat_name'] !==""? trim($this->post['cat_name']) :"";
- if($cat_name!==""){
- $where[]=['cat_name',"like","%$cat_name%"];
- }
- $pid=isset($this->post['pid']) && $this->post['pid'] !==""? intval($this->post['pid']) :"";
- if($pid!==""){
- $where[]=['pid',"=",$pid];
- }
- $status=isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']) :"";
- if($status!==""){
- $where[]=['status',"=",$status];
- }
- $count = Db::name("cat")->where($where)->count();
- $total = ceil($count / $size);
- $page = $page >= $total ? $total : $page;
- $list = Db::name('cat')->where($where)->page($page, $size)->select();
- return app_show(0, "获取成功", ['list' => $list, 'count' => $count]);
- }
- public function title(){
- $where =[["is_del","=",0]];
- $cat_name=isset($this->post['cat_name']) && $this->post['cat_name'] !==""? trim($this->post['cat_name']) :"";
- if($cat_name!==""){
- $where[]=['cat_name',"like","%$cat_name%"];
- }
- $pid=isset($this->post['pid']) && $this->post['pid'] !==""? intval($this->post['pid']) :"";
- if($pid!==""){
- $where[]=['pid',"=",$pid];
- }
- $status=isset($this->post['status']) && $this->post['status'] !==""? intval($this->post['status']) :"";
- if($status!==""){
- $where[]=['status',"=",$status];
- }
- $list = Db::name('cat')->where($where)->select();
- return app_show(0, "获取成功", $list);
- }
- public function create()
- {
- $cat_name = isset($this->post['cat_name']) && $this->post['cat_name'] !== "" ? trim($this->post['cat_name']) : "";
- if ($cat_name == "") {
- return error_show(1002, "参数cat_name不能为空");
- }
- $pid = isset($this->post['pid']) && $this->post['pid'] !== "" ? intval($this->post['pid']) : "";
- if ($pid === "") {
- return error_show(1002, "参数pid不能为空");
- }
- $cat_desc = isset($this->post['cat_desc']) && $this->post['cat_desc'] !== "" ? trim($this->post['cat_desc']) : "";
- $levl=Db::name('cat')->where(['id'=>$pid])->find();
- $level =1;
- if ($pid !== 0) {
- if(empty($levl)){
- return error_show(1002,"未找到父级数据");
- }
- $level =$levl['level']+1;
- }
- $specs_id = isset($this->post['specs_id']) && $this->post['specs_id'] !== "" ? $this->post['specs_id'] : [];
- if (empty($specs_id)) {
- return error_show(1002, "参数specs_id不能为空");
- }
- $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
- if($token==''){
- return error_show(1005,"参数token不能为空");
- }
- $user =GetUserInfo($token);
- if(empty($user)||$user['code']!=0){
- return error_show(1002,"创建人数据不存在");
- }
- $createrid= isset($user["data"]['id']) ? $user["data"]['id'] : "";
- $creater= isset($user["data"]['nickname']) ? $user["data"]['nickname'] : "";
- $rate = isset($this->post['rate']) && $this->post['rate'] !== "" ? intval($this->post['rate']) : "";
- $weight = isset($this->post['weight']) && $this->post['weight'] !== "" ? intval($this->post['weight']) : "0";
- $status = isset($this->post['status']) && $this->post['status'] !== "" ? intval($this->post['status']) : "1";
- Db::startTrans();
- try{
- $data = [
- "cat_name" => $cat_name,
- "pid" => $pid,
- "level" => $level,
- "rate" => $rate,
- "weight" => $weight,
- "status" => $status,
- "cat_desc"=>$cat_desc,
- "is_del"=>0,
- "addtime" => date("Y-m-d H:i:s"),
- "updatetime" => date("Y-m-d H:i:s")
- ];
- $datainfo = Db::name('cat')->insert($data,true);
- $vat =[];
- if ($datainfo>0) {
- $stx = ["order_code"=>$pid,"status"=>$status,"action_remark"=>'',"action_type"=>"create"];
- ActionLog::logAdd($this->post['token'],$stx,"sxd",$status,$stx);
- $spc =[];
- $spc['cat_id']=$datainfo;
- $spc['exam_status']=0;
- $spc['status']=0;
- $spc['creater']=$creater;
- $spc['createrid']=$createrid;
- $spc['is_del']=0;
- $spc['addtime']=date("Y-m-d H:i:d");
- $spc['updatetime']=date("Y-m_d H:i:s");
- $vpn = Db::name('cat_spec')->insert($spc,true);
- if ($vpn == "") {
- Db::rollback();
- return error_show(1002, "新建失败");
- }
- foreach ($specs_id as $value){
- $item =[];
- $item['cat_spec_id']=$vpn;
- $item['specs_id']=$value;
- $item['is_del']=0;
- $item['addtime']=date("Y-m-d H:i:s");
- $vat[] = $item;
- }
- $vp = Db::name('cat_specs')->insertAll($vat);
- if ($vp==0) {
- Db::rollback();
- return error_show(1005, "新建失败");
- }
- Db::commit();
- return error_show(0, "新建成功");
- } else {
- Db::rollback();
- return error_show(1002, "新建失败");
- }
- }catch (\Exception $e){
- Db::rollback();
- return error_show(1005,$e->getMessage());
- }
- }
- public function edit(){
- $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']) :"";
- $idinfo = Db::name('cat')->where(['id'=>$id])->find();
- if($idinfo==""){
- return error_show(1002,"未找到商品数据");
- }
- $cat_name= isset($this->post['cat_name']) && $this->post['cat_name'] !=="" ? trim($this->post['cat_name']) :"";
- if($cat_name==""){
- return error_show(1002,"参数cat_name不能为空");
- }
- $pid = isset($this->post['pid']) && $this->post['pid'] !=="" ? intval($this->post['pid']) :"";
- if($pid==""){
- return error_show(1002,"参数pid不能为空");
- }
- $cat_desc = isset($this->post['cat_desc']) && $this->post['cat_desc'] !=="" ? trim($this->post['cat_desc']) :"";
- $specs_id = isset($this->post['specs_id']) && $this->post['specs_id'] !== "" ? $this->post['specs_id'] : [];
- if (empty($specs_id)) {
- return error_show(1002, "参数specs_id不能为空");
- }
- $token = isset($this->post['token'])&& $this->post['token']!='' ? trim($this->post['token']):"";
- if($token==''){
- return error_show(1005,"参数token不能为空");
- }
- $user =GetUserInfo($token);
- if(empty($user)||$user['code']!=0){
- return error_show(1002,"创建人数据不存在");
- }
- $createrid= isset($user["data"]['id']) ? $user["data"]['id'] : "";
- $creater= isset($user["data"]['nickname']) ? $user["data"]['nickname'] : "";
- $level = isset($this->post['level']) && $this->post['level'] !=="" ? intval($this->post['level']) :"";
- $weight = isset($this->post['weight']) && $this->post['weight']!==""? intval($this->post['weight']):"0";
- $status = isset($this->post['status']) && $this->post['status'] !==""?intval($this->post['status']) :"1";
- Db::startTrans();
- try{
- $str = [
- "id"=>$id,
- "cat_name"=>$cat_name,
- "pid"=>$pid,
- "level"=>$level,
- "weight"=>$weight,
- "status"=>$status,
- "cat_desc"=>$cat_desc,
- "is_del"=>0,
- "updatetime"=>date("Y-m-d H:i:s")
- ];
- $strinfo = Db::name('cat')->where(['id'=>$id])->save($str);
- if($strinfo){
- $order = ["order_code"=>$id,"status"=>$status,"action_remark"=>'',"action_type"=>"edit"];
- ActionLog::logAdd($this->post['token'],$order,"sxd",$status,$order);
- $spc =[];
- $vp = Db::name('cat_spec')->where(['cat_id'=>$idinfo['id'],'is_del'=>0])->find();
- $str ="";
- if($vp!=false){
- isset($vp['id']) && $vp['id'] !== "" ? $spc['id'] = $vp['id'] : '';
- $spc['cat_id']=$idinfo['id'];
- $spc['exam_status']=0;
- $spc['status']=0;
- $spc['is_del']=0;
- $spc['updatetime']=date("Y-m_d H:i:s");
- $str=$vp['id'];
- $vpn = Db::name('cat_spec')->save($spc);
- }else{
- $spc['cat_id']=$idinfo['id'];
- $spc['exam_status']=0;
- $spc['status']=0;
- $spc['creater']=$creater;
- $spc['createrid']=$createrid;
- $spc['is_del']=0;
- $spc['addtime']=date("Y-m-d H:i:d");
- $spc['updatetime']=date("Y-m_d H:i:s");
- $vpn = Db::name('cat_spec')->insert($spc,true);
- $str=$vpn;
- }
- if ($vpn == false) {
- Db::rollback();
- return error_show(1002, "更新失败");
- }
- $db = Db::name('cat_specs')->where(['cat_spec_id'=>$str,'is_del'=>0])->column("specs_id");
- if(empty($db)){
- $db=[];
- }
- $sn = array_diff($specs_id,$db);
- $st = array_diff($db,$specs_id);
- if(!empty($st)){
- $int['is_del']=1;
- $dn = Db::name('cat_specs')->where(['specs_id'=>$st,'is_del'=>0])->save($int);
- if ($dn==false) {
- Db::rollback();
- return error_show(1002, "编辑失败");
- }
- }
- if(!empty($sn)){
- $vat=[];
- foreach ($sn as $value){
- $item=[];
- $item['cat_spec_id']=$str;
- $item['specs_id']=$value;
- $item['is_del']=0;
- $item['addtime'] = date("Y-m-d H:i:s");
- $vat[] = $item;
- }
- $vp = Db::name('cat_specs')->insertAll($vat);
- if ($vp==0) {
- Db::rollback();
- return error_show(1002, "编辑失败");
- }
- }
- Db::commit();
- return error_show(0,"编辑成功");
- }else{
- Db::rollback();
- return error_show(1002,"编辑失败");
- }
- }catch (\Exception $e){
- Db::rollback();
- return error_show(1005,$e->getMessage());
- }
- }
- public function info(){
- $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
- if($id==""){
- return error_show(1002,"参数id不能为空");
- }
- $idinfo = Db::name('cat')->where(['id'=>$id])->find();
- return app_show(0,"获取成功",$idinfo);
- }
- public function status(){
- $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):"";
- if($id===""){
- return error_show(1002,"参数id不能为空");
- }
- $stn = Db::name('cat')->where(['id'=>$id])->find();
- if(empty($stn)){
- return error_show(1002,"未找到商品数据");
- }
- $status = isset($this->post['status']) && $this->post['status'] !=="" ? intval($this->post['status']) :"";
- if($status===""){
- return error_show(1002,"参数status不能为空");
- }
- $pd= $stn['status'];
- $stn['status']=$status;
- $stn['updatetime']=date("Y-m-d H:i:s");
- $str = Db::name('cat')->where(['id'=>$id])->save($stn);
- if($str){
- $order = ["order_code"=>$id,"status"=>$pd,"action_remark"=>'',"action_type"=>"edit"];
- ActionLog::logAdd($this->post['token'],$order,"sxd",$stn['status'],$order);
- return error_show(0,"状态更新成功");
- }else{
- return error_show(1002,"状态更新失败");
- }
- }
- }
|