TJsServiceImpl.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package com.ylx.massage.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ylx.common.constant.MassageConstants;
  7. import com.ylx.common.exception.ServiceException;
  8. import com.ylx.common.utils.StringUtils;
  9. import com.ylx.massage.domain.TJs;
  10. import com.ylx.massage.domain.TXiangmu;
  11. import com.ylx.massage.domain.vo.TJsVo;
  12. import com.ylx.massage.enums.JsStatusEnum;
  13. import com.ylx.massage.mapper.TJsMapper;
  14. import com.ylx.massage.service.TJsService;
  15. import com.ylx.massage.service.TXiangmuService;
  16. import com.ylx.massage.utils.LocationUtil;
  17. import org.springframework.stereotype.Service;
  18. import javax.annotation.Resource;
  19. import java.time.LocalDateTime;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * 技师表 服务实现类
  24. */
  25. @Service
  26. public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsService {
  27. @Resource
  28. private TJsMapper mapper;
  29. @Resource
  30. private LocationUtil locationUtil;
  31. @Resource
  32. private TXiangmuService xiangmuService;
  33. @Override
  34. public Page<TJs> getAll(Page<TJs> page, TJsVo param) {
  35. return mapper.getAll(page, param);
  36. }
  37. @Override
  38. public boolean addJs(TJs js) {
  39. if (StringUtils.isBlank(js.getcPhone())) {
  40. throw new ServiceException("手机号不能为空");
  41. }
  42. //缓存技师位置
  43. locationUtil.geoAdd(js.getcOpenId(), js.getLongitude().doubleValue(), js.getLatitude().doubleValue());
  44. extracted(js);
  45. return this.save(js);
  46. }
  47. @Override
  48. public TJs getByJsId(String jsId) {
  49. if (jsId == null || jsId.trim().isEmpty()) {
  50. // 处理空或空白的jsId
  51. throw new ServiceException("Id为空");
  52. }
  53. TJs js = this.getById(jsId);
  54. if (js == null) {
  55. // 处理getById返回null的情况
  56. return null; // 或者返回一个新的TJs实例,具体看业务需求
  57. }
  58. JSONArray cBhList = js.getcBhList();
  59. if (cBhList == null || cBhList.isEmpty()) {
  60. // 处理js.getcBhList()返回null或空列表的情况
  61. js.setProjects(new ArrayList<>()); // 设置空列表,避免后续调用空指针
  62. return js;
  63. }
  64. LambdaQueryWrapper<TXiangmu> xiangmuLambdaQueryWrapper = new LambdaQueryWrapper<>();
  65. xiangmuLambdaQueryWrapper.in(TXiangmu::getcId, cBhList);
  66. List<TXiangmu> projects = xiangmuService.list(xiangmuLambdaQueryWrapper);
  67. js.setProjects(projects);
  68. return js;
  69. }
  70. private static void extracted(TJs js) {
  71. // 评分默认最高
  72. js.setnStar(MassageConstants.INTEGER_FIVE);
  73. // 已服务数量 0
  74. js.setnNum(MassageConstants.INTEGER_ZERO);
  75. // 佣金比例 10
  76. js.setnBili(MassageConstants.INTEGER_TEN);
  77. // 服务状态
  78. js.setnStatus(JsStatusEnum.JS_SERVICEABLE.getCode());
  79. // 上岗状态
  80. js.setnStatus2(JsStatusEnum.POST_NOT_ON_DUTY.getCode());
  81. // 审核状态
  82. js.setnTong(JsStatusEnum.JS_NOT_PASS.getCode());
  83. js.setnB1(MassageConstants.INTEGER_ZERO);
  84. js.setnB2(MassageConstants.INTEGER_ZERO);
  85. js.setnB3(MassageConstants.INTEGER_ZERO);
  86. js.setDtCreateTime(LocalDateTime.now());
  87. }
  88. }