123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- <?php
- namespace app\user\controller;
- use app\user\model\CustomerInfo;
- use app\user\model\CustomerMember;
- use app\user\model\Headquarters;
- use think\App;
- use think\facade\Validate;
- class Customer extends Base{
- public function __construct(App $app) {
- parent::__construct($app);
- $this->model = new CustomerInfo();
- }
- /**
- * @return \think\response\Json|void
- */
- public function create(){
- $param = $this->request->only([
- 'companyName'=>"",
- 'parent' => 0,
- 'is_del' => 0,
- 'customer_member',
- 'branch',
- 'middle',
- 'area',
- ], 'post', 'trim');
- $val = Validate::rule([
- 'companyName|客户名称' => 'require|max:255|unique:app\user\model\CustomerInfo,companyName^parent^is_del',
- 'customer_member|联系方式' => 'require|array|max:100',
- 'branch|省级' => 'require',
- 'middle|市级' => 'require',
- 'area|区域' => 'require',
- ]);
- if ($val->check($param) == false) return error($val->getError());
- $code= makeNo("KH");
- $data = [
- 'companyNo' => $code,
- 'companyName' => $param['companyName'],
- 'parent' => $param['parent'],
- 'itemid' => $param['parent'],
- 'area' =>$param['area'],
- 'status' => 0,
- 'branch' =>$param['branch'],
- 'middle' =>$param['middle'],
- 'is_del' => 0,
- 'createrid' => $this->uid,
- 'creater' => $this->uname,
- ];
- $member=[];
- if(!empty($param['customer_member'])){
- foreach ($param['customer_member'] as $key => $value) {
- $member[] = [
- 'commobile' => $value['commobile'] ?? '',
- 'contactor' => $value['contactor'] ?? '',
- 'position' => $value['position'] ?? '',
- 'wxaccount' => $value['wxaccount'] ?? '',
- 'qqaccount' => $value['qqaccount'] ?? '',
- 'email' => $value['email'] ?? '',
- 'comdepart' => $value['comdepart'] ?? '',
- 'status' => $value['status'] ?? '',
- 'createrid' => $this->uid,
- 'creater' => $this->uname,
- 'companyNo' => $code,
- ];
- }
- }
- $this->model->startTrans();
- try{
- $create=$this->model->create($data);
- if($create->isEmpty()) return error("创建失败");
- if(!empty($member)){
- $memberAdd= $this->model->member()->saveAll($member);
- if($memberAdd==false) return error("创建失败");
- }
- $heq=Headquarters::createInfo($create,2);
- if($heq==false) return error("创建失败");
- $this->model->commit();
- }catch (\Exception $e){
- $this->model->rollback();
- return error($e->getMessage());
- }
- return success("创建成功");
- }
- /**
- * @param id 主键id
- * companyName 客户名称
- * parent 父级id
- * is_del 删除状态
- * customer_member 联系方式
- * branch 省级
- * middle 市级
- * area 区域
- * @return \think\Response|\think\response\Json|void
- * @throws \think\exception\PDOException
- */
- public function save(){
- $param = $this->request->only([
- 'id'=>"",
- 'companyName'=>"",
- 'parent' => 0,
- 'is_del' => 0,
- 'customer_member',
- 'branch',
- 'middle',
- 'area',
- ], 'post', 'trim');
- $val = Validate::rule([
- 'id|主键ID' => 'require',
- 'companyName|客户名称' => 'require|max:255|unique:app\user\model\CustomerInfo,companyName^parent^is_del',
- 'customer_member|联系方式' => 'require|array|max:100',
- 'branch|省级' => 'require',
- 'middle|市级' => 'require',
- 'area|区域' => 'require',
- ]);
- if ($val->check($param) == false) return error($val->getError());
- $info=$this->model->findOrEmpty($param['id']);
- if($info->isEmpty()) return error("客户不存在");
- if($info->status==1) return error("客户已启用,不能修改");
- $member=[];
- if(!empty($param['customer_member'])){
- foreach ($param['customer_member'] as $key => $value) {
- $member[] = [
- "id"=>$value['id'] ?? null,
- 'commobile' => $value['commobile'] ?? '',
- 'contactor' => $value['contactor'] ?? '',
- 'position' => $value['position'] ?? '',
- 'wxaccount' => $value['wxaccount'] ?? '',
- 'qqaccount' => $value['qqaccount'] ?? '',
- 'email' => $value['email'] ?? '',
- 'comdepart' => $value['comdepart'] ?? '',
- 'status' => $value['status'] ?? '',
- 'createrid' => $this->uid,
- 'creater' => $this->uname,
- 'companyNo' => $info->companyNo,
- ];
- }
- }
- $info->companyName=$param['companyName'];
- $info->parent=$param['parent'];
- $info->branch=$param['branch'];
- $info->middle=$param['middle'];
- $info->area=$param['area'];
- $this->model->startTrans();
- try{
- $info->save();
- if(!empty($member)){
- $memberAdd= $this->model->member()->saveAll($member);
- if($memberAdd==false) return error("修改失败");
- }
- $heq=Headquarters::createInfo($info,2);
- if($heq==false) return error("修改失败");
- $this->model->commit();
- }catch (\Exception $e){
- $this->model->rollback();
- return error($e->getMessage());
- }
- return success("修改成功");
- }
- /**
- * @param id 主键id
- * @return \think\Response|\think\response\Json|void
- * @throws \think\exception\PDOException
- */
- public function delete(){
- $id=$this->request->param('id');
- if(empty($id)) return error("参数错误");
- $info=$this->model->findOrEmpty($id);
- if($info->isEmpty()) return error("客户不存在");
- if($info->status==1) return error("客户已启用,不能删除");
- $this->model->startTrans();
- try{
- $info->is_del=1;
- $del=$info->save();
- if($del==false) return error("删除失败");
- $delHq=Headquarters::where('code',$info->companyNo)->update(["is_del"=>0,"updater"=>$this->uname,"updaterid"=>$this->uid]);
- if($delHq==false) return error("删除失败");
- $this->model->commit();
- }catch (\Exception $e){
- $this->model->rollback();
- return error($e->getMessage());
- }
- return success("删除成功");
- }
- /**
- * @return \think\Response|\think\response\Json|void
- */
- public function info(){
- $id=$this->request->param('id');
- if(empty($id)) return error("参数错误");
- $info=$this->model->with(['member','parentInfo'])->findOrEmpty($id);
- if($info->isEmpty()) return error("客户不存在");
- return success("获取成功",$info);
- }
- /**
- * @param page 页码
- * @param size 页
- * companyName 客户名称
- * status 状态
- * createrId 创建人id
- * start 开始时间
- * end 结束时间
- * companyNo 公司编号
- * itemid 项目id
- * @return \think\Response|\think\response\Json|void
- */
- public function list(){
- $param=$this->request->param(["page"=>1,"size"=>10,"companyName"=>"","status"=>"","createrId"=>"","start"=>"",
- "companyNo"=>"","itemid"=>0,"end"=>""],"post","trim");
- $where= [["is_del","=",0]];
- if($param['companyName']!="") $where[]=["companyName","like","%".$param['companyName']."%"];
- if($param['status']!="") $where[]=["status","=",$param['status']];
- if($param['createrId']!="") $where[]=["createrid","=",$param['createrId']];
- if($param['start']!="")$where[]=["addtime",">=",startTime($param['start'])];
- if($param['end']!="")$where[]=["addtime","<=",endTime($param['end'])];
- if($param['companyNo']!="") $where[]=["companyNo","=",$param['companyNo']];
- if($param['itemid']!=0)$where[]=["itemid","=",$param['itemid']];
- $list=$this->model->with(["member","parentInfo"])
- ->where($where)
- ->order("id","desc")
- ->paginate(["list_rows"=>$param['size'],"page"=>$param['page']]);
- return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
- }
- /**
- * @param page 页码
- * companyNo 客户编号
- * status 状态
- * createrId 创建人id
- * start 开始时间
- * end 结束时间
- * @return \think\Response|\think\response\Json
- * @throws \think\exception\DbException
- */
- public function customerMember(){
- $param=$this->request->param(["page"=>1,"size"=>10,"companyNo"=>"","status"=>"","createrId"=>"","start"=>"",
- "end"=>""],"post","trim");
- $where= [["is_del","=",0]];
- if($param['companyNo']!="") $where[]=["companyNo","=",$param['companyNo']];
- if($param['status']!="") $where[]=["status","=",$param['status']];
- if($param['createrId']!="") $where[]=["createrid","=",$param['createrId']];
- if($param['start']!="")$where[]=["addtime",">=",startTime($param['start'])];
- if($param['end']!="")$where[]=["addtime","<=",endTime($param['end'])];
- $customerMember= new CustomerMember();
- $list=$customerMember->with(["customer"])
- ->where($where)
- ->order("id","desc")
- ->paginate(["list_rows"=>$param['size'],"page"=>$param['page']]);
- return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);
- }
- }
|