From 2c258c39133435fa0e6e6da85d503982fd5a967d Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 10 一月 2025 15:33:26 +0800 Subject: [PATCH] bug修改 --- optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java | 259 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 226 insertions(+), 33 deletions(-) diff --git a/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java b/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java index 2594d9f..f329db7 100644 --- a/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java +++ b/optometrist/src/main/java/com/jilongda/optometrist/controller/TOptometristController.java @@ -2,22 +2,29 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.jilongda.common.basic.ApiResult; import com.jilongda.common.basic.PageInfo; import com.jilongda.optometrist.authority.model.SecUser; import com.jilongda.optometrist.authority.service.SecUserService; -import com.jilongda.optometrist.model.TOptometrist; +import com.jilongda.optometrist.model.*; import com.jilongda.optometrist.query.TOptometristQuery; +import com.jilongda.optometrist.query.TOptometryQuery; import com.jilongda.optometrist.query.TicketQuery; -import com.jilongda.optometrist.service.TLineUpService; -import com.jilongda.optometrist.service.TOptometristService; +import com.jilongda.optometrist.service.*; import com.jilongda.optometrist.utils.LoginInfoUtil; -import com.jilongda.optometrist.vo.TOptometristVO; +import com.jilongda.optometrist.vo.*; +import com.sun.org.apache.bcel.internal.generic.NEW; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -40,41 +47,227 @@ private LoginInfoUtil loginInfoUtil; @Autowired private SecUserService secUserService; -// @ApiOperation(value = "首页") -// @PostMapping(value = "/pageList") -// public ApiResult<TOptometristVO> pageList() { -// Long userId = loginInfoUtil.getUserId(); -// -// return ApiResult.success(); -// } - - @ApiOperation(value = "通过门店id查询验光师列表") - @PostMapping(value = "/queryListByStoreId") - public ApiResult<List<TOptometrist>> queryListByStoreId(@RequestParam Integer storeId) { - List<TOptometrist> optometristVOPageInfo = optometristService.list(Wrappers.lambdaQuery(TOptometrist.class) - .eq(TOptometrist::getStoreId,storeId)); - return ApiResult.success(optometristVOPageInfo); + @Autowired + private TStoreService storeService; + @Autowired + private TOptometryService optometryService; + @Autowired + private TAppUserService appUserService; + @Autowired + private TOrderService orderService; + @Autowired + private TOptometryDetailService optometryDetailService; + @ApiOperation(value = "获取验光单分页列表",tags = "验光单") + @PostMapping(value = "/pageList") + public ApiResult<PageInfo<TOptometryVO>> pageList(@RequestBody TOptometryQuery query) { + String startTime = null; + String endTime = null; + if (StringUtils.hasLength(query.getTime())){ + startTime = query.getTime()+" 00:00:00"; + endTime = query.getTime()+" 23:59:59"; + } + query.setStartTime(startTime); + query.setEndTime(endTime); + PageInfo<TOptometryVO> tOptometryVOPageInfo = optometristService.pageList(query); + return ApiResult.success(tOptometryVOPageInfo); + } + @ApiOperation(value = "验光记录详情") + @GetMapping(value = "/detail") + public ApiResult<TDetailVO> detail(Integer id) { + TOptometry one = optometryService.getById(id); + TAppUser byId = appUserService.getById(one.getUserId()); + TDetailVO tDetailVO = new TDetailVO(); + tDetailVO.setName(byId.getName()); + tDetailVO.setPhone(byId.getPhone()); + tDetailVO.setAvatar(byId.getAvatar()); + tDetailVO.setRealName(one.getRealName()); + tDetailVO.setAge(one.getAge()); + tDetailVO.setGender(one.getGender()); + // 查询消费次数,验光次数 + long l = optometryService.count(Wrappers.<TOptometry>lambdaQuery() + .eq(TOptometry::getUserId, byId.getId()) + .eq(TOptometry::getStatus,3)); + tDetailVO.setOptometryCount((int) l); + long count = orderService.count(Wrappers.<TOrder>lambdaQuery() + .eq(TOrder::getUserId, byId.getId())); + tDetailVO.setSaleCount((int) count); + TOptometrist byId1 = optometristService.getById(one.getOptometristId()); + tDetailVO.setOptometristName(byId1.getName()); + TStore byId2 = storeService.getById(one.getStoreId()); + tDetailVO.setStoreName(byId2.getName()); + List<TOptometryDetail> list = optometryDetailService.lambdaQuery().eq(TOptometryDetail::getOptometryId, one.getId()).list(); + tDetailVO.setOptometryDetailVOS(list); + tDetailVO.setCreateTime(one.getCreateTime()); + return ApiResult.success(tDetailVO); } - @ApiOperation(value = "验光师添加") + public static void main(String[] args) { +// LocalDateTime now = LocalDateTime.now(); +// // 获取凌晨00:00:00和23:59:59 +// LocalDateTime startTime = now.withHour(0).withMinute(0).withSecond(0); +// LocalDateTime endTime = now.withHour(23).withMinute(59).withSecond(59); +// System.err.println(startTime); +// System.err.println(endTime); + } + @ApiOperation(value = "首页") + @PostMapping(value = "/index") + public ApiResult<TOptometristVO> index() { + TOptometristVO tOptometristVO = new TOptometristVO(); + Integer userId = loginInfoUtil.getUserId(); + TOptometrist optometrist = optometristService.getById(userId); + TStore store = storeService.getById(optometrist.getStoreId()); + tOptometristVO.setStoreName(store.getName()); + tOptometristVO.setName(optometrist.getName()); + tOptometristVO.setPhone(optometrist.getPhone()); + LocalDateTime nowTime = LocalDateTime.now(); + // 获取凌晨00:00:00和23:59:59 + LocalDateTime startTime = nowTime.withHour(0).withMinute(0).withSecond(0); + LocalDateTime endTime = nowTime.withHour(23).withMinute(59).withSecond(59); + int size = optometryService.lambdaQuery().eq(TOptometry::getStoreId, optometrist.getId()) + .between(TOptometry::getCreateTime, startTime, endTime) + .eq(TOptometry::getStatus, 3).list().size(); + tOptometristVO.setOptometryCount(size); + // 查询今日的排号列表 + List<TLineUp> list = tLineUpService.lambdaQuery().eq(TLineUp::getStoreId, optometrist.getStoreId()) + .ne(TLineUp::getStatus, 3) + .ne(TLineUp::getStatus, 5) + .orderByAsc(TLineUp::getCode) + .list(); + for (TLineUp tLineUp : list) { + LocalDateTime now = LocalDateTime.now(); + LocalDateTime createTime = tLineUp.getCreateTime(); + long minutesDifference = createTime.until(now, java.time.temporal.ChronoUnit.MINUTES); + if (minutesDifference < 0) { + minutesDifference = 0; + } + tLineUp.setWaitTime((int) minutesDifference); + } + tOptometristVO.setList(list); + return ApiResult.success(tOptometristVO); + } + + @ApiOperation(value = "预约详情") + @GetMapping(value = "/getLineUpDetail") + public ApiResult<TLineUpDetailVO> getLineUpDetail(Integer id) { + TLineUpDetailVO tLineUpDetailVO = new TLineUpDetailVO(); + TLineUp byId = tLineUpService.getById(id); + BeanUtils.copyProperties(byId, tLineUpDetailVO); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime createTime = byId.getCreateTime(); + long minutesDifference = createTime.until(now, java.time.temporal.ChronoUnit.MINUTES); + if (minutesDifference < 0) { + minutesDifference = 0; + } + tLineUpDetailVO.setWaitTime((int) minutesDifference); + if (byId.getUserId()!=null){ + TAppUser byId1 = appUserService.getById(byId.getUserId()); + if (byId1!=null){ + tLineUpDetailVO.setName(byId1.getName()); + tLineUpDetailVO.setPhone(byId1.getPhone()); + tLineUpDetailVO.setAvatar(byId1.getAvatar()); + } + // 查询消费次数,验光次数 + long l = optometryService.count(Wrappers.<TOptometry>lambdaQuery() + .eq(TOptometry::getUserId, byId.getUserId()) + .eq(TOptometry::getStatus,3)); + tLineUpDetailVO.setOptometryCount((int) l); + long count = orderService.count(Wrappers.<TOrder>lambdaQuery() + .eq(TOrder::getUserId, byId.getUserId())); + tLineUpDetailVO.setSaleCount((int) count); + } + return ApiResult.success(tLineUpDetailVO); + } + @ApiOperation(value = "开始验光") + @GetMapping(value = "/startOptometry") + public ApiResult startOptometry(Integer id) { + Integer userId = loginInfoUtil.getUserId(); + List<TLineUp> list = tLineUpService.lambdaQuery().eq(TLineUp::getStatus, 2) + .eq(TLineUp::getOptometristId, userId).list(); + if (!list.isEmpty()){ + return ApiResult.failed("当前还有未结束的验光单"); + } + TLineUp lineUp = tLineUpService.getById(id); + // 获取今天凌晨00:00:00和今日23:59:59 + Date start = new Date(); + start.setHours(0); + start.setMinutes(0); + start.setSeconds(0); + Date end = new Date(); + end.setHours(23); + end.setMinutes(59); + end.setSeconds(59); + List<TLineUp> lineUps = tLineUpService.lambdaQuery().eq(TLineUp::getStoreId, lineUp.getStoreId()) + .between(TLineUp::getCreateTime, start, end).list(); + for (TLineUp up : lineUps) { + if (Integer.parseInt(up.getCode())<Integer.parseInt(lineUp.getCode())){ + up.setStatus(4); + } + } + tLineUpService.updateBatchById(lineUps); + lineUp.setStatus(2); + lineUp.setOptometristId(userId); + tLineUpService.updateById(lineUp); + return ApiResult.success(); + } + + @ApiOperation(value = "取消排号") + @GetMapping(value = "/cancelLineUp") + public ApiResult cancelLineUp(Integer id) { + TLineUp lineUp = tLineUpService.getById(id); + lineUp.setStatus(5); + tLineUpService.updateById(lineUp); + TOptometry one = optometryService.lambdaQuery().eq(TOptometry::getLineUpId, lineUp.getId()).one(); + if (one!=null){ + one.setStatus(5); + optometryService.updateById(one); + } + return ApiResult.success(); + } + @ApiOperation(value = "填写验光信息完成") @PostMapping(value = "/add") - public ApiResult<String> add(@RequestBody TOptometrist dto) { - optometristService.save(dto); + public ApiResult<String> add(@RequestBody TAddOptometryVO dto) { + TLineUp byId = tLineUpService.getById(dto.getId()); + TAppUser byId1 = appUserService.getById(byId.getUserId()); + TOptometry tOptometry = new TOptometry(); + tOptometry.setUserId(byId.getUserId()); + tOptometry.setAge(byId.getAge()); + tOptometry.setGender(byId.getGender()); + if (byId1!=null){ + tOptometry.setPhone(byId1.getPhone()); + } + tOptometry.setLineUpId(dto.getId()); + Integer userId = loginInfoUtil.getUserId(); + TOptometrist byId2 = optometristService.getById(userId); + tOptometry.setRealName(byId.getUserName()); + tOptometry.setLineUpId(dto.getId()); + tOptometry.setOptometristId(userId); + tOptometry.setStoreId(byId2.getStoreId()); + tOptometry.setStatus(3); + optometryService.save(tOptometry); + List<TOptometryDetail> tOptometryDetails = new ArrayList<>(); + + for (TOptometryDetailVO optometryDetailVO : dto.getOptometryDetailVOS()) { + TOptometryDetail tOptometryDetail = new TOptometryDetail(); + tOptometryDetail.setType(optometryDetailVO.getType()); + tOptometryDetail.setOptometryId(tOptometry.getId()); + tOptometryDetail.setBallMirror(optometryDetailVO.getBallMirror()); + tOptometryDetail.setColumnMirror(optometryDetailVO.getColumnMirror()); + tOptometryDetail.setAxis(optometryDetailVO.getAxis()); + tOptometryDetail.setAddS(optometryDetailVO.getAddS()); + tOptometryDetail.setPupilHeight(optometryDetailVO.getPupilHeight()); + tOptometryDetail.setPupilDistance(optometryDetailVO.getPupilDistance()); + tOptometryDetail.setCorrect(optometryDetailVO.getCorrect()); + tOptometryDetail.setStoreId(byId2.getStoreId()); + tOptometryDetail.setStatus(optometryDetailVO.getStatus()); + tOptometryDetails.add(tOptometryDetail); + } + optometryDetailService.saveBatch(tOptometryDetails); + // 验光完成 + byId.setStatus(3); + tLineUpService.updateById(byId); return ApiResult.success(); } - @ApiOperation(value = "验光师编辑") - @PostMapping(value = "/update") - public ApiResult<String> update(@RequestBody TOptometrist dto) { - optometristService.updateById(dto); - return ApiResult.success(); - } - @ApiOperation(value = "验光师上下架") - @GetMapping(value = "/upAndDown") - public ApiResult<Boolean> upAndDown(@RequestParam Integer id, - @RequestParam Integer status) { - return ApiResult.success(optometristService.upAndDown(id,status)); - } } -- Gitblit v1.7.1