| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | <?phpnamespace app\common\model;use think\Db;use think\Exception;class Comment extends Base{    public function addSave($jsonArray){        $this->startTrans();        try{            $data=[                'score'=>$jsonArray['score'],                'content'=>isset($jsonArray['content'])?$jsonArray['content']:'',                'user_id'=>$jsonArray['userId'],                'type'=>$jsonArray['type'],                'from_id'=>$jsonArray['fromId'],                'org_id'=>$jsonArray['orgId'],                'create_time'=>date('Y-m-d H:i:s'),                'create_yyyymm'=>date('Ym'),                'create_yyyy'=>date('Y'),                'create_yyyymmdd'=>date('Ymd'),            ];            if(!$data['score']){                $this->error = '得分不能为空';                return false;            }            $res = $this->insert($data);            if (!$res) {                exception('保存失败');                return false;            }            if(in_array($jsonArray['type'],[0,1,2,3,4,15])){ // 改变订单状态                $ret = Db::name('orders')                    ->where('id',$jsonArray['fromId'])                    ->update(['order_mode' => 6]);                if(!$ret){                    exception('更新订单失败');                    return false;                }            }            $userIds = [];            switch ($jsonArray['type']){                case 100: // 日常工作记录                    $uid = Db::name('daily_record')->where('id',$jsonArray['fromId'])->value('user_id');                    $userIds[] = $uid;                    break;                case 0:                case 1:                case 2:                case 3:                case 4:                case 15: // 订单评价                    $uids = Db::name('todo')->where('order_id',$jsonArray['fromId'])->where('todo_mode',3)->column('to_user_id');                    $userIds = $uids;                    break;                case 16: // 投诉订单                    Db::name('complain')                        ->where('id',$jsonArray['fromId'])                        ->update(['status'=>2,'finish_time'=>getTime()]);                    break;            }            $users = Db::name('user')->where('id','in',$userIds)->field('id,score,score_json')->select();            foreach ($users as $k=>$v){                $score = $data['score'];                if($v['score_json']){                    $scoreJson = json_decode($v['score_json'],true);                    $scoreJson['score'] = $scoreJson['score'] + $data['score'];                    $scoreJson['count'] = $scoreJson['count'] + 1;                    $score = round($scoreJson['score']/$scoreJson['count'],1);                }else{                    $scoreJson = [                        'score' => $score,                        'count' => 1                    ];                }                $ret = Db::name('user')->where('id',$v['id'])->update(['score'=>$score,'score_json'=>json_encode($scoreJson)]);                if(!$ret){                    \exception('操作失败');                }            }            $this->commit();            return true;        }catch (Exception $e){            $this->error = $e->getMessage();            $this->rollback();            return false;        }    }    public function details($id){        $ret = Db::name('comment')            ->field('create_time as comment_create_time,score,content,type,id,user_id,from_id')            ->where('id',$id)            ->find();        $ret['real_name'] = Db::name('user')->where('id',$ret['user_id'])->value('real_name');        if($ret['type']==100){            $ret['description']='日常工作评价';            $ret['create_time'] = Db::name('daily_record')                ->where('id',$ret['from_id'])                ->value('create_time');        }        $isCreateTime = Db::name('orders')            ->where('id',$ret['from_id'])            ->value('create_time');        $ret['create_time']=$isCreateTime;        if($ret['type']==1){            $ret['description']='报修工作评价';        }        if($ret['type']==2){            $ret['description']='保洁工作评价';        }        if($ret['type']==3){            $ret['description']='运送工作评价';        }        if($ret['type']==4){            $ret['description']='安保工作评价';        }        if($ret['type']==15){            $ret['description']='品质整改工作评价';        }        if($ret['type']==0){            $ret['description']='一键呼叫工作评价';        }        return $ret;    }    public function lists($userId,$orgId,$page,$size){        $lists = Db::name('comment_reply')            ->where('org_id',$orgId)            ->where('to_user_id',$userId)            ->order('comment_id desc')            ->page($page,$size)            ->select();        return $lists;    }}
 |