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; /** * 技师表 服务实现类 */ @Service public class TJsServiceImpl extends ServiceImpl implements TJsService { @Resource private TJsMapper mapper; @Resource private LocationUtil locationUtil; @Resource private TXiangmuService xiangmuService; @Override public Page getAll(Page page, TJsVo param) { return mapper.getAll(page, param); } @Override public boolean addJs(TJs js) { if (StringUtils.isBlank(js.getcPhone())) { throw new ServiceException("手机号不能为空"); } //缓存技师位置 locationUtil.geoAdd(js.getcOpenId(), js.getLongitude().doubleValue(), js.getLatitude().doubleValue()); extracted(js); 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 xiangmuLambdaQueryWrapper = new LambdaQueryWrapper<>(); xiangmuLambdaQueryWrapper.in(TXiangmu::getcId, cBhList); List projects = xiangmuService.list(xiangmuLambdaQueryWrapper); js.setProjects(projects); return js; } private static void extracted(TJs js) { // 评分默认最高 js.setnStar(MassageConstants.INTEGER_FIVE); // 已服务数量 0 js.setnNum(MassageConstants.INTEGER_ZERO); // 佣金比例 10 js.setnBili(MassageConstants.INTEGER_TEN); // 服务状态 js.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode()); // 上岗状态 js.setnStatus2(JsStatusEnum.POST_NOT_ON_DUTY.getCode()); // 审核状态 js.setnTong(JsStatusEnum.JS_NOT_PASS.getCode()); js.setnB1(MassageConstants.INTEGER_ZERO); js.setnB2(MassageConstants.INTEGER_ZERO); js.setnB3(MassageConstants.INTEGER_ZERO); js.setDtCreateTime(LocalDateTime.now()); } }