Browse Source

12-10 收款赠送免费金币

milestone-20251203-冲刺计划
lijianlin 1 month ago
parent
commit
9f80eb6c0a
  1. 9
      src/main/java/com/example/demo/controller/cash/CashCollectionController.java
  2. 3
      src/main/java/com/example/demo/service/cash/CashCollectionService.java
  3. 62
      src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java
  4. 53
      src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
  5. 2
      src/main/resources/mapper/WorkBenchMapper.xml

9
src/main/java/com/example/demo/controller/cash/CashCollectionController.java

@ -66,6 +66,15 @@ public class CashCollectionController {
return Result.error(e.getMessage());
}
}
//新增赠送免费金币
@PostMapping("/addFreeCoin")
public Result addFreeCoin(@RequestBody CashCollection cashCollection) {
try {
return Result.success(cashCollectionService.addFreeCoin(cashCollection));
} catch (Exception e) {
return Result.error(e.getMessage());
}
}
//撤回未审核的收款订单
@PostMapping("/cancel")
public Result cancel(@RequestBody CashCollection cashRecord) {

3
src/main/java/com/example/demo/service/cash/CashCollectionService.java

@ -22,6 +22,8 @@ import java.util.List;
public interface CashCollectionService {
//新增收款订单
String add(CashCollection cashCollection);
//赠送免费金币
String addFreeCoin(CashCollection cashCollection);
//撤回未审核的收款订单
String cancel(String orderCode);
//编辑并重新提交收款订单
@ -42,4 +44,5 @@ public interface CashCollectionService {
CashCollection selectByGoldCoinOrderCode(String orderNo);
//同步事务方法
void processBatch(List<GOrder> gOrders);
}

62
src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java

@ -78,13 +78,13 @@ public class CashAuditServiceImpl implements CashAuditService {
int currentMonth = LocalDate.now().getMonthValue();
// 根据当前月份设置对应字段
if (currentMonth >= 1 && currentMonth <= 6) {
// 1-6月设置12月额度6月保持默认值
rechargeOrder.setFreeJune(0);
rechargeOrder.setFreeDecember(order.getFreeGold());
} else {
// 7-12月设置6月额度12月保持默认值
// 1-6月设置6月额度12月保持默认值
rechargeOrder.setFreeJune(order.getFreeGold());
rechargeOrder.setFreeDecember(0);
} else {
// 7-12月设置12月额度6月保持默认值
rechargeOrder.setFreeJune(0);
rechargeOrder.setFreeDecember(order.getFreeGold());
}
rechargeOrder.setSumGold(order.getPermanentGold() + order.getFreeGold());
rechargeOrder.setRateId(Integer.valueOf(order.getPaymentCurrency()));
@ -129,6 +129,58 @@ public class CashAuditServiceImpl implements CashAuditService {
user.setRechargeNum(1); //充值次数加一
auditMapper.updateUserGold(user);
}
if (order.getGoodsName().equals("免费金币赠送")) {
//往金币订单表加一条充值记录
UserGoldRecord rechargeOrder = new UserGoldRecord();
rechargeOrder.setOrderCode(orderCode.replaceFirst("^XJ_", "XJCZ_"));
rechargeOrder.setJwcode(order.getJwcode());
rechargeOrder.setActivity(order.getActivity());
rechargeOrder.setPermanentGold(0);
// 获取当前月份1-12
int currentMonth = LocalDate.now().getMonthValue();
// 根据当前月份设置对应字段
if (currentMonth >= 1 && currentMonth <= 6) {
// 1-6月设置6月额度12月保持默认值
rechargeOrder.setFreeJune(order.getFreeGold());
rechargeOrder.setFreeDecember(0);
} else {
// 7-12月设置12月额度6月保持默认值
rechargeOrder.setFreeJune(0);
rechargeOrder.setFreeDecember(order.getFreeGold());
}
rechargeOrder.setSumGold(order.getFreeGold());
rechargeOrder.setRemark(order.getRemark());
rechargeOrder.setPayPlatform("金币系统");
rechargeOrder.setAdminId(order.getSubmitterId());
rechargeOrder.setAuditId(auditId);
rechargeOrder.setType((byte) 0);
rechargeOrder.setAuditStatus(1);
rechargeOrder.setCreateTime(new Date());
rechargeMapper.add(rechargeOrder);
//往ERP加一条充值数据
GoldTistV2.addCoinNew(order.getJwcode().toString(), 63, //充值免费
(double) (order.getFreeGold()) / 100,
order.getRemark(), 0, auditName, "金币充值");
//修改用户余额添加金币
User user = new User();
user.setJwcode(order.getJwcode());
user.setSumConsumePermanent(BigDecimal.valueOf(0));
// 根据当前月份设置对应字段
if (currentMonth >= 1 && currentMonth <= 6) {
// 1-6月设置6月额度12月保持默认值
user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold()));
user.setSumFreeJune(BigDecimal.valueOf(order.getFreeGold()));
user.setCurrentFreeDecember(BigDecimal.valueOf(0));
} else {
// 7-12月设置12月额度6月保持默认值
user.setSumFreeJune(BigDecimal.valueOf(0));
user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold()));
user.setSumFreeDecember(BigDecimal.valueOf(order.getFreeGold()));
}
user.setCurrentPermanentGold(BigDecimal.valueOf(0));
user.setRechargeNum(1); //充值次数加一
auditMapper.updateUserGold(user);
}
} else if (action == 2) { //驳回
updateOrder.setStatus(2);
updateOrder.setRejectReason(rejectReason);

53
src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java

@ -69,7 +69,7 @@ public class CashCollectionServiceImpl implements CashCollectionService {
throw new IllegalArgumentException("活动不能为空");
}
if (cashCollection.getGoodsName() == null|| cashCollection.getGoodsName().isEmpty()) {
throw new IllegalArgumentException("商品名不能为空");
throw new IllegalArgumentException("产品名称不能为空");
}
if (cashCollection.getGoodsName().equals("金币充值")) {
if (cashCollection.getPermanentGold() == 0 && cashCollection.getFreeGold() == 0) {
@ -142,6 +142,57 @@ public class CashCollectionServiceImpl implements CashCollectionService {
return "添加成功";
}
@Override
public String addFreeCoin(CashCollection cashCollection) {
if (cashCollection.getJwcode() == null) {
throw new IllegalArgumentException("精网号不能为空");
}
if (cashCollection.getJwcode() < 10000000 || cashCollection.getJwcode() > 99999999) {
throw new IllegalArgumentException("精网号必须为8位");
}
if (cashCollection.getName() == null || cashCollection.getName().isEmpty()){
throw new IllegalArgumentException("客户姓名不能为空");
}
if (cashCollection.getActivity() == null || cashCollection.getActivity().isEmpty()) {
throw new IllegalArgumentException("活动不能为空");
}
if (cashCollection.getFreeGold() == 0) {
throw new IllegalArgumentException("免费金币数量不能为空");
}
//生成订单号后半部分
String orderNumber = UUID.randomUUID().toString().replaceAll("-", "");
CashRecord cashRecord = new CashRecord();
//构建订单信息
cashRecord.setOrderCode("XJ_" + orderNumber); //订单号
cashRecord.setJwcode(cashCollection.getJwcode()); //精网号
cashRecord.setName(cashCollection.getName()); //客户姓名
cashRecord.setActivity(cashCollection.getActivity()); // 活动
cashRecord.setGoodsName("免费金币赠送"); //商品名称
cashRecord.setFreeGold(cashCollection.getFreeGold()); //免费金币
cashRecord.setRemark(cashCollection.getRemark()); //备注
cashRecord.setStatus(0); //订单状态付款线下财务待审核
cashRecord.setSubmitterId(cashCollection.getSubmitterId()); //提交人ID
cashRecord.setSubmitterMarket(cashCollection.getSubmitterMarket());
cashRecord.setOrderType(1); //订单类型1-收款
cashRecord.setMarket(cashCollection.getMarket());
//地区根据jwcode插入
//cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode()));
//插入新收款订单
cashCollectionMapper.add(cashRecord);
// 发送收款创建消息
Messages message = new Messages();
message.setJwcode(cashRecord.getJwcode());
message.setName(cashRecord.getName());
message.setStatus(cashRecord.getStatus());
message.setDesc(cashRecord.getJwcode()+"用户的现金收款申请待审核,请前往审核");
message.setTitle("现金收款--赠送免费金币");
message.setType(1);
message.setTypeId(cashRecord.getId());
message.setMarket(Integer.valueOf(cashRecord.getMarket()));
rabbitTemplate.convertAndSend(RabbitMQConfig.CASH_COLLECTION_EXCHANGE, "cash.collection.save", message);
return "添加成功";
}
//撤回未审核的订单
@Override
public String cancel(String orderCode) {

2
src/main/resources/mapper/WorkBenchMapper.xml

@ -187,7 +187,7 @@
<foreach item="market" collection="markets" open="(" separator="," close=")">#{market}</foreach>
AND cr.audit_time BETWEEN #{startDate} AND #{endDate}
AND cr.order_type=1
AND cr.status IN (1,3,4)
AND cr.status IN (0,1,3,4,6)
GROUP BY m.name;
</select>
</mapper>
Loading…
Cancel
Save