CombinationController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package com.txz.mall.controller;
  2. import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
  3. import com.github.pagehelper.PageHelper;
  4. import com.github.pagehelper.PageInfo;
  5. import com.txz.mall.business.OrderServiceBusiness;
  6. import com.txz.mall.core.Result;
  7. import com.txz.mall.core.ResultCode;
  8. import com.txz.mall.core.ServiceException;
  9. import com.txz.mall.model.StoreCombination;
  10. import com.txz.mall.service.StoreCombinationService;
  11. import com.txz.mall.service.StoreOrderService;
  12. import com.txz.mall.util.I18nUtil;
  13. import com.txz.mall.web.param.addparam.StoreCombinationAddParam;
  14. import dto.GoPinkDTO;
  15. import dto.StoreProductDTO;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.validation.annotation.Validated;
  21. import org.springframework.web.bind.annotation.*;
  22. import tk.mybatis.mapper.entity.Condition;
  23. import tk.mybatis.mapper.entity.Example;
  24. import vo.StoreCombinationRankVO;
  25. import javax.annotation.Resource;
  26. import java.util.Date;
  27. import java.util.List;
  28. import java.util.stream.Collectors;
  29. /**
  30. * Created by CodeGenerator on 2025/07/14.
  31. */
  32. @Api(tags = "[后台]拼团商品管理")
  33. @RestController
  34. @RequestMapping("/combination")
  35. public class CombinationController {
  36. private static Logger log = LoggerFactory.getLogger(CombinationController.class);
  37. @Resource
  38. private StoreCombinationService storeCombinationService;
  39. @Resource
  40. private StoreOrderService storeOrderService;
  41. @Resource
  42. private OrderServiceBusiness orderServiceBusiness;
  43. @PostMapping("/add")
  44. @ApiOperation(value = "拼团商品表新增")
  45. public Result add(@RequestBody StoreCombination storeCombination) {
  46. if (storeCombination == null) {
  47. return Result.fail(ResultCode.OBJECT_IS_NULL);
  48. }
  49. try {
  50. storeCombination.setCreateTime(new Date());
  51. // storeCombination.setCreateUserId(userId);
  52. storeCombinationService.save(storeCombination);
  53. } catch (Exception e) {
  54. log.error("新增对象操作异常e:{}", e);
  55. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  56. }
  57. return Result.success();
  58. }
  59. @DeleteMapping("/delete")
  60. @ApiOperation(value = "拼团商品表删除")
  61. public Result delete(@RequestParam Long id) {
  62. if (id == null) {
  63. return Result.fail(ResultCode.ID_IS_NULL);
  64. }
  65. StoreCombination combination = storeCombinationService.findById(id);
  66. if (combination == null) {
  67. return Result.fail(ResultCode.OBJECT_IS_NULL);
  68. }
  69. Date date = new Date();
  70. if (combination.getIsShow().equals(1) && combination.getStartTime().before(date) && combination.getStopTime().after(date)) {
  71. throw new ServiceException("the.activity.is.ongoing.and.the.product.does.not.support.deletion");
  72. }
  73. try {
  74. StoreCombination storeCombination = new StoreCombination();
  75. storeCombination.setId(id);
  76. storeCombination.setIsDelete(1);
  77. storeCombinationService.update(storeCombination);
  78. } catch (Exception e) {
  79. log.error("删除对象操作异常e:{}", e);
  80. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  81. }
  82. return Result.success();
  83. }
  84. @PutMapping("/update")
  85. @ApiOperation(value = "拼团商品表更新")
  86. public Result update(@RequestBody StoreCombination storeCombination) {
  87. if (storeCombination == null) {
  88. return Result.fail(ResultCode.OBJECT_IS_NULL);
  89. }
  90. if (storeCombination.getId() == null) {
  91. return Result.fail(ResultCode.ID_IS_NULL);
  92. }
  93. try {
  94. storeCombination.setUpdateTime(new Date());
  95. // storeCombination.setUpdateUserId(userId);
  96. storeCombinationService.update(storeCombination);
  97. } catch (Exception e) {
  98. log.error("更新对象操作异常e:{}", e);
  99. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  100. }
  101. return Result.success();
  102. }
  103. @GetMapping("/detail")
  104. @ApiOperation(value = "拼团商品表获取详情")
  105. public Result<StoreCombination> detail(@RequestParam Long id) {
  106. if (id == null) {
  107. return Result.fail(ResultCode.ID_IS_NULL);
  108. }
  109. StoreCombination storeCombination = null;
  110. try {
  111. storeCombination = storeCombinationService.findById(id);
  112. } catch (Exception e) {
  113. log.error("查询对象操作异常e:{}", e);
  114. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  115. }
  116. return Result.success(storeCombination);
  117. }
  118. @PostMapping("/app/list")
  119. @ApiOperation(value = "拼团商品表获取列表")
  120. public Result<List<StoreCombination>> list(@RequestBody StoreProductDTO dto) {
  121. PageHelper.startPage(dto.getPage(), dto.getSize());
  122. Condition condition = new Condition(StoreCombination.class);
  123. Example.Criteria criteria = condition.createCriteria();
  124. criteria.andEqualTo("isDelete", 0);
  125. criteria.andEqualTo("isShow", 1);
  126. if (dto.getSortWay() == null) {
  127. dto.setSortWay(0);
  128. }
  129. switch (dto.getSortWay()) {
  130. case 1:
  131. condition.setOrderByClause("price ASC");
  132. break;
  133. case 2:
  134. condition.setOrderByClause("price DESC");
  135. break;
  136. case 3:
  137. condition.setOrderByClause("sales DESC");
  138. break;
  139. case 4:
  140. condition.setOrderByClause("sales ASC");
  141. break;
  142. default:
  143. condition.setOrderByClause("create_time DESC");
  144. break;
  145. }
  146. if (dto.getIsNew() != null) {
  147. criteria.andEqualTo("isNew", 1);
  148. }
  149. if (dto.getMinPrice() != null && dto.getMaxPrice() != null) {
  150. criteria.andBetween("price", dto.getMinPrice(), dto.getMaxPrice());
  151. }
  152. PageInfo pageInfo = null;
  153. try {
  154. List<StoreCombination> list = storeCombinationService.findByCondition(condition);
  155. pageInfo = new PageInfo(list);
  156. } catch (Exception e) {
  157. log.error("查询对象操作异常e:{}", e);
  158. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  159. }
  160. return Result.success(pageInfo);
  161. }
  162. @PostMapping("/addActivityProduct")
  163. @ApiOperation(value = "添加活动商品")
  164. public Result addActivityProduct(@RequestBody StoreCombinationAddParam storeCombinationAddParam) {
  165. if (CollectionUtils.isEmpty(storeCombinationAddParam.getList())) {
  166. throw new ServiceException(I18nUtil.get("the.added.product.cannot.be.empty"));
  167. }
  168. if (storeCombinationAddParam.getActivityId() == null) {
  169. return Result.fail(ResultCode.ID_IS_NULL);
  170. }
  171. storeCombinationService.addActivityProduct(storeCombinationAddParam.getList(), storeCombinationAddParam.getActivityId());
  172. return Result.success();
  173. }
  174. @GetMapping("/getActivityProductIds")
  175. @ApiOperation(value = "获取活动商品ids")
  176. public Result<List<Long>> getActivityProductIds(@RequestParam("activityId") Long activityId) {
  177. Condition condition = new Condition(StoreCombination.class);
  178. Example.Criteria criteria = condition.createCriteria();
  179. criteria.andEqualTo("isDelete", 0);
  180. criteria.andEqualTo("activityId", activityId);
  181. List<StoreCombination> combinationList = storeCombinationService.findByCondition(condition);
  182. List<Long> arrayList = combinationList.stream().map(StoreCombination::getProductId).collect(Collectors.toList());
  183. return Result.success(arrayList);
  184. }
  185. /**
  186. * 去开团
  187. */
  188. // @ApiOperation(value = "支付成功-去开团")
  189. // @PostMapping(value = "/open")
  190. public Result goOpen(@RequestParam("orderId") String orderId) {
  191. storeOrderService.goOpen(orderId);
  192. return Result.success();
  193. }
  194. /**
  195. * 去拼团
  196. */
  197. // @ApiOperation(value = "去拼团")
  198. // @PostMapping(value = "/pink")
  199. public Result goPink(@Validated @RequestBody GoPinkDTO dto) {
  200. if (dto.getPinkId() == null && dto.getCid() == null) {
  201. return Result.fail(ResultCode.ID_IS_NULL);
  202. }
  203. storeOrderService.goPink(dto);
  204. return Result.success();
  205. }
  206. /**
  207. * 更多拼团
  208. */
  209. @ApiOperation(value = "更多拼团")
  210. @GetMapping(value = "/more")
  211. public Result<PageInfo<StoreCombination>> getMore(@RequestParam Integer comId, @RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
  212. PageHelper.startPage(page, size);
  213. PageInfo pageInfo = null;
  214. try {
  215. List<StoreCombination> list = storeCombinationService.getMore(comId);
  216. pageInfo = new PageInfo(list);
  217. } catch (Exception e) {
  218. log.error("查询对象操作异常e:{}", e);
  219. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  220. }
  221. return Result.success(pageInfo);
  222. }
  223. @ApiOperation(value = "排行榜")
  224. @GetMapping(value = "/rank")
  225. public Result<List<StoreCombinationRankVO>> getRank(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size) {
  226. PageHelper.startPage(page, size);
  227. PageInfo pageInfo = null;
  228. try {
  229. List<StoreCombinationRankVO> list = orderServiceBusiness.getRank();
  230. pageInfo = new PageInfo(list);
  231. } catch (Exception e) {
  232. log.error("查询对象操作异常e:{}", e);
  233. return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
  234. }
  235. return Result.success(pageInfo);
  236. }
  237. }