1
0

ApiUserCouponService.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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,String merchSn, 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. param.put("merchSn", merchSn);
  52. List<UserCouponVo> couponVos = userCouponDao.queryList(param);
  53. if (null != couponVos && couponVos.size() > 0) {
  54. // 如果没有用户优惠券直接返回新用户优惠券
  55. for (UserCouponVo couponVo : couponVos) {
  56. if (couponVo.getMin_goods_amount().compareTo(goodsTotalPrice) <= 0) {
  57. couponVo.setEnabled(1);
  58. }
  59. }
  60. }
  61. return couponVos;
  62. }
  63. /**
  64. * 匹配未使用的优惠券是否可用
  65. *
  66. * @param userId
  67. * @param goodsTotalPrice
  68. * @return
  69. */
  70. public List<UserCouponVo> matchUserCouponList(Long userId, String merchSn, BigDecimal goodsTotalPrice) {
  71. List<UserCouponVo> result = new ArrayList();
  72. Map param = new HashMap();
  73. param.put("user_id", userId);
  74. param.put("unUsed", true);
  75. param.put("enabled", true);
  76. Integer[] send_types = new Integer[]{1, 2, 3, 4, 5, 6}; // 去除订单满减0,运费7
  77. param.put("send_types", send_types);
  78. param.put("isUsed", Dict.isUsed.item_0.getItem());
  79. param.put("merchSn", merchSn);
  80. List<UserCouponVo> couponVos = userCouponDao.queryList(param);
  81. if (null != couponVos && couponVos.size() > 0) {
  82. // 如果没有用户优惠券直接返回新用户优惠券
  83. for (UserCouponVo couponVo : couponVos) {
  84. if (couponVo.getSend_type() == 0) { // 过滤满减
  85. continue;
  86. }
  87. if (goodsTotalPrice.compareTo(couponVo.getMin_goods_amount()) >= 0) {
  88. result.add(couponVo);
  89. }
  90. }
  91. }
  92. return result;
  93. }
  94. }