VipPromoCodeController.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.sqx.modules.member.controller;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.sqx.common.exception.SqxException;
  4. import com.sqx.common.utils.PageUtils;
  5. import com.sqx.common.utils.Result;
  6. import com.sqx.modules.member.dto.VipPromoCodeDTO;
  7. import com.sqx.modules.member.query.VipPromoCodeQuery;
  8. import com.sqx.modules.member.query.VipPromoRecordQuery;
  9. import com.sqx.modules.member.service.VipPromoCodeService;
  10. import com.sqx.modules.member.service.VipPromoRecordService;
  11. import com.sqx.modules.utils.PromotionCodeUtil;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import io.swagger.annotations.ApiParam;
  15. import lombok.RequiredArgsConstructor;
  16. import org.springframework.web.bind.annotation.DeleteMapping;
  17. import org.springframework.web.bind.annotation.GetMapping;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.PutMapping;
  20. import org.springframework.web.bind.annotation.RequestBody;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import javax.validation.Valid;
  24. import java.util.Arrays;
  25. @Api(tags = "会员推广管理")
  26. @RestController
  27. @RequestMapping("vip-promo")
  28. @RequiredArgsConstructor
  29. public class VipPromoCodeController{
  30. private final VipPromoCodeService vipPromoCodeService;
  31. private final VipPromoRecordService vipPromoRecordService;
  32. @GetMapping("pages")
  33. @ApiOperation("分页查询会员推广码")
  34. public Result pages(@Valid VipPromoCodeQuery query) {
  35. PageUtils page = vipPromoCodeService.pages(query);
  36. return Result.success().put("data", page);
  37. }
  38. @GetMapping("generate-promo-code")
  39. @ApiOperation("生成会员推广码")
  40. public Result generatePromoCode() {
  41. String promoCode = PromotionCodeUtil.generatePromotionCode();
  42. return Result.success().put("data", promoCode);
  43. }
  44. @PostMapping
  45. @ApiOperation("添加会员推广码")
  46. public Result add(@RequestBody @Valid VipPromoCodeDTO dto) {
  47. vipPromoCodeService.save(dto);
  48. return Result.success();
  49. }
  50. @PutMapping
  51. @ApiOperation("修改会员推广码")
  52. public Result update(@RequestBody @Valid VipPromoCodeDTO dto) {
  53. if (ObjectUtil.isNull(dto.getId())) {
  54. throw new SqxException("id不能为空");
  55. }
  56. vipPromoCodeService.update(dto);
  57. return Result.success();
  58. }
  59. @DeleteMapping
  60. @ApiOperation("删除会员推广码")
  61. public Result delete(@RequestBody @ApiParam("id的集合") Long[] ids) {
  62. vipPromoCodeService.removeByIds(Arrays.asList(ids));
  63. return Result.success();
  64. }
  65. @GetMapping("record/pages")
  66. @ApiOperation("分页查询会员推广记录")
  67. public Result recordPages(@Valid VipPromoRecordQuery query) {
  68. PageUtils page = vipPromoRecordService.pages(query);
  69. return Result.success().put("data", page);
  70. }
  71. @GetMapping("record/export")
  72. @ApiOperation("导出会员推广记录")
  73. public void recordExport(@Valid VipPromoRecordQuery query) {
  74. vipPromoRecordService.recordExport(query);
  75. }
  76. }