ApiUserCouponService.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.kmall.api.service;
  2. import com.kmall.api.contants.Dict;
  3. import com.kmall.api.dao.ApiUserCouponMapper;
  4. import com.kmall.api.entity.UserCouponVo;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.math.BigDecimal;
  8. import java.util.ArrayList;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12. @Service
  13. public class ApiUserCouponService {
  14. @Autowired
  15. private ApiUserCouponMapper userCouponDao;
  16. public UserCouponVo queryObject(Integer id) {
  17. return userCouponDao.queryObject(id);
  18. }
  19. public List<UserCouponVo> queryList(Map<String, Object> map) {
  20. return userCouponDao.queryList(map);
  21. }
  22. public int queryTotal(Map<String, Object> map) {
  23. return userCouponDao.queryTotal(map);
  24. }
  25. public void save(UserCouponVo goods) {
  26. userCouponDao.save(goods);
  27. }
  28. public void update(UserCouponVo goods) {
  29. userCouponDao.update(goods);
  30. }
  31. public void delete(Integer id) {
  32. userCouponDao.delete(id);
  33. }
  34. public void deleteBatch(Integer[] ids) {
  35. userCouponDao.deleteBatch(ids);
  36. }
  37. /**
  38. * 标记未使用的优惠券是否可用
  39. *
  40. * @param userId
  41. * @param goodsTotalPrice
  42. * @return
  43. */
  44. public List<UserCouponVo> signUserCouponList(Long userId, BigDecimal goodsTotalPrice) {
  45. Map param = new HashMap();
  46. param.put("user_id", userId);
  47. param.put("unUsed", true);
  48. param.put("enabled", true);
  49. Integer[] send_types = new Integer[]{1, 2, 3, 4, 5, 6}; // 去除订单满减0,运费7
  50. param.put("send_types", send_types);
  51. List<UserCouponVo> couponVos = userCouponDao.queryList(param);
  52. if (null != couponVos && couponVos.size() > 0) {
  53. // 如果没有用户优惠券直接返回新用户优惠券
  54. for (UserCouponVo couponVo : couponVos) {
  55. if (couponVo.getMin_goods_amount().compareTo(goodsTotalPrice) <= 0) {
  56. couponVo.setEnabled(1);
  57. }
  58. }
  59. }
  60. return couponVos;
  61. }
  62. /**
  63. * 匹配未使用的优惠券是否可用
  64. *
  65. * @param userId
  66. * @param goodsTotalPrice
  67. * @return
  68. */
  69. public List<UserCouponVo> matchUserCouponList(Long userId, BigDecimal goodsTotalPrice) {
  70. List<UserCouponVo> result = new ArrayList();
  71. Map param = new HashMap();
  72. param.put("user_id", userId);
  73. param.put("unUsed", true);
  74. param.put("enabled", true);
  75. Integer[] send_types = new Integer[]{1, 2, 3, 4, 5, 6}; // 去除订单满减0,运费7
  76. param.put("send_types", send_types);
  77. param.put("isUsed", Dict.isUsed.item_0.getItem());
  78. List<UserCouponVo> couponVos = userCouponDao.queryList(param);
  79. if (null != couponVos && couponVos.size() > 0) {
  80. // 如果没有用户优惠券直接返回新用户优惠券
  81. for (UserCouponVo couponVo : couponVos) {
  82. if (couponVo.getSend_type() == 0) { // 过滤满减
  83. continue;
  84. }
  85. if (goodsTotalPrice.compareTo(couponVo.getMin_goods_amount()) >= 0) {
  86. result.add(couponVo);
  87. }
  88. }
  89. }
  90. return result;
  91. }
  92. }