|  | @@ -8,6 +8,7 @@ use app\model\ClientFavorite;
 | 
	
		
			
				|  |  |  use app\model\Goods;
 | 
	
		
			
				|  |  |  use app\model\GoodsEvaluate;
 | 
	
		
			
				|  |  |  use app\model\Member;
 | 
	
		
			
				|  |  | +use app\model\MemberRole;
 | 
	
		
			
				|  |  |  use support\exception\BusinessException;
 | 
	
		
			
				|  |  |  use support\Request;
 | 
	
		
			
				|  |  |  use support\Response;
 | 
	
	
		
			
				|  | @@ -21,18 +22,18 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public function select(Request $request): Response
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        $goodsName = $request->get('goods_name','');
 | 
	
		
			
				|  |  | -        $searchTimes = $request->get('goods_evaluate_addtimes',[]);
 | 
	
		
			
				|  |  | +        $goodsName = $request->get('goods_name', '');
 | 
	
		
			
				|  |  | +        $searchTimes = $request->get('goods_evaluate_addtimes', []);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          [$where, $format, $limit, $field, $order] = $this->selectInput($request);
 | 
	
		
			
				|  |  |          $order = $request->get('order', 'desc');
 | 
	
		
			
				|  |  |          $field = $field ?? 'goods_evaluate_addtimes';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if ($goodsName != ''){
 | 
	
		
			
				|  |  | -            $goodsIds = Goods::where('goods_name','like','%'.$goodsName.'%')->pluck('goods_id')->toArray();
 | 
	
		
			
				|  |  | -            $where['join_evaluate_goods_id'] = ['in',implode(',',$goodsIds)];
 | 
	
		
			
				|  |  | +        if ($goodsName != '') {
 | 
	
		
			
				|  |  | +            $goodsIds = Goods::where('goods_name', 'like', '%' . $goodsName . '%')->pluck('goods_id')->toArray();
 | 
	
		
			
				|  |  | +            $where['join_evaluate_goods_id'] = ['in', implode(',', $goodsIds)];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(!empty($searchTimes)){
 | 
	
		
			
				|  |  | +        if (!empty($searchTimes)) {
 | 
	
		
			
				|  |  |              $searchTimes[0] = !empty($searchTimes[0]) ? strtotime($searchTimes[0]) : time();
 | 
	
		
			
				|  |  |              $searchTimes[1] = !empty($searchTimes[1]) ? strtotime($searchTimes[1]) : time();
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -42,6 +43,7 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |          $query = $this->doSelect($where, $field, $order);
 | 
	
		
			
				|  |  |          return $this->doFormat($query, $format, $limit);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      protected function doSelect(array $where, string $field = null, string $order = 'desc')
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          $model = $this->model->with([
 | 
	
	
		
			
				|  | @@ -92,78 +94,85 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public function afterQuery($items)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        foreach ($items as &$item){
 | 
	
		
			
				|  |  | -            if (!empty($item->goods_evaluate_json)){
 | 
	
		
			
				|  |  | +        foreach ($items as &$item) {
 | 
	
		
			
				|  |  | +            if (!empty($item->goods_evaluate_json)) {
 | 
	
		
			
				|  |  |                  $imagesStr = '';
 | 
	
		
			
				|  |  | -                $goodsEvaluateJson = json_decode($item->goods_evaluate_json,true);
 | 
	
		
			
				|  |  | -                if (isset($goodsEvaluateJson['photo'])){
 | 
	
		
			
				|  |  | -                    foreach ($goodsEvaluateJson['photo'] as $images){
 | 
	
		
			
				|  |  | -                        if (isset($images['file'])){
 | 
	
		
			
				|  |  | -                            $imagesStr .= getenv('APP_IMAGE_DOMAIN').$images['file']['file_savepath'].$images['file']['file_savename'].',';
 | 
	
		
			
				|  |  | +                $goodsEvaluateJson = json_decode($item->goods_evaluate_json, true);
 | 
	
		
			
				|  |  | +                if (isset($goodsEvaluateJson['photo'])) {
 | 
	
		
			
				|  |  | +                    foreach ($goodsEvaluateJson['photo'] as $images) {
 | 
	
		
			
				|  |  | +                        if (isset($images['file'])) {
 | 
	
		
			
				|  |  | +                            $imagesStr .= getenv('APP_IMAGE_DOMAIN') . $images['file']['file_savepath'] . $images['file']['file_savename'] . ',';
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                if (isset($goodsEvaluateJson['desc'])){
 | 
	
		
			
				|  |  | +                if (isset($goodsEvaluateJson['desc'])) {
 | 
	
		
			
				|  |  |                      $item->desc = $goodsEvaluateJson['desc'];
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                $item->photos = rtrim($imagesStr,',');
 | 
	
		
			
				|  |  | +                $item->photos = rtrim($imagesStr, ',');
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return $items;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public function info(Request $request):Response
 | 
	
		
			
				|  |  | +    public function info(Request $request): Response
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | -        $goodsEvaluateId = $request->get('goods_evaluate_id','');
 | 
	
		
			
				|  |  | -        if (!$goodsEvaluateId){
 | 
	
		
			
				|  |  | +        $goodsEvaluateId = $request->get('goods_evaluate_id', '');
 | 
	
		
			
				|  |  | +        if (!$goodsEvaluateId) {
 | 
	
		
			
				|  |  |              return json_fail('参数异常');
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          $evaluate = GoodsEvaluate::with([
 | 
	
		
			
				|  |  | -            'member'=>function($query){
 | 
	
		
			
				|  |  | -                $query->select('member_id','member_mobile');
 | 
	
		
			
				|  |  | +            'member' => function ($query) {
 | 
	
		
			
				|  |  | +                $query->select('member_id', 'member_mobile', 'member_is_owner', 'join_member_role_id', 'member_is_vip', 'member_is_partner', 'member_is_referrer');
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            'cert' => function ($query){
 | 
	
		
			
				|  |  | -                $query->select('join_cert_member_id','member_cert_name');
 | 
	
		
			
				|  |  | +            'cert' => function ($query) {
 | 
	
		
			
				|  |  | +                $query->select('join_cert_member_id', 'member_cert_name');
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            'info' => function ($query){
 | 
	
		
			
				|  |  | -                $query->select('join_info_member_id','member_info_nickname','member_info_headimg');
 | 
	
		
			
				|  |  | +            'info' => function ($query) {
 | 
	
		
			
				|  |  | +                $query->select('join_info_member_id', 'member_info_nickname', 'member_info_headimg');
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            'goods' => function($query){
 | 
	
		
			
				|  |  | -                $query->select('goods_id','goods_name','goods_cover','goods_sales_price');
 | 
	
		
			
				|  |  | +            'goods' => function ($query) {
 | 
	
		
			
				|  |  | +                $query->select('goods_id', 'goods_name', 'goods_cover', 'goods_sales_price');
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  | -            'order' => function($query){
 | 
	
		
			
				|  |  | -                $query->select('order_id','order_amount_pay','order_is_complete','order_status_system','order_status_payment','order_addtimes');
 | 
	
		
			
				|  |  | +            'order' => function ($query) {
 | 
	
		
			
				|  |  | +                $query->select('order_id', 'order_amount_pay', 'order_is_complete', 'order_status_system', 'order_status_payment', 'order_addtimes');
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -        ])->where('goods_evaluate_id',$goodsEvaluateId)
 | 
	
		
			
				|  |  | +        ])->where('goods_evaluate_id', $goodsEvaluateId)
 | 
	
		
			
				|  |  |              ->first();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (!empty($evaluate->goods_evaluate_json)){
 | 
	
		
			
				|  |  | +        if (!empty($evaluate->goods_evaluate_json)) {
 | 
	
		
			
				|  |  |              $imagesStr = '';
 | 
	
		
			
				|  |  | -            $goodsEvaluateJson = json_decode($evaluate->goods_evaluate_json,true);
 | 
	
		
			
				|  |  | -            if (isset($goodsEvaluateJson['photo'])){
 | 
	
		
			
				|  |  | -                foreach($goodsEvaluateJson['photo'] as $file){
 | 
	
		
			
				|  |  | -                    if (isset($file['file'])){
 | 
	
		
			
				|  |  | -                        $imagesStr .= getenv('APP_IMAGE_DOMAIN_LOCAL').$file['file']['file_savepath'].$file['file']['file_savename'].',';
 | 
	
		
			
				|  |  | +            $goodsEvaluateJson = json_decode($evaluate->goods_evaluate_json, true);
 | 
	
		
			
				|  |  | +            if (isset($goodsEvaluateJson['photo'])) {
 | 
	
		
			
				|  |  | +                foreach ($goodsEvaluateJson['photo'] as $file) {
 | 
	
		
			
				|  |  | +                    if (isset($file['file'])) {
 | 
	
		
			
				|  |  | +                        $imagesStr .= getenv('APP_IMAGE_DOMAIN_LOCAL') . $file['file']['file_savepath'] . $file['file']['file_savename'] . ',';
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                $evaluate->photos = rtrim($imagesStr,',');
 | 
	
		
			
				|  |  | +                $evaluate->photos = rtrim($imagesStr, ',');
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            if (isset($goodsEvaluateJson['desc'])){
 | 
	
		
			
				|  |  | +            if (isset($goodsEvaluateJson['desc'])) {
 | 
	
		
			
				|  |  |                  $evaluate->desc = $goodsEvaluateJson['desc'];
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (!empty($evaluate->info)){
 | 
	
		
			
				|  |  | -            $evaluate->info->member_info_headimg = MemberService::getAvatarUrl($evaluate->info->member_info_headimg);
 | 
	
		
			
				|  |  | -            $evaluate->info->member_info_nickname ?? substr($evaluate->member->member_mobile,-4).'会员';
 | 
	
		
			
				|  |  | +        if (!empty($evaluate->member) && !empty($evaluate->member->join_member_role_id)) {
 | 
	
		
			
				|  |  | +            $evaluate->member->level = MemberRole::where('member_role_id', $evaluate->member->join_member_role_id)->value('member_role_name');
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if (!empty($evaluate->goods)){
 | 
	
		
			
				|  |  | -            $evaluate->goods->goods_cover = getenv('STORAGE_DOMAIN').$evaluate->goods->goods_cover;
 | 
	
		
			
				|  |  | -            $evaluate->goods->goods_cover_origin = str_replace('/thumb','',$evaluate->goods->goods_cover);
 | 
	
		
			
				|  |  | +        $evaluate->member->member_info_headimg = MemberService::getAvatarUrl(!empty($evaluate->info) && !empty($evaluate->info->member_info_headimg) ? $evaluate->info->member_info_headimg : '');
 | 
	
		
			
				|  |  | +        $evaluate->member->member_info_nickname = MemberService::getNickname(!empty($evaluate->info) && !empty($evaluate->info->member_info_nickname) ? $evaluate->info->member_info_nickname : '', !empty($evaluate->member) ? $evaluate->member->member_mobile : '');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (!empty($evaluate->goods)) {
 | 
	
		
			
				|  |  | +            $evaluateGoods = $evaluate->goods;
 | 
	
		
			
				|  |  | +            foreach ($evaluateGoods as &$good) {
 | 
	
		
			
				|  |  | +                $good['goods_cover'] = getenv('STORAGE_DOMAIN') . $good['goods_cover'];
 | 
	
		
			
				|  |  | +                $good['goods_cover_origin'] = str_replace('/thumb', '', $good['goods_cover']);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            $evaluate->goods = $evaluateGoods;
 | 
	
		
			
				|  |  | +//            $evaluate->goods->goods_cover = getenv('STORAGE_DOMAIN') . $evaluate->goods->goods_cover;
 | 
	
		
			
				|  |  | +//            $evaluate->goods->goods_cover_origin = str_replace('/thumb', '', $evaluate->goods->goods_cover);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        return json_success('success',$evaluate);
 | 
	
		
			
				|  |  | +        return json_success('success', $evaluate);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -177,7 +186,7 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  |              $data = $this->insertInput($request);
 | 
	
		
			
				|  |  |              $this->doInsert($data);
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          } catch (BusinessException $customException) {
 | 
	
		
			
				|  |  |              return json_fail($customException->getMessage());
 | 
	
		
			
				|  |  |          } catch (\Exception $e) {
 | 
	
	
		
			
				|  | @@ -197,15 +206,15 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          $data = $this->inputFilter($request->post());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (!empty($data['goods_evaluate_json'])){
 | 
	
		
			
				|  |  | -            $goodsEvaluateJson = explode(',',$data['goods_evaluate_json']);
 | 
	
		
			
				|  |  | -            foreach ($goodsEvaluateJson as $key => $item){
 | 
	
		
			
				|  |  | +        if (!empty($data['goods_evaluate_json'])) {
 | 
	
		
			
				|  |  | +            $goodsEvaluateJson = explode(',', $data['goods_evaluate_json']);
 | 
	
		
			
				|  |  | +            foreach ($goodsEvaluateJson as $key => $item) {
 | 
	
		
			
				|  |  |                  $goodsEvaluateJson[$key] = str_replace(getenv('STORAGE_DOMAIN'), '', $item);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            $data['goods_evaluate_json'] = json_encode(['images'=>$goodsEvaluateJson]);
 | 
	
		
			
				|  |  | +            $data['goods_evaluate_json'] = json_encode(['images' => $goodsEvaluateJson]);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return $data;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -246,13 +255,13 @@ class EvaluateController extends Curd
 | 
	
		
			
				|  |  |              throw new BusinessException('记录不存在', 2);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (!empty($data['goods_evaluate_json'])){
 | 
	
		
			
				|  |  | -            $goodsEvaluateJson = explode(',',$data['goods_evaluate_json']);
 | 
	
		
			
				|  |  | -            foreach ($goodsEvaluateJson as $key => $item){
 | 
	
		
			
				|  |  | +        if (!empty($data['goods_evaluate_json'])) {
 | 
	
		
			
				|  |  | +            $goodsEvaluateJson = explode(',', $data['goods_evaluate_json']);
 | 
	
		
			
				|  |  | +            foreach ($goodsEvaluateJson as $key => $item) {
 | 
	
		
			
				|  |  |                  $goodsEvaluateJson[$key] = str_replace(getenv('STORAGE_DOMAIN'), '', $item);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            $data['goods_evaluate_json'] = json_encode(['images'=>$goodsEvaluateJson]);
 | 
	
		
			
				|  |  | +            $data['goods_evaluate_json'] = json_encode(['images' => $goodsEvaluateJson]);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          unset($data[$primary_key]);
 |