CouponController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.fs.app.controller;
  2. import cn.hutool.core.util.IdUtil;
  3. import com.fs.app.annotation.Login;
  4. import com.fs.common.core.domain.R;
  5. import com.fs.common.core.redis.RedisCache;
  6. import com.fs.common.param.BaseQueryParam;
  7. import com.fs.common.utils.StringUtils;
  8. import com.fs.store.domain.FsStoreCouponIssue;
  9. import com.fs.store.domain.FsStoreCouponUser;
  10. import com.fs.store.param.*;
  11. import com.fs.store.service.*;
  12. import com.fs.store.vo.FsStoreCouponIssueVO;
  13. import com.github.pagehelper.PageHelper;
  14. import com.github.pagehelper.PageInfo;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import javax.servlet.http.HttpServletRequest;
  20. import java.util.List;
  21. import java.util.concurrent.TimeUnit;
  22. import java.util.stream.Collectors;
  23. @Api("优惠券接口")
  24. @RestController
  25. @RequestMapping(value="/app/coupon")
  26. public class CouponController extends AppBaseController {
  27. @Autowired
  28. private IFsStoreCouponIssueService fsStoreCouponIssueService;
  29. @Autowired
  30. private IFsStoreCouponService couponService;
  31. @Autowired
  32. private IFsStoreCouponUserService fsStoreCouponUserService;
  33. @Autowired
  34. RedisCache redisCache;
  35. @Login
  36. @ApiOperation("获取优惠券列表")
  37. @GetMapping("/getCouponIssueList")
  38. public R getCouponIssueList(BaseQueryParam param, HttpServletRequest request){
  39. PageHelper.startPage(param.getPage(), param.getPageSize());
  40. try {
  41. FsStoreCouponIssue map=new FsStoreCouponIssue();
  42. map.setIsDel(0);
  43. map.setCouponType(0);
  44. map.setStatus(1);
  45. List<FsStoreCouponIssueVO> list=fsStoreCouponIssueService.selectFsStoreCouponIssueListQueryVO(getUserId(),map);
  46. PageInfo<FsStoreCouponIssueVO> listPageInfo=new PageInfo<>(list);
  47. return R.ok().put("data",listPageInfo);
  48. } catch (Exception e){
  49. return R.error("操作异常");
  50. }
  51. }
  52. @Login
  53. @ApiOperation("获取我的优惠券列表")
  54. @GetMapping("/getMyCouponList")
  55. public R getMyCouponList(FsCouponUserParam param, HttpServletRequest request){
  56. try {
  57. FsStoreCouponUser map=new FsStoreCouponUser();
  58. map.setIsDel(0);
  59. map.setUserId(Long.parseLong(getUserId()));
  60. List<FsStoreCouponUser> list=fsStoreCouponUserService.selectFsStoreCouponUserList(map);
  61. return R.ok().put("data",list);
  62. } catch (Exception e){
  63. return R.error("操作异常");
  64. }
  65. }
  66. @Login
  67. @ApiOperation("领取")
  68. @PostMapping("/receive")
  69. public R receive(@RequestBody FsStoreCouponReceiveParam param, HttpServletRequest request){
  70. return fsStoreCouponIssueService.receive(getUserId(),param);
  71. }
  72. @Login
  73. @ApiOperation("获取销售可用套餐卷列表")
  74. @GetMapping("/getCompanyCouponIssueList")
  75. public R getCompanyCouponIssueList(FsCouponIssueParam param, HttpServletRequest request){
  76. PageHelper.startPage(param.getPage(), param.getPageSize());
  77. try {
  78. List<FsStoreCouponIssueVO> list=fsStoreCouponIssueService.getCompanyCouponIssueList(param);
  79. PageInfo<FsStoreCouponIssueVO> listPageInfo=new PageInfo<>(list);
  80. return R.ok().put("data",listPageInfo);
  81. } catch (Exception e){
  82. return R.error("操作异常");
  83. }
  84. }
  85. @ApiOperation("获取销售可用套餐卷")
  86. @GetMapping("/getCouponIssueById")
  87. public R getCouponIssueById(@RequestParam(value="id") Long id, HttpServletRequest request){
  88. String code = IdUtil.getSnowflake(0, 0).nextIdStr();
  89. redisCache.setCacheObject("coupon:"+code,id.toString(),10, TimeUnit.MINUTES);
  90. FsStoreCouponIssueVO couponIssue=fsStoreCouponIssueService.selectFsStoreCouponIssueVOById(id);
  91. return R.ok().put("data",couponIssue).put("code",code);
  92. }
  93. @Login
  94. @ApiOperation("领取")
  95. @PostMapping("/companyReceive")
  96. public R companyReceive(@RequestBody FsStoreCouponReceiveParam param, HttpServletRequest request){
  97. String code=redisCache.getCacheObject("coupon:"+param.getCode());
  98. if(StringUtils.isEmpty(code)){
  99. return R.error("此券已失效");
  100. }
  101. return fsStoreCouponIssueService.receive(getUserId(),param);
  102. }
  103. @Login
  104. @ApiOperation("获取我的优惠券列表")
  105. @GetMapping("/getMyEnableCouponList")
  106. public R getMyEnableCouponList(FsCouponUserEnableParam param, HttpServletRequest request){
  107. try {
  108. param.setUserId(Long.parseLong(getUserId()));
  109. List<FsStoreCouponUser> list=fsStoreCouponUserService.selectFsStoreCouponUserListByEnable(param);
  110. list=list.stream().filter(s->(s.getCouponPrice().compareTo(param.getUseMinPrice())==-1 )).collect(Collectors.toList());
  111. list=list.stream().filter(s->(s.getUseMinPrice().compareTo(param.getUseMinPrice())==-1 )).collect(Collectors.toList());
  112. return R.ok().put("data",list);
  113. } catch (Exception e){
  114. return R.error("操作异常");
  115. }
  116. }
  117. }