|
@@ -5,7 +5,9 @@ namespace app\admin\controller;
|
|
|
|
|
|
|
|
|
use think\App;
|
|
|
+use think\Exception;
|
|
|
use think\facade\Db;
|
|
|
+use think\facade\Validate;
|
|
|
|
|
|
//泰康专属的一个列表
|
|
|
class Exclusive extends Base
|
|
@@ -89,7 +91,9 @@ class Exclusive extends Base
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function status(){
|
|
|
+ //业务参数-专属类型管理的启用/禁用
|
|
|
+ public function status()
|
|
|
+ {
|
|
|
// $id=isset($this->post['id'])&&$this->post['id']!=="" ? intval($this->post['id']):"";
|
|
|
// if($id===""){
|
|
|
// return error_show(1004,"参数id不能为空");
|
|
@@ -107,51 +111,138 @@ class Exclusive extends Base
|
|
|
// }else{
|
|
|
// return error_show(1004,"{$msg}失败");
|
|
|
// }
|
|
|
- $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):"";
|
|
|
- if($id===""){
|
|
|
- return error_show(1002,"参数id不能为空");
|
|
|
- }
|
|
|
- $stn = Db::name('exclusive')->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不能为空");
|
|
|
- }
|
|
|
- if ($stn['level']==2) {
|
|
|
- if($status==1){
|
|
|
- $can = mai($stn['id']);
|
|
|
- $cat=array_column($can,'id');
|
|
|
- }else{
|
|
|
- $cat =$stn['id'];
|
|
|
- }
|
|
|
- // return error_show(1002, "所在级别不能启用");
|
|
|
- }
|
|
|
- if($stn['level']==1){
|
|
|
- if($status==1){
|
|
|
- return error_show(1002,"所在等级不能启用");
|
|
|
- }else{
|
|
|
- $db= Db::name('exclusive')->where(['pid'=>$stn['id'],'status'=>1,'is_del'=>0])->count();
|
|
|
- if($db==0){
|
|
|
- $cat = $stn['id'];
|
|
|
- }else{
|
|
|
- return error_show(1002,"子级分类未禁用");
|
|
|
+
|
|
|
+
|
|
|
+ $param = $this->request->only(['id', 'status']);
|
|
|
+
|
|
|
+ $val = Validate::rule([
|
|
|
+ 'id' => 'require|number|gt:0',
|
|
|
+ 'status' => 'require|number|in:0,1',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ if (!$val->check($param)) return error_show(1004, $val->getError());
|
|
|
+
|
|
|
+ Db::startTrans();
|
|
|
+ try {
|
|
|
+
|
|
|
+ $res = Db::name('exclusive')
|
|
|
+ ->field('id,level,status,pid')
|
|
|
+ ->where('id', $param['id'])
|
|
|
+ ->find();
|
|
|
+
|
|
|
+ if (empty($res)) throw new Exception('该专属类型不存在');
|
|
|
+
|
|
|
+ //启用
|
|
|
+ if ($param['status'] == 1) {
|
|
|
+ //一级
|
|
|
+ if ($res['level'] == 1) {
|
|
|
+
|
|
|
+ //是否存在子级
|
|
|
+ $total = Db::name('exclusive')
|
|
|
+ ->where(['pid' => $param['id'], 'is_del' => 0])
|
|
|
+ ->count('id');
|
|
|
+
|
|
|
+ if ($total) {
|
|
|
+ //有子级的话,子级有一个启用,即可启用
|
|
|
+ $child_id = Db::name('exclusive')
|
|
|
+ ->field('id')
|
|
|
+ ->where(['pid' => $param['id'], 'is_del' => 0, 'status' => 1])
|
|
|
+ ->find();
|
|
|
+
|
|
|
+ if (empty($child_id)) throw new Exception('请先启用一个子级');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
+ //二级的话,顺便把它的上级也启用了
|
|
|
+ Db::name('exclusive')
|
|
|
+ ->where(['id' => $res['pid'], 'is_del' => 0, 'status' => 0])
|
|
|
+ ->update(['status' => $param['status'], 'updatetime' => date('Y-m-d H:i:s')]);
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+ } elseif ($param['status'] == 0) {
|
|
|
+ //禁用
|
|
|
+ if ($res['level'] == 1) {
|
|
|
+
|
|
|
+ //是否存在子级
|
|
|
+ $total = Db::name('exclusive')
|
|
|
+ ->where(['pid' => $param['id'], 'is_del' => 0])
|
|
|
+ ->count('id');
|
|
|
+
|
|
|
+ if ($total) {
|
|
|
+ //有子级的话,子级全部禁用,方可禁用
|
|
|
+ $child_id = Db::name('exclusive')
|
|
|
+ ->field('id')
|
|
|
+ ->where(['pid' => $param['id'], 'is_del' => 0, 'status' => 1])
|
|
|
+ ->find();
|
|
|
+ if (!empty($child_id)) throw new Exception('请先禁用全部子级');
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+ //修改自己
|
|
|
+ Db::name('exclusive')
|
|
|
+ ->where(['id' => $param['id'], 'is_del' => 0])
|
|
|
+ ->update(['status' => $param['status'], 'updatetime' => date('Y-m-d H:i:s')]);
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+ return error_show(0, "状态更新成功");
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, $e->getMessage());
|
|
|
}
|
|
|
- // $pd= $stn['status'];
|
|
|
- $it=[];
|
|
|
- $it['status']=$status;
|
|
|
- $it['updatetime']=date("Y-m-d H:i:s");
|
|
|
- $str = Db::name('exclusive')->where(['id'=>$cat,'is_del'=>0])->save($it);
|
|
|
- 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,"状态更新失败");
|
|
|
- }
|
|
|
+
|
|
|
+// $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']):"";
|
|
|
+// if($id===""){
|
|
|
+// return error_show(1002,"参数id不能为空");
|
|
|
+// }
|
|
|
+// $stn = Db::name('exclusive')->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不能为空");
|
|
|
+// }
|
|
|
+// if ($stn['level'] == 2) {
|
|
|
+// if ($status == 1) {
|
|
|
+// $can = mai($stn['id']);
|
|
|
+// $cat = array_column($can, 'id');//子级如果启用,连同它的父级一起启用
|
|
|
+// } else {
|
|
|
+// $cat = $stn['id'];
|
|
|
+// }
|
|
|
+// // return error_show(1002, "所在级别不能启用");
|
|
|
+// }
|
|
|
+// if ($stn['level'] == 1) {
|
|
|
+// if ($status == 1) {
|
|
|
+// return error_show(1002, "所在等级不能启用");
|
|
|
+// } else {
|
|
|
+// $db = Db::name('exclusive')->where(['pid' => $stn['id'], 'status' => 1, 'is_del' => 0])->count();
|
|
|
+// if ($db == 0) {
|
|
|
+// $cat = $stn['id'];
|
|
|
+// } else {
|
|
|
+// return error_show(1002, "子级分类未禁用");
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // $pd= $stn['status'];
|
|
|
+// $it = [];
|
|
|
+// $it['status'] = $status;
|
|
|
+// $it['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+// $str = Db::name('exclusive')->where(['id' => $cat, 'is_del' => 0])->save($it);
|
|
|
+// 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, "状态更新失败");
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public function query(){
|