CouponServiceImpl.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.kmall.admin.service.impl;
  2. import com.kmall.admin.dao.CouponDao;
  3. import com.kmall.admin.dao.CouponGoodsDao;
  4. import com.kmall.admin.dao.UserCouponDao;
  5. import com.kmall.admin.dao.UserDao;
  6. import com.kmall.admin.entity.CouponEntity;
  7. import com.kmall.admin.entity.CouponGoodsEntity;
  8. import com.kmall.admin.entity.UserCouponEntity;
  9. import com.kmall.admin.entity.UserEntity;
  10. import com.kmall.admin.service.CouponService;
  11. import com.kmall.common.utils.R;
  12. import org.apache.commons.collections.MapUtils;
  13. import org.apache.commons.lang.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.Date;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * Service实现类
  21. *
  22. * @author Scott
  23. * @email
  24. * @date 2017-08-19 12:53:26
  25. */
  26. @Service("couponService")
  27. public class CouponServiceImpl implements CouponService {
  28. @Autowired
  29. private CouponDao couponDao;
  30. @Autowired
  31. private UserCouponDao userCouponDao;
  32. @Autowired
  33. private CouponGoodsDao couponGoodsDao;
  34. @Autowired
  35. private UserDao userDao;
  36. @Override
  37. public CouponEntity queryObject(Integer id) {
  38. return couponDao.queryObject(id);
  39. }
  40. @Override
  41. public List<CouponEntity> queryList(Map<String, Object> map) {
  42. return couponDao.queryList(map);
  43. }
  44. @Override
  45. public int queryTotal(Map<String, Object> map) {
  46. return couponDao.queryTotal(map);
  47. }
  48. @Override
  49. public int save(CouponEntity coupon) {
  50. return couponDao.save(coupon);
  51. }
  52. @Override
  53. public int update(CouponEntity coupon) {
  54. return couponDao.update(coupon);
  55. }
  56. @Override
  57. public int delete(Integer id) {
  58. return couponDao.delete(id);
  59. }
  60. @Override
  61. public int deleteBatch(Integer[] ids) {
  62. return couponDao.deleteBatch(ids);
  63. }
  64. @Override
  65. public R publish(Map<String, Object> params) {
  66. // 发放方式 0:按订单发放 1:按用户发放 2:商品转发送券 3:按商品发放 4:新用户注册 5:线下发放 6评价好评红包(固定或随机红包)
  67. Integer sendType = MapUtils.getInteger(params, "sendType");
  68. Integer couponId = MapUtils.getInteger(params, "couponId");
  69. if (null == sendType) {
  70. return R.error("发放方式不能为空");
  71. }
  72. if (null == couponId) {
  73. return R.error("优惠券不能为空");
  74. }
  75. if (1 == sendType) {
  76. String userIds = MapUtils.getString(params, "userIds"); // 下发用户逗号分割
  77. if (StringUtils.isEmpty(userIds)) {
  78. return R.error("用户不能为空");
  79. }
  80. //是否发送短信通知
  81. boolean sendSms = "true".equals(MapUtils.getString(params, "sendSms"));
  82. for (String strUserId : userIds.split(",")) {
  83. if (StringUtils.isEmpty(strUserId)) {
  84. continue;
  85. }
  86. Integer userId = Integer.valueOf(strUserId);
  87. UserCouponEntity userCouponVo = new UserCouponEntity();
  88. userCouponVo.setUserId(userId);
  89. userCouponVo.setCouponId(couponId);
  90. userCouponVo.setCouponNumber("1");
  91. userCouponVo.setAddTime(new Date());
  92. userCouponDao.save(userCouponVo);
  93. if (sendSms) {
  94. UserEntity userEntity = userDao.queryObject(userId);
  95. // todo 发送短信
  96. }
  97. }
  98. } else if (3 == sendType) {
  99. String goodsIds = MapUtils.getString(params, "goodsIds"); // 下发商品逗号分割
  100. if (StringUtils.isEmpty(goodsIds)) {
  101. return R.error("商品Id不能为空");
  102. }
  103. for (String goodsId : goodsIds.split(",")) {
  104. if (StringUtils.isEmpty(goodsId)) {
  105. continue;
  106. }
  107. CouponGoodsEntity couponGoodsVo = new CouponGoodsEntity();
  108. couponGoodsVo.setCouponId(couponId);
  109. couponGoodsVo.setGoodsId(Integer.valueOf(goodsId));
  110. couponGoodsDao.save(couponGoodsVo);
  111. }
  112. } else {
  113. return R.error("此类优惠券不支持手动发放");
  114. }
  115. return R.ok("发放成功");
  116. }
  117. }