ApiUserCouponService.java 3.4 KB

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