VipCardServiceImpl.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package beilv.vipCard.service.impl;
  2. import beilv.common.core.domain.AjaxResult;
  3. import beilv.common.core.text.Convert;
  4. import beilv.common.utils.DateUtils;
  5. import beilv.common.utils.StringUtils;
  6. import beilv.common.utils.uuid.IdUtils;
  7. import beilv.utils.UuidUtils;
  8. import beilv.vipCard.domain.Exchange;
  9. import beilv.vipCard.domain.VipCard;
  10. import beilv.vipCard.mapper.VipCardMapper;
  11. import beilv.vipCard.service.IVipCardService;
  12. import beilv.vipCardAmountLog.domain.VipCardAmountLog;
  13. import beilv.vipCardAmountLog.mapper.VipCardAmountLogMapper;
  14. import beilv.vipCardLog.domain.VipCardLog;
  15. import beilv.vipCardLog.mapper.VipCardLogMapper;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import javax.annotation.Resource;
  19. import java.math.BigDecimal;
  20. import java.util.List;
  21. /**
  22. * 储值会员卡Service业务层处理
  23. *
  24. * @author LG
  25. * @date 2025-11-12
  26. */
  27. @Service
  28. public class VipCardServiceImpl implements IVipCardService {
  29. @Resource
  30. private VipCardMapper vipCardMapper;
  31. @Resource
  32. private VipCardLogMapper cardLogMapper;
  33. @Resource
  34. private VipCardAmountLogMapper amountLogMapper;
  35. /**
  36. * 查询储值会员卡
  37. *
  38. * @param id 储值会员卡主键
  39. * @return 储值会员卡
  40. */
  41. @Override
  42. public VipCard selectVipCardById(String id) {
  43. return vipCardMapper.selectVipCardById(id);
  44. }
  45. /**
  46. * 查询储值会员卡列表
  47. *
  48. * @param vipCard 储值会员卡
  49. * @return 储值会员卡
  50. */
  51. @Override
  52. public List<VipCard> selectVipCardList(VipCard vipCard) {
  53. return vipCardMapper.selectVipCardList(vipCard);
  54. }
  55. /**
  56. * 新增储值会员卡
  57. *
  58. * @param vipCard 储值会员卡
  59. * @return 结果
  60. */
  61. @Override
  62. public String insertVipCard(VipCard vipCard) {
  63. String vipCardId = UuidUtils.getVipCardId();
  64. vipCard.setId(vipCardId);
  65. vipCard.setCreateTime(DateUtils.getNowDate());
  66. vipCard.setCardState("vip_card_state_open");
  67. vipCard.setVipLevel("普通会员");
  68. return vipCardMapper.insertVipCard(vipCard) > 0 ? vipCardId : null;
  69. }
  70. /**
  71. * 修改储值会员卡
  72. *
  73. * @param vipCard 储值会员卡
  74. * @return 结果
  75. */
  76. @Override
  77. public int updateVipCard(VipCard vipCard) {
  78. return vipCardMapper.updateVipCard(vipCard);
  79. }
  80. /**
  81. * 批量删除储值会员卡
  82. *
  83. * @param ids 需要删除的储值会员卡主键
  84. * @return 结果
  85. */
  86. @Override
  87. public int deleteVipCardByIds(String ids) {
  88. return vipCardMapper.deleteVipCardByIds(Convert.toStrArray(ids));
  89. }
  90. /**
  91. * 删除储值会员卡信息
  92. *
  93. * @param id 储值会员卡主键
  94. * @return 结果
  95. */
  96. @Override
  97. public int deleteVipCardById(String id) {
  98. return vipCardMapper.deleteVipCardById(id);
  99. }
  100. @Override
  101. public int refundById(VipCard vipCard) {
  102. vipCard.setBalance(BigDecimal.valueOf(0));
  103. vipCard.setRefundTime(DateUtils.getNowDate());
  104. vipCard.setCardState("vip_card_state_close");
  105. return vipCardMapper.updateVipCard(vipCard);
  106. }
  107. @Override
  108. public boolean haveVipCard(String userId) {
  109. return null != vipCardMapper.selectVipCardByUserId(userId);
  110. }
  111. @Override
  112. public VipCard selectVipCardByUserId(String userId) {
  113. return vipCardMapper.selectVipCardByUserId(userId);
  114. }
  115. @Override
  116. public AjaxResult exchange(Exchange exchange) {
  117. if(StringUtils.isEmpty(exchange.getCardId())){
  118. return AjaxResult.error("会员信息为空!");
  119. }
  120. if(StringUtils.isEmpty(exchange.getProductId())){
  121. return AjaxResult.error("未选中商品信息!");
  122. }
  123. //生成订单
  124. String orderId = IdUtils.fastSimpleUUID();
  125. VipCardLog vipCardLog = new VipCardLog();
  126. vipCardLog.setId(orderId);
  127. vipCardLog.setUserId(exchange.getUserId());
  128. vipCardLog.setPaymentType("score");
  129. vipCardLog.setOrderType("duihuan");
  130. vipCardLog.setBusId(exchange.getProductId());
  131. vipCardLog.setPaymentStatus("payment_status_have_paid");
  132. vipCardLog.setCreateTime(DateUtils.getNowDate());
  133. vipCardLog.setPaymentTime(vipCardLog.getCreateTime());
  134. vipCardLog.setPracticalMoney(exchange.getPayScore());
  135. vipCardLog.setPaymentId(exchange.getCardId());
  136. cardLogMapper.insertVipCardLog(vipCardLog);
  137. System.out.println("exchange.getPayScore().negate() = " + exchange.getPayScore().negate());
  138. //存在会员卡, 增加积分流水
  139. VipCardAmountLog vipCardAmountLog = new VipCardAmountLog(exchange.getUserId(), exchange.getCardId(), orderId, exchange.getScore(), exchange.getPayScore().negate(), "2");
  140. amountLogMapper.insertVipCardAmountLog(vipCardAmountLog);
  141. //存在会员卡, 增加积分
  142. VipCard vipCard = new VipCard();
  143. vipCard.setUserId(Long.valueOf(exchange.getUserId()));
  144. vipCard.setId(exchange.getCardId());
  145. vipCard.setScore(vipCardAmountLog.getRemainingAmount());
  146. vipCardMapper.updateVipCard(vipCard);
  147. return AjaxResult.success();
  148. }
  149. }