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.
|
|
package com.example.demo.serviceImpl.bean;
import com.example.demo.domain.vo.bean.*;import com.example.demo.domain.vo.coin.Gold;import com.example.demo.domain.vo.coin.GoldUser;import com.example.demo.domain.vo.coin.RechargeUser;import com.example.demo.domain.vo.coin.Result;import com.example.demo.mapper.bean.BeanRechargeMapper2;import com.example.demo.mapper.bean.BeanUserMapper;import com.example.demo.mapper.coin.BeanRechargeMapper1;import com.example.demo.mapper.coin.UserMapper;import com.example.demo.mapper.pay.BeanRechargeMapper3;import com.example.demo.service.bean.BeanRechargeService;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import lombok.RequiredArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Service;import org.springframework.web.client.RestTemplate;import org.springframework.web.util.UriComponentsBuilder;
import java.math.BigDecimal;import java.math.RoundingMode;import java.util.List;import java.util.Objects;import java.util.UUID;import java.util.stream.Collectors;
/** * @program: gold-java * @ClassName BeanRechargeServiceImpl * @description: * @author: Double * @create: 2025−07-29 16:47 * @Version 1.0 **/@Service@RequiredArgsConstructorpublic class BeanRechargeServiceImpl implements BeanRechargeService {
@Autowired private RestTemplate restTemplate;
@Autowired private BeanRechargeMapper2 beanRechargeMapper2;
@Autowired private BeanRechargeMapper1 beanRechargeMapper1;
@Autowired private BeanRechargeMapper3 beanRechargeMapper3;
@Autowired private UserMapper userMapper;
@Autowired private BeanUserMapper beanUserMapper;
//新增金豆
@Override public Result add(BeanRecharge recharge) { try { // 验证精网号是否有效
if (recharge.getJwcode() == null || recharge.getJwcode().toString().isEmpty()) { return Result.error("精网号不能为空"); } if(recharge.getJwcode()<10000000||recharge.getJwcode()>99999999) { return Result.error("精网号位数小于8位或大于8位"); } // 验证免费豆和永久豆是否为非负数
if (recharge.getFreeBean() < 0 || recharge.getPermanentBean() < 0) { return Result.error("免费豆和永久豆不能为负数"); } // 验证免费豆和永久豆是否为非负数
if (recharge.getFreeBean() > 999999 || recharge.getPermanentBean() > 999999) { return Result.error("免费豆和永久豆不能超过999999"); } // 验证免费豆和永久豆是否均为0
if (recharge.getFreeBean() == 0 && recharge.getPermanentBean() == 0) { return Result.error("免费豆和永久豆不能同时为0"); } BeanUserCard user = beanUserMapper.userCard(String.valueOf(recharge.getJwcode())); if(user==null){ return Result.error("用户查找不到"); } // 验证备注是否为空
if (recharge.getRemark() == null || recharge.getRemark().toString().isEmpty()) { return Result.error("备注不能为空"); } if(recharge.getAdminName() == null || recharge.getAdminName().toString().isEmpty()){ return Result.error("管理员名称不能为空"); }
beanRechargeMapper1.add(recharge);// String jwcode = recharge.getJwcode().toString();
// String op = "recharge"; // 操作类型(根据实际业务定义,例如"recharge"表示充值)
// String content = recharge.getRemark(); // 备注作为content参数
// String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线)
//
// // 2. 构建接口URL及参数
// String apiUrl = "http://47.92.148.30:3003/mock/61/hljw/api/user/gold";
// UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl)
// .queryParam("jwcode", jwcode)
// .queryParam("op", op)
// .queryParam("gold", recharge.getPermanentBean())
// .queryParam("content", content)
// .queryParam("order_no", orderNo);
//
// // 3. 发送GET请求
// ResponseEntity<String> response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class);
//
// // 4. 处理响应结果
// if (!response.getStatusCode().is2xxSuccessful()) {
// return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue());
// }
return Result.success("添加成功"); } catch (Exception e) { return Result.error("系统异常:" + e.getMessage()); } }
//系统充值明细
@Override public PageInfo<BeanSystemRechargeInfo> selectBySystem(Integer pageNum, Integer pageSize, BeanSystemRechargeInfo beanSystemRechargeInfo){ PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
List<BeanSystemRechargeInfo> beanSystemRechargeInfos = beanRechargeMapper2.selectBySystem(beanSystemRechargeInfo); return new PageInfo<>(beanSystemRechargeInfos); }
//统计系统金豆记录
@Override public GoldBean statsSystemBean(BeanSystemRechargeInfo beanSystemRechargeInfo) {
GoldBean gold = beanRechargeMapper2.selectSystemSum(beanSystemRechargeInfo); if(gold==null){ gold = new GoldBean(); } BigDecimal moneySum; if(gold.getPermanentBean()==null){ gold.setPermanentBean(0); } if(gold.getFreeBean()==null){ gold.setFreeBean(0); } if(gold.getNum()==null){ gold.setNum(0); } moneySum = new BigDecimal(gold.getPermanentBean()).divide(new BigDecimal("50"), 2, RoundingMode.HALF_UP); gold.setMoney(moneySum.doubleValue()); gold.setBeanNum(gold.getPermanentBean()+gold.getFreeBean()); return gold; }
@Override public List<String> systemMarket() { List<String> list = beanRechargeMapper2.systemMarket(); // 使用 Java 8 的 Stream API 过滤 null 和空字符串
List<String> filteredList = list.stream() .filter(Objects::nonNull) // 过滤掉 null 值
.filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
.collect(Collectors.toList()); return filteredList; }
//线上充值明细
@Override public PageInfo<BeanOnlineRechargeInfo> selectByOnline(Integer pageNum, Integer pageSize, BeanOnlineRechargeInfo beanOnlineRechargeInfo){ PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
List<BeanOnlineRechargeInfo> beanOnlineRechargeInfos = beanRechargeMapper3.selectByOnline(beanOnlineRechargeInfo); return new PageInfo<>(beanOnlineRechargeInfos); }
//统计线上金豆记录
@Override public GoldBean statsOnlineBean(BeanOnlineRechargeInfo beanOnlineRechargeInfo) { GoldBean gold = beanRechargeMapper3.selectOnlineSum(beanOnlineRechargeInfo); return gold; }
@Override public List<String> onlineMarket() { List<String> list = beanRechargeMapper3.onlineMarket(); // 使用 Java 8 的 Stream API 过滤 null 和空字符串
List<String> filteredList = list.stream() .filter(Objects::nonNull) // 过滤掉 null 值
.filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
.collect(Collectors.toList()); return filteredList; }
}
|