TzController.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package org.springblade.modules.groupon.controller;
  2. import cn.hutool.core.lang.Assert;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import io.swagger.annotations.ApiParam;
  10. import org.springblade.common.enums.GrouponSourceEnum;
  11. import org.springblade.core.excel.util.ExcelUtil;
  12. import org.springblade.core.mp.support.Condition;
  13. import org.springblade.core.mp.support.Query;
  14. import org.springblade.core.secure.utils.AuthUtil;
  15. import org.springblade.core.tool.api.R;
  16. import org.springblade.modules.api.response.GroupStatisResponse;
  17. import org.springblade.modules.api.service.impl.GrouponOrderServiceImpl;
  18. import org.springblade.modules.finance.service.IAfterSalesService;
  19. import org.springblade.modules.finance.service.IOrderGrouponService;
  20. import org.springblade.modules.groupon.entity.UserSelfTake;
  21. import org.springblade.modules.groupon.service.IGrouponService;
  22. import org.springblade.modules.groupon.service.IUserSelfTakeService;
  23. import org.springblade.modules.groupon.vo.AppointmentVO;
  24. import org.springblade.modules.groupon.vo.ExportAppointmentVO;
  25. import org.springblade.modules.groupon.vo.ExportPickUpAppointmentVO;
  26. import org.springblade.modules.groupon.vo.GrouponVO;
  27. import org.springblade.modules.platform.service.UserAppService;
  28. import org.springblade.modules.system.entity.UserApp;
  29. import org.springframework.context.annotation.Lazy;
  30. import org.springframework.web.bind.annotation.*;
  31. import javax.annotation.Resource;
  32. import javax.servlet.http.HttpServletResponse;
  33. import javax.validation.Valid;
  34. import java.util.List;
  35. @RestController
  36. @RequestMapping("/tz")
  37. @Api(value = "团长后台接口", tags = "团长后台接口")
  38. public class TzController {
  39. @Resource
  40. private IGrouponService grouponService;
  41. @Resource
  42. private GrouponOrderServiceImpl grouponOrderService;
  43. @Resource
  44. private IOrderGrouponService orderGrouponService;
  45. @Lazy
  46. @Resource
  47. private IAfterSalesService afterSalesService;
  48. @Resource
  49. private UserAppService userAppService;
  50. @Resource
  51. private IUserSelfTakeService userSelfTakeService;
  52. @GetMapping("/groupon/statis")
  53. @ApiOperationSupport(order = 1)
  54. @ApiOperation(value = "查询团购统计")
  55. public R<GroupStatisResponse> groupStatistics() {
  56. GroupStatisResponse result = grouponService.groupStatistics(AuthUtil.getUserId());
  57. return R.data(result);
  58. }
  59. @GetMapping("/groupon-mng/list")
  60. @ApiOperationSupport(order = 2)
  61. @ApiOperation(value = "查询团购管理列表")
  62. public R<IPage<GrouponVO>> grouponMngList(@ApiParam("state") Integer state, Query query) {
  63. return R.data(grouponService.grouponMngList(Condition.getPage(query), AuthUtil.getUserId(), state));
  64. }
  65. @GetMapping("/groupon-mng/detail")
  66. @ApiOperationSupport(order = 3)
  67. @ApiOperation(value = "查询团购管理列表详情")
  68. public R<GrouponVO> grouponMngDetail(@ApiParam("拼团ID") Long groupId) {
  69. return R.data(grouponService.grouponMngDetail(groupId));
  70. }
  71. @PostMapping("/publishGroupon")
  72. @ApiOperationSupport(order = 4)
  73. @ApiOperation(value = "新增", notes = "传入groupon")
  74. public R publishGroupon(@Valid @RequestBody GrouponVO groupon) {
  75. Assert.notBlank(groupon.getMainTitle(), "主标题不能为空");
  76. Assert.notBlank(groupon.getSubTitle(), "副标题不能为空");
  77. Assert.notEmpty(groupon.getSelfTakeIds(), "自提点不能为空");
  78. groupon.setSource(GrouponSourceEnum.PLATFORM.getValue());
  79. groupon.setOrganizerUserId(AuthUtil.getUserId());
  80. grouponService.publishGroupon(groupon);
  81. return R.status(true);
  82. }
  83. @PostMapping("verification")
  84. @ApiOperationSupport(order = 5)
  85. @ApiOperation(value = "取货核销", notes = "通过取货码进行核销")
  86. public R verification(@ApiParam("取货码") String pickupCode){
  87. grouponOrderService.confirmOrder(pickupCode, AuthUtil.getUserId());
  88. return R.success("取货核销成功");
  89. }
  90. @GetMapping("/commander")
  91. @ApiOperationSupport(order = 6)
  92. @ApiOperation(value = "获取团长团购订单")
  93. public R<IPage<GrouponVO>> getCommanderOrder(Query query, Integer grouponState) {
  94. return R.data(orderGrouponService.getCommanderOrder(Condition.getPage(query), AuthUtil.getUserId(), grouponState));
  95. }
  96. // @ApiOperationSupport(order = 8)
  97. // @ApiOperation(value = "同意售后")
  98. // @PostMapping("/after-sales/agree")
  99. // public R agree(@RequestParam("afterSalesNo") String afterSalesNo) {
  100. // afterSalesService.agree(afterSalesNo);
  101. // return R.success("ok");
  102. // }
  103. @ApiOperationSupport(order = 2)
  104. @ApiOperation(value = "驳回售后")
  105. @PostMapping("/after-sales/refuse")
  106. public R refuse(@RequestParam("afterSalesNo") String afterSalesNo, @RequestParam("refuseReason") String refuseReason) {
  107. Assert.notBlank(refuseReason, "拒绝原因不能为空");
  108. afterSalesService.refuse(afterSalesNo, refuseReason);
  109. return R.success("ok");
  110. }
  111. @GetMapping("/pick-up/appointment")
  112. @ApiOperationSupport(order = 9)
  113. @ApiOperation(value = "获取团长取货履约单列表")
  114. public R<IPage<AppointmentVO>> getPickUpAppointment(Query query, Integer state) {
  115. UserApp userApp = userAppService.getByUserId(AuthUtil.getUserId());
  116. if(ObjectUtil.isEmpty(userApp.getLivingHall()) || !userApp.getLivingHall().equals(1)){
  117. return R.fail("团长身份异常,请联系客服");
  118. }
  119. UserSelfTake userSelfTake = userSelfTakeService.getOne(Wrappers.lambdaQuery(UserSelfTake.class).eq(UserSelfTake::getUserId, userApp.getUserId()));
  120. return R.data(orderGrouponService.getPickUpAppointment(Condition.getPage(query), null, state, userSelfTake.getSelfTakeId()));
  121. }
  122. @GetMapping("/pick-up/appointment/export")
  123. @ApiOperationSupport(order = 10)
  124. @ApiOperation(value = "导出团长取货履约单")
  125. public void exportPickUpAppointment(Long grouponId, String grouponName, String stateDesc, String grouponStartTime, HttpServletResponse response) {
  126. List<ExportPickUpAppointmentVO> list = orderGrouponService.getPickUpAppointmentData(grouponId);
  127. for (ExportPickUpAppointmentVO e : list) {
  128. e.setMainTitle(grouponName);
  129. e.setState(stateDesc);
  130. e.setGrouponStartTime(grouponStartTime);
  131. }
  132. ExcelUtil.export(response, "取货履约单", "取货履约单列表", list, ExportPickUpAppointmentVO.class);
  133. }
  134. @GetMapping("/appointment/all")
  135. @ApiOperationSupport(order = 9)
  136. @ApiOperation(value = "获取运营后台履约单列表")
  137. public R<IPage<AppointmentVO>> getPickUpAppointmentAll(Query query, Integer state) {
  138. return R.data(orderGrouponService.getPickUpAppointment(Condition.getPage(query), null, state, null));
  139. }
  140. @GetMapping("/appointment/all/export")
  141. @ApiOperationSupport(order = 10)
  142. @ApiOperation(value = "导出履约单")
  143. public void exportPickUpAppointmentAll(Long grouponId, String grouponName, String stateDesc, String grouponStartTime,HttpServletResponse response) {
  144. List<ExportAppointmentVO> list = orderGrouponService.getPickUpAppointmentDataAll(grouponId);
  145. for (ExportAppointmentVO e : list) {
  146. e.setMainTitle(grouponName);
  147. e.setState(stateDesc);
  148. e.setGrouponStartTime(grouponStartTime);
  149. }
  150. ExcelUtil.export(response, "履约单", "履约单列表", list, ExportAppointmentVO.class);
  151. }
  152. }