TXiangmuController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.ylx.web.controller.massage;
  2. import cn.hutool.core.collection.CollectionUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ylx.common.annotation.Log;
  6. import com.ylx.common.core.domain.R;
  7. import com.ylx.common.enums.BusinessType;
  8. import com.ylx.common.exception.ServiceException;
  9. import com.ylx.massage.domain.THighlights;
  10. import com.ylx.massage.domain.TJs;
  11. import com.ylx.massage.domain.TJsDay;
  12. import com.ylx.massage.domain.TXiangmu;
  13. import com.ylx.massage.domain.vo.TXiangmuDetailVo;
  14. import com.ylx.massage.mapper.TJsDayMapper;
  15. import com.ylx.massage.service.THighlightsService;
  16. import com.ylx.massage.service.TJsService;
  17. import com.ylx.massage.service.TXiangmuService;
  18. import com.ylx.massage.utils.DateTimeUtils;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import lombok.extern.slf4j.Slf4j;
  22. import org.apache.commons.lang3.StringUtils;
  23. import org.springframework.web.bind.annotation.*;
  24. import javax.annotation.Resource;
  25. import java.util.Date;
  26. import java.util.List;
  27. import java.util.stream.Collectors;
  28. /**
  29. * Controller
  30. *
  31. * @author ylx
  32. * @date 2024-03-22
  33. */
  34. @RestController
  35. @RequestMapping("api/xiangmu/v1")
  36. @Slf4j
  37. @Api(tags = {"项目管理"})
  38. public class TXiangmuController {
  39. @Resource
  40. private TXiangmuService xiangmuService;
  41. @Resource
  42. private THighlightsService highlightsService;
  43. @Resource
  44. private TJsDayMapper jsDayMapper;
  45. @Resource
  46. private TJsService jsService;
  47. /**
  48. * 获取所有项目
  49. *
  50. * @return
  51. */
  52. @RequestMapping(value = "wx/getAll", method = RequestMethod.POST)
  53. @ApiOperation("获取所有项目")
  54. public R<List<TXiangmu>> geTXiangmu(@RequestBody TXiangmu tXiangmu) {
  55. LambdaQueryWrapper<TXiangmu> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
  56. objectLambdaQueryWrapper.eq(StringUtils.isNotBlank(tXiangmu.getcId()), TXiangmu::getcId, tXiangmu.getcId());
  57. if (StringUtils.isNotBlank(tXiangmu.getcLdList())) {
  58. objectLambdaQueryWrapper.apply("FIND_IN_SET({0}, c_ld_list)", tXiangmu.getcLdList());
  59. }
  60. objectLambdaQueryWrapper.orderByAsc(TXiangmu::getdPrice);
  61. List<TXiangmu> list = xiangmuService.list(objectLambdaQueryWrapper);
  62. return R.ok(list);
  63. }
  64. @RequestMapping(value = "wx/recommend", method = RequestMethod.GET)
  65. @ApiOperation("推荐技师")
  66. public List<TJs> recommend(@RequestParam String deptName) {
  67. //推荐技师
  68. List<TJsDay> tJsDays = jsDayMapper.selectRanking(deptName, null,
  69. DateTimeUtils.formatDate(DateTimeUtils.addMonths(new Date(), -1)), DateTimeUtils.formatDate(new Date()));
  70. //查技师
  71. if (CollectionUtil.isEmpty(tJsDays)) {
  72. return null;
  73. }
  74. List<String> jsId = tJsDays.stream().map(TJsDay::getJsId).collect(Collectors.toList());
  75. LambdaQueryWrapper<TJs> jsLambdaQueryWrapper = new LambdaQueryWrapper<>();
  76. jsLambdaQueryWrapper.in(CollectionUtil.isNotEmpty(jsId), TJs::getId, jsId);
  77. return jsService.list(jsLambdaQueryWrapper);
  78. }
  79. /**
  80. * 添加或者更新项目
  81. *
  82. * @param xiangmu
  83. * @return
  84. */
  85. @Log(title = "项目管理", businessType = BusinessType.INSERT)
  86. @RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
  87. @ApiOperation("添加或者更新项目")
  88. public R saveOrUpdate(@RequestBody TXiangmu xiangmu) {
  89. try {
  90. return R.ok(xiangmuService.addOrUpdate(xiangmu));
  91. } catch (ServiceException s) {
  92. log.error(s.toString());
  93. return R.fail(s.getMessage());
  94. } catch (Exception e) {
  95. log.error(e.toString());
  96. return R.fail("系统异常");
  97. }
  98. }
  99. /**
  100. * 分页查询数据
  101. */
  102. @RequestMapping(value = "/select", method = RequestMethod.GET)
  103. @ApiOperation("分页查询数据")
  104. public R<Page<TXiangmu>> selecTXiangmu(Page<TXiangmu> page, TXiangmu tXiangmu) {
  105. LambdaQueryWrapper<TXiangmu> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
  106. objectLambdaQueryWrapper.like(StringUtils.isNotBlank(tXiangmu.getcTitle()), TXiangmu::getcTitle, tXiangmu.getcTitle()).
  107. orderByDesc(TXiangmu::getDtCreateTime);
  108. // 获取查询返回结果
  109. Page<TXiangmu> pageSelect = xiangmuService.page(page, objectLambdaQueryWrapper);
  110. return R.ok(pageSelect);
  111. }
  112. /**
  113. * 分页查询数据
  114. */
  115. @ApiOperation("根据id查询项目")
  116. @RequestMapping(value = "/getByid", method = RequestMethod.POST)
  117. public R getById(@RequestBody TXiangmu xiangmu) {
  118. TXiangmuDetailVo details = xiangmuService.details(xiangmu);
  119. return R.ok(details);
  120. }
  121. /**
  122. * 删除项目
  123. *
  124. * @param xiangmu
  125. * @return
  126. */
  127. @Log(title = "项目管理", businessType = BusinessType.DELETE)
  128. @RequestMapping(value = "/del", method = RequestMethod.POST)
  129. @ApiOperation("删除项目")
  130. public R del(@RequestBody TXiangmu xiangmu) {
  131. return R.ok(xiangmuService.removeById(xiangmu));
  132. }
  133. /**
  134. * 项目两点
  135. */
  136. @ApiOperation("项目亮点")
  137. @RequestMapping(value = "/highlights", method = RequestMethod.GET)
  138. public R<List<THighlights>> getHighlights() {
  139. return R.ok(highlightsService.list());
  140. }
  141. }