CmCouponClubService.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.caimei.modules.coupon.service;
  2. import com.caimei.modules.coupon.dao.CmCouponClubDao;
  3. import com.caimei.modules.coupon.entity.CmCoupon;
  4. import com.caimei.modules.coupon.entity.CmCouponClub;
  5. import com.caimei.modules.coupon.entity.CmCouponRedemptionCode;
  6. import com.thinkgem.jeesite.common.persistence.Page;
  7. import com.thinkgem.jeesite.common.service.CrudService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import java.util.Date;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. /**
  16. * 优惠券管理Service
  17. *
  18. * @author plf
  19. * @version 2021-08-10
  20. */
  21. @Service
  22. @Transactional(readOnly = true)
  23. public class CmCouponClubService extends CrudService<CmCouponClubDao, CmCouponClub> {
  24. @Autowired
  25. private CmCouponClubDao cmCouponClubDao;
  26. public CmCouponClub get(String id) {
  27. return super.get(id);
  28. }
  29. public List<CmCouponClub> findList(CmCouponClub cmCouponClub) {
  30. return super.findList(cmCouponClub);
  31. }
  32. public Page<CmCouponClub> findPage(Page<CmCouponClub> page, CmCouponClub cmCouponClub) {
  33. return super.findPage(page, cmCouponClub);
  34. }
  35. @Transactional(readOnly = false)
  36. public void save(CmCouponClub cmCouponClub) {
  37. super.save(cmCouponClub);
  38. }
  39. public Page<CmCouponClub> receivingUserList(Page<CmCouponClub> cmCouponClubPage, CmCouponClub cmCouponClub) {
  40. cmCouponClub.setPage(cmCouponClubPage);
  41. List<CmCouponClub> couponClubList = cmCouponClubDao.receivingUserList(cmCouponClub);
  42. cmCouponClubPage.setList(couponClubList);
  43. return cmCouponClubPage;
  44. }
  45. public Page<CmCouponClub> findCouponDetails(Page<CmCouponClub> couponClubPage, CmCouponClub cmCouponClub) {
  46. cmCouponClub.setPage(couponClubPage);
  47. List<CmCouponClub> couponList = cmCouponClubDao.findClubCoupon(cmCouponClub);
  48. if (couponList != null && couponList.size() > 0) {
  49. Date date = new Date();
  50. couponList.forEach(couponClub -> {
  51. if ("2".equals(couponClub.getCouponStatus())) {
  52. if (date.compareTo(couponClub.getStartDate()) < 0) {
  53. couponClub.setCouponStatus("0");
  54. } else if (date.compareTo(couponClub.getEndDate()) > 0) {
  55. couponClub.setCouponStatus("3");
  56. } else {
  57. couponClub.setCouponStatus("1");
  58. }
  59. }
  60. });
  61. }
  62. couponClubPage.setList(couponList);
  63. return couponClubPage;
  64. }
  65. @Transactional(readOnly = false)
  66. public Map<String, Object> redeemCoupons(CmCouponRedemptionCode redemptionCode) {
  67. Map<String, Object> map = new HashMap<>();
  68. CmCouponRedemptionCode cmCouponRedemptionCode = cmCouponClubDao.findCouponRedemptionCode(redemptionCode.getRedemptionCode());
  69. if (cmCouponRedemptionCode == null) {
  70. map.put("code", -1);
  71. map.put("msg", "请输入正确的兑换码");
  72. return map;
  73. }
  74. if ("2".equals(cmCouponRedemptionCode.getStatus())) {
  75. map.put("code", -1);
  76. map.put("msg", "兑换码已使用,请更换兑换码进行兑换");
  77. return map;
  78. }
  79. CmCoupon coupon = cmCouponClubDao.getCoupons(redemptionCode.getCouponId());
  80. Date date = new Date();
  81. if (coupon == null || date.compareTo(coupon.getStartDate()) < 0 || date.compareTo(coupon.getEndDate()) > 0) {
  82. map.put("code", -1);
  83. map.put("msg", "兑换的优惠券已失效");
  84. return map;
  85. }
  86. CmCouponClub couponClub = new CmCouponClub();
  87. couponClub.setCouponId(redemptionCode.getCouponId());
  88. couponClub.setUserId(redemptionCode.getUserId());
  89. couponClub.setSource("4");
  90. couponClub.setStatus("1");
  91. couponClub.setCreateDate(new Date());
  92. couponClub.setDelFlag("0");
  93. cmCouponClubDao.insertCouponClub(couponClub);
  94. cmCouponClubDao.updateRedemptionCode(cmCouponRedemptionCode.getId(), couponClub.getId());
  95. map.put("code", 0);
  96. map.put("msg", "优惠券兑换成功");
  97. return map;
  98. }
  99. }