123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- <?php
- namespace app\data\controller\api\auth;
- use app\data\controller\api\Auth;
- use app\data\model\DataUserAcceptance;
- use app\data\model\DataUserRepair;
- use app\data\model\DataUserRepairOffer;
- use think\admin\Storage;
- use think\db\Where;
- use think\exception\HttpResponseException;
- use think\admin\Controller;
- use hg\apidoc\annotation\Title;
- use hg\apidoc\annotation\Method;
- use hg\apidoc\annotation\Param;
- use hg\apidoc\annotation\Header;
- use hg\apidoc\annotation\Returned;
- use think\facade\Validate;
- /**
- * @Title("船机维修")
- */
- class ShipEngineMaintenance extends Auth
- {
- protected $noNeedLogin=[];
- /**
- * @Title("发布维修订单,修改维修订单")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("imgs",type="string",require=0,default="",desc="图片,多个以英文逗号隔开")
- * @Param("start_time",type="string",require=1,default="",desc="维修开始时间")
- * @Param("end_time",type="string",require=1,default="",desc="维修结束时间")
- * @Param("province",type="string",require=1,default="",desc="省")
- * @Param("city",type="string",require=1,default="",desc="市")
- * @Param("area",type="string",require=1,default="",desc="区")
- * @Param("address",type="string",require=1,default="",desc="详细地址")
- * @Param("describe",type="string",require=1,default="",desc="故障描述")
- * @Param("quick",type="string",require=1,default="",desc="是否快修 1:否 2:是")
- * @Param("id",type="string",require=0,default="",desc="修改,则必传之前提交的ID")
- */
- public function subrepair()
- {
- $data = $this->_vali([
- 'uuid.default'=>$this->uuid,
- 'imgs.require'=>'产品图片必须',
- 'start_time.require'=>'维修开始时间必须',
- 'end_time.require'=>'维修结束时间必须',
- 'province.require'=>'省必须',
- 'city.require'=>'市必须',
- 'area.require'=>'区、镇必须',
- 'address.require'=>'详细地址必须',
- 'describe.require'=>'故障描述必须',
- 'quick.require|in:1,2'=>'是否快修必须'
- ]);
- $id = input('id');
- empty($id) ? $data['order_no'] = setorderno($this->uuid) : $data['update_at']=date('Y-m-d H:i:s');
- if (empty($id) ? DataUserRepair::mk()->insert($data) : DataUserRepair::mk()->where('id',$id)->update($data)){
- $this->success('成功');
- }
- $this->error('失败');
- }
- /**
- * @Title("快修单循环列表")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- */
- public function quicklist(){
- $list = DataUserRepair::mk()
- ->where('is_del',1)
- ->whereIn('status','1,2')
- ->where('quick',2)
- ->field('id,describe,uuid')
- ->with(['user'=>function($query){
- $query->field('id,headimg');
- }])
- ->select();
- $this->success('成功',$list);
- }
- /**
- * @Title("船机修理列表")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("type",type="string",require=1,default="",desc="1:全部2:快修3:普修")
- */
- public function repairlist(){
- $data = $this->_vali([
- 'type.require|in:1,2,3'=>'type有误'
- ]);
- $type = $data['type'];
- $list = DataUserRepair::mk()
- ->where('is_del',1)
- ->whereIn('status','1,2')
- ->where(function ($query) use ($type){
- switch ($type){
- case 1:
- break;
- case 2:
- $query->where('quick',2);
- break;
- case 3:
- $query->where('quick',1);
- break;
- }
- })
- ->with(['user'=>function($query){
- $query->field('id,nickname,headimg');
- },'offer'=>function($query){
- $query->where('offer_id',$this->uuid);
- }])
- ->order('id desc')
- ->paginate();
- $this->success('成功',$list);
- }
- /**
- * @Title("船机修理详情")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("id",type="string",require=1,default="",desc="主键ID")
- */
- public function repairdetail(){
- $data = $this->_vali([
- 'id.require'=>'id有误'
- ]);
- $info = DataUserRepair::mk()
- ->where('is_del',1)
- ->whereIn('status','1,2')
- ->where('id',$data['id'])
- ->with(['user'=>function($query){
- $query->field('id,phone,headimg,username,nickname');
- },'offer'=>function($query){
- $query->where('offer_id',$this->uuid);
- }])
- ->findOrEmpty();
- $this->success('成功',$info);
- }
- /**
- * @Title("立即报价")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("id",type="string",require=1,default="",desc="主键ID")
- * @Param("price",type="string",require=0,default="",desc="报价金额")
- * @Param("imgs",type="string",require=1,default="",desc="图片及资质证明")
- */
- public function repairoffer(){
- $user = $this->getUser();
- if (!$user['is_maintenance']) $this->error('不是维修工,无法报价');
- $data = $this->_vali([
- 'id.require'=>'id必须',
- 'price.default'=>'0'
- // 'imgs.require'=>'图片及资质证明必须'
- ]);
- if(input('price')){
- $array['price'] = input('price');
- }else{
- DataUserRepairOffer::mk()->where(['repair_id'=>$data['id'],'offer_id'=>$this->uuid])->find()?$this->error('报价必须填写'):'';
- }
- DataUserRepair::mk()
- ->where('is_del',1)
- ->whereIn('status','1,2')
- ->where('id',$data['id'])
- ->count() ? : $this->error('订单不存在');
- $userdata = DataUserRepair::mk()->where('id',$data['id'])->value('uuid');
- if($user['id']==$userdata)$this->error('无法报价自己发的订单');
- $array = [
- 'repair_id'=>$data['id'],
- 'offer_id'=>$this->uuid,
- 'price'=>$data['price']
- // 'imgs'=>$data['imgs'],
- ];
- if (DataUserRepairOffer::mk()->insert($array) && DataUserRepair::mk()->where('id',$data['id'])->update(['status'=>2,'update_at'=>date('Y-m-d H:i:s')])){
- $this->success('成功');
- }
- $this->error('失败');
- }
- /**
- * @Title("报价信息")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("id",type="string",require=1,default="",desc="主键ID")
- */
- public function offerinfo(){
- $data = $this->_vali([
- 'id.require'=>'id必须'
- ]);
- $list = DataUserRepairOffer::mk()
- ->where('repair_id',118)
- ->where('offer_id',114)
- ->field('id,price')
- ->select();
- foreach ($list as $k=>$v){
- if($v['price'] == 0.00){
- unset($list[$k]);
- }
- }
- $list = array_values($list->toArray());
- $imgs = array_filter(explode(',',DataUserRepairOffer::mk()->where('repair_id',118)
- ->where('offer_id',114)
- //->where('price','>',0)
- ->order('id desc')
- ->limit(1)
- ->value('imgs')));
- $this->success('成功',compact('list','imgs'));
- }
- /**
- * @Title("发布接单需求,修改接单需求")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("name",type="string",require=0,default="",desc="姓名")
- * @Param("company_name",type="string",require=1,default="",desc="所在单位")
- * @Param("business_img",type="string",require=1,default="",desc="营业执照")
- * @Param("id_card_zheng",type="string",require=1,default="",desc="身份证正面")
- * @Param("id_card_fan",type="string",require=1,default="",desc="身份证反面")
- * @Param("phone",type="string",require=1,default="",desc="手机号")
- * @Param("email",type="string",require=1,default="",desc="邮箱")
- * @Param("address",type="string",require=1,default="",desc="地址")
- * @Param("job_resume",type="string",require=1,default="",desc="工作简历")
- * @Param("specialty",type="string",require=1,default="",desc="特长")
- * @Param("province",type="string",require=1,default="",desc="定位-省")
- * @Param("city",type="string",require=1,default="",desc="定位-市")
- * @Param("area",type="string",require=1,default="",desc="定位-区")
- * @Param("hidden",type="string",require=0,default="1",desc="1:不隐藏 2:隐藏")
- * @Param("id",type="string",require=0,default="",desc="修改,则必传之前提交的ID")
- */
- public function subacceptance()
- {
- $user = $this->getUser();
- if (!$user['is_maintenance']) $this->error('不是维修工,发布接单需求');
- $data = $this->_vali([
- 'uuid.default'=>$this->uuid,
- 'name.require'=>'姓名必须',
- 'company_name.require'=>'所在单位必须',
- 'business_img.require'=>'营业执照必须',
- 'id_card_zheng.require'=>'身份证正面必须',
- 'id_card_fan.require'=>'身份证反面必须',
- 'phone.require'=>'手机号必须',
- 'email.require'=>'邮箱必须',
- 'address.require'=>'地址必须',
- 'job_resume.require'=>'工作简历必须',
- 'specialty.require'=>'特长必须',
- 'province.require'=>'定位省必须',
- 'city.require'=>'定位市必须',
- 'area.require'=>'定位区必须',
- 'hidden.default'=>'1'
- ]);
- $id = input('id');
- empty($id) ? : $data['update_at']=date('Y-m-d H:i:s');
- empty($id) ? DataUserAcceptance::mk()->where('uuid',$this->uuid)->value('id') : '';
- if (empty($id) ? DataUserAcceptance::mk()->insert($data) : DataUserAcceptance::mk()->where('id',$id)->where('uuid',$this->uuid)->update($data)){
- $this->success('成功');
- }
- $this->error('失败');
- }
- /**
- * @Title("维修工列表")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("keyword",type="string",require=0,default="",desc="关键词")
- */
- public function acceptancelist(){
- $data = $this->_vali([
- 'keyword.default'=>''
- ]);
- $keyword = $data['keyword'];
- $list = DataUserAcceptance::mk()
- ->where('hidden',1)
- ->when($keyword,function ($query) use ($keyword){
- $query->whereLike('name|company_name|phone|email|address','%'.$keyword.'%');
- })
- ->with(['user'=>function($query){
- $query->field('id,headimg');
- }])
- ->field('id,uuid,name,company_name,phone,province,city,area')
- ->order('id desc')
- ->paginate();
- $this->success('成功',$list);
- }
- /**
- * @Title("维修工详情")
- * @Method("post")
- * @Header("api-name",type="string",require=1,default="",desc="访问类型")
- * @Header("api-token",type="string",require=1,default="",desc="token")
- * @Param("id",type="string",require=1,default="",desc="主键ID")
- */
- public function acceptancedetail(){
- $data = $this->_vali([
- 'id.require'=>'id有误'
- ]);
- $info = DataUserAcceptance::mk()
- ->where('id',$data['id'])
- ->with(['user'=>function($query){
- $query->field('id,headimg');
- }])
- ->findOrEmpty();
- $this->success('成功',$info);
- }
- }
|