Răsfoiți Sursa

fix:小程序技师详情优化

wrj 1 an în urmă
părinte
comite
2ec35b5f69

+ 11 - 1
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TJsController.java

@@ -13,6 +13,7 @@ import com.ylx.massage.domain.Location;
 import com.ylx.massage.domain.TJs;
 import com.ylx.massage.domain.vo.TJsVo;
 import com.ylx.massage.service.TJsService;
+import com.ylx.massage.service.TXiangmuService;
 import com.ylx.massage.utils.LocationUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +48,7 @@ public class TJsController extends BaseController {
     @Resource
     private LocationUtil locationUtil;
 
+
     /**
      * 添加技师申请
      *
@@ -154,6 +156,14 @@ public class TJsController extends BaseController {
     @ApiOperation("根据id查询技师")
     @RequestMapping(value = "/wx/getByid", method = RequestMethod.POST)
     public R getById(@RequestBody TJs js) {
-        return R.ok(jsService.getById(js.getcOpenId()));
+        try {
+            return R.ok(jsService.getByJsId(js.getcOpenId()));
+        } catch (ServiceException s) {
+            log.error(s.getMessage());
+            return R.fail(s.getMessage());
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return R.fail("系统异常");
+        }
     }
 }

+ 5 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/TJs.java

@@ -14,6 +14,7 @@ import lombok.experimental.Accessors;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * 技师表
@@ -205,6 +206,10 @@ public class TJs implements Serializable {
     @ApiModelProperty("技师距离")
     private BigDecimal distance ;
 
+    @TableField(exist = false)
+    @ApiModelProperty("技师项目")
+    private List<TXiangmu> projects;
+
     public String getcOpenId() {
         return cOpenId;
     }

+ 2 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/TJsService.java

@@ -15,4 +15,6 @@ public interface TJsService extends IService<TJs> {
     public Page<TJs> getAll(Page<TJs> page, TJsVo param);
 
     boolean addJs(TJs js);
+
+    TJs getByJsId(String s);
 }

+ 32 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TJsServiceImpl.java

@@ -1,22 +1,27 @@
 package com.ylx.massage.service.impl;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ylx.common.constant.MassageConstants;
 import com.ylx.common.exception.ServiceException;
 import com.ylx.common.utils.StringUtils;
 import com.ylx.massage.domain.TJs;
+import com.ylx.massage.domain.TXiangmu;
 import com.ylx.massage.domain.vo.TJsVo;
 import com.ylx.massage.enums.JsStatusEnum;
 import com.ylx.massage.mapper.TJsMapper;
 import com.ylx.massage.service.TJsService;
+import com.ylx.massage.service.TXiangmuService;
 import com.ylx.massage.utils.LocationUtil;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,6 +35,9 @@ public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsSe
     @Resource
     private LocationUtil locationUtil;
 
+    @Resource
+    private TXiangmuService xiangmuService;
+
     @Override
     public Page<TJs> getAll(Page<TJs> page, TJsVo param) {
         return mapper.getAll(page, param);
@@ -48,6 +56,30 @@ public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsSe
         return this.save(js);
     }
 
+    @Override
+    public TJs getByJsId(String jsId) {
+        if (jsId == null || jsId.trim().isEmpty()) {
+            // 处理空或空白的jsId
+            throw new ServiceException("Id为空");
+        }
+        TJs js = this.getById(jsId);
+        if (js == null) {
+            // 处理getById返回null的情况
+            return null; // 或者返回一个新的TJs实例,具体看业务需求
+        }
+        JSONArray cBhList = js.getcBhList();
+        if (cBhList == null || cBhList.isEmpty()) {
+            // 处理js.getcBhList()返回null或空列表的情况
+            js.setProjects(new ArrayList<>()); // 设置空列表,避免后续调用空指针
+            return js;
+        }
+        LambdaQueryWrapper<TXiangmu> xiangmuLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        xiangmuLambdaQueryWrapper.in(TXiangmu::getcId, cBhList);
+        List<TXiangmu> projects = xiangmuService.list(xiangmuLambdaQueryWrapper);
+        js.setProjects(projects);
+        return js;
+    }
+
     private static void extracted(TJs js) {
         // 评分默认最高
         js.setnStar(MassageConstants.INTEGER_FIVE);