You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
5.8 KiB

3 months ago
3 months ago
3 months ago
3 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
2 months ago
2 months ago
3 months ago
3 months ago
  1. package com.example.demo.serviceImpl.coin;
  2. import com.example.demo.domain.entity.UserGoldRecord;
  3. import com.example.demo.domain.vo.bean.BeanUserCard;
  4. import com.example.demo.mapper.bean.BeanUserMapper;
  5. import com.example.demo.mapper.coin.MarketMapper;
  6. import com.example.demo.mapper.coin.RechargeMapper;
  7. import com.example.demo.mapper.coin.UserMapper;
  8. import com.example.demo.service.coin.MarketService;
  9. import com.example.demo.service.coin.RechargeService;
  10. import com.github.pagehelper.PageHelper;
  11. import com.github.pagehelper.PageInfo;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import com.example.demo.domain.vo.coin.*;
  15. import java.math.BigDecimal;
  16. import java.time.LocalDate;
  17. import java.time.LocalDateTime;
  18. import java.time.format.DateTimeFormatter;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Random;
  22. import java.util.UUID;
  23. /**
  24. * @program: gold-java
  25. * @ClassName RechrageServceImpl
  26. * @description:
  27. * @author: Double
  28. * @create: 202506-29 13:40
  29. * @Version 1.0
  30. **/
  31. @Service
  32. public class RechargeServiceImpl implements RechargeService {
  33. @Autowired
  34. private RechargeMapper rechargeMapper;
  35. @Autowired
  36. private UserMapper userMapper;
  37. @Autowired
  38. private MarketMapper marketMapper;
  39. @Autowired
  40. private BeanUserMapper beanUserMapper;
  41. //查询所有充值
  42. @Override
  43. public PageInfo<RechargeUser> selectAll(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) throws Exception{
  44. //获取市场id
  45. List<String> markets = marketMapper.getMarketIds(rechargeUser.getMarkets());
  46. rechargeUser.setMarkets(markets);
  47. PageHelper.startPage(pageNum, pageSize);
  48. List<RechargeUser> rechargeUsers = rechargeMapper.selectAll(rechargeUser);
  49. return new PageInfo<>(rechargeUsers);
  50. }
  51. //查询筛选充值
  52. @Override
  53. public PageInfo<RechargeUser> selectBy(Integer pageNum, Integer pageSize, RechargeUser rechargeUser) throws Exception{
  54. List<String> markets = marketMapper.getMarketIds(rechargeUser.getMarkets());
  55. if (markets.contains("9") || markets.contains("9999")){
  56. markets=null;
  57. }
  58. rechargeUser.setMarkets(markets);
  59. PageHelper.startPage(pageNum, pageSize);
  60. List<RechargeUser> rechargeUsers = rechargeMapper.selectBy(rechargeUser);
  61. return new PageInfo<>(rechargeUsers);
  62. }
  63. //统计金币记录
  64. @Override
  65. public Gold statsGold(RechargeUser rechargeUser) {
  66. List<String> markets = marketMapper.getMarketIds(rechargeUser.getMarkets());
  67. if (markets.contains("9") || markets.contains("9999")){
  68. markets=null;
  69. }
  70. rechargeUser.setMarkets(markets);
  71. Gold gold = rechargeMapper.sumGold(rechargeUser);
  72. return gold;
  73. }
  74. //添加充值记录
  75. @Override
  76. public Result add(RechargeUser rechargeUser) {
  77. if(rechargeUser.getFreeGold()==null||rechargeUser.getPermanentGold()==null||rechargeUser.getMoney()==null){
  78. return Result.error("金币和金额不能为空");
  79. }
  80. if(rechargeUser.getFreeGold().compareTo(BigDecimal.ZERO)<0||rechargeUser.getPermanentGold().compareTo(BigDecimal.ZERO)<0||rechargeUser.getMoney().compareTo(BigDecimal.ZERO)<0){
  81. return Result.error("充值不能为0");
  82. }
  83. if(rechargeUser.getJwcode()<10000000||rechargeUser.getJwcode()>99999999)
  84. {
  85. return Result.error("精网号位数小于8位或大于8位");
  86. }
  87. // 验证免费金币和永久金币是否均为0
  88. if (rechargeUser.getFreeGold().compareTo(BigDecimal.ZERO) == 0 && rechargeUser.getPermanentGold().compareTo(BigDecimal.ZERO) == 0) {
  89. return Result.error("免费金币和永久金币不能同时为0");
  90. }
  91. GoldUser goldUser = userMapper.selectUser(rechargeUser.getJwcode().toString());
  92. if(goldUser==null){
  93. return Result.error("用户不存在");
  94. }
  95. UserGoldRecord userGoldRecord = new UserGoldRecord();
  96. String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
  97. //订单号生成
  98. userGoldRecord.setOrderCode("CZ_" + orderNumber);
  99. userGoldRecord.setJwcode(rechargeUser.getJwcode());
  100. userGoldRecord.setActivity(rechargeUser.getActivity());
  101. userGoldRecord.setPermanentGold(rechargeUser.getPermanentGold().intValue());
  102. // 获取当前月份(1-12)
  103. int currentMonth = LocalDate.now().getMonthValue();
  104. // 根据当前月份设置对应字段
  105. if (currentMonth >= 1 && currentMonth <= 6) {
  106. // 1-6月:设置6月额度,12月保持默认值
  107. userGoldRecord.setFreeJune(0);
  108. userGoldRecord.setFreeDecember(rechargeUser.getFreeGold().intValue());
  109. } else {
  110. // 7-12月:设置12月额度,6月保持默认值
  111. userGoldRecord.setFreeJune(rechargeUser.getFreeGold().intValue());
  112. userGoldRecord.setFreeDecember(0);
  113. }
  114. //数据输入
  115. userGoldRecord.setSumGold(rechargeUser.getFreeGold().intValue()+rechargeUser.getPermanentGold().intValue());
  116. userGoldRecord.setRateId(rechargeUser.getRateId());
  117. userGoldRecord.setMoney(rechargeUser.getMoney().intValue());
  118. userGoldRecord.setVoucher(rechargeUser.getVoucher());
  119. userGoldRecord.setPayPlatform("金币系统");
  120. userGoldRecord.setPayModel(rechargeUser.getPayModel());
  121. userGoldRecord.setPayTime(rechargeUser.getPayTime());
  122. userGoldRecord.setRemark(rechargeUser.getRemark());
  123. userGoldRecord.setAdminId(rechargeUser.getAdminId());
  124. userGoldRecord.setType((byte) 0);
  125. userGoldRecord.setAuditStatus(0);
  126. userGoldRecord.setCreateTime(new Date());
  127. rechargeMapper.add(userGoldRecord);
  128. return Result.success();
  129. }
  130. }