diff --git a/src/main/java/com/example/demo/Util/GoldTistV2.java b/src/main/java/com/example/demo/Util/GoldTistV2.java index 970c804..1b40032 100644 --- a/src/main/java/com/example/demo/Util/GoldTistV2.java +++ b/src/main/java/com/example/demo/Util/GoldTistV2.java @@ -219,7 +219,7 @@ public class GoldTistV2 { public static void main(String[] args) throws Exception { //调用demo - addCoinNew("94226013",65,-2,"测试",-1,"黄其振","文章11"); + addCoinNew("90007417",64,4169,"4166.68补齐年初的1万任何产品可以免单的配套加金币4169金币",4169,"黄其振","补金币"); } diff --git a/src/main/java/com/example/demo/controller/coin/AuditController.java b/src/main/java/com/example/demo/controller/coin/AuditController.java index a923d73..1b7628a 100644 --- a/src/main/java/com/example/demo/controller/coin/AuditController.java +++ b/src/main/java/com/example/demo/controller/coin/AuditController.java @@ -51,7 +51,7 @@ public class AuditController { @PostMapping("audit") public ResponseEntity auditOrder( @RequestBody AuditRequest request) { - boolean result = auditService.auditOrder(request.getToken(), request.getOrderCode(), request.getAuditId(), request.getAction(), request.getRejectReason()); + boolean result = auditService.auditOrder(request.getToken(), request.getOrderCode(), request.getAuditId(), request.getAction(), request.getRejectReason(),request.getPrice(),request.getLinkId()); return ResponseEntity.ok(result); } diff --git a/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java b/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java index 8c4aaaa..4d24119 100644 --- a/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java +++ b/src/main/java/com/example/demo/domain/entity/UserGoldRecord.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @@ -51,4 +52,5 @@ public class UserGoldRecord implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date auditTime; // 审核时间 + private BigDecimal price; } \ No newline at end of file diff --git a/src/main/java/com/example/demo/domain/vo/coin/AuditRequest.java b/src/main/java/com/example/demo/domain/vo/coin/AuditRequest.java index 35a4fa6..1db63eb 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/AuditRequest.java +++ b/src/main/java/com/example/demo/domain/vo/coin/AuditRequest.java @@ -4,6 +4,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; + @Data @NoArgsConstructor @AllArgsConstructor @@ -15,5 +17,7 @@ public class AuditRequest { private String rejectReason; //驳回理由 private String sortField; //排序字段 private String sortOrder; //排序顺序 + private BigDecimal price; //原价 + private String linkId;//标识 } \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/Temporary/RedService.java b/src/main/java/com/example/demo/service/Temporary/RedService.java index a5e178a..8925b87 100644 --- a/src/main/java/com/example/demo/service/Temporary/RedService.java +++ b/src/main/java/com/example/demo/service/Temporary/RedService.java @@ -25,5 +25,8 @@ public interface RedService { List selectRedList(Integer jwcode); - + //判断红包是否退票情况 + String checkRed(String linkId) throws Exception; + //修改订单状态 + void updateOrderStatus(String linkId) throws Exception; } diff --git a/src/main/java/com/example/demo/service/coin/AuditService.java b/src/main/java/com/example/demo/service/coin/AuditService.java index 0ccd564..19a0b88 100644 --- a/src/main/java/com/example/demo/service/coin/AuditService.java +++ b/src/main/java/com/example/demo/service/coin/AuditService.java @@ -5,6 +5,8 @@ import com.example.demo.domain.vo.coin.RechargeAudit; import com.example.demo.domain.vo.coin.RefundAudit; import com.github.pagehelper.PageInfo; +import java.math.BigDecimal; + /** * @program: gold-java * @ClassName AuditService @@ -17,7 +19,7 @@ import com.github.pagehelper.PageInfo; public interface AuditService { //审核订单并修改用户余额等 - boolean auditOrder(String token, String orderCode, Integer auditId,Integer action,String rejectReason); + boolean auditOrder(String token, String orderCode, Integer auditId, Integer action, String rejectReason, BigDecimal price, String linkId); //多条件查询充值审核订单 PageInfo selectRechargeBy(Integer pageNum, Integer pageSize, RechargeAudit rechargeAudit); //多条件查询退款审核订单 diff --git a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java index 9b7f7be..8cd4b89 100644 --- a/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java @@ -219,6 +219,39 @@ public class RedServiceImpl implements RedService { } @Override + public String checkRed(String linkId)throws Exception { + try { + + int a=0; + int b=0; + if (a==200){ + if(b==1){ + throw new BusinessException("红包抵扣不足以退款,请联系客户后再次尝试"); + } + } + if(a==400) { + throw new BusinessException("系统繁忙"); +// log.warn("红包服务返回400状态码: {},响应: {}", resp.statusCode(), resp.body()); + } + }catch(Exception e){ + throw new BusinessException("系统异常"); + } + + return "{\"success\":true,\"msg\":\"成功\"}"; + } + + @Override + public void updateOrderStatus(String linkId) throws Exception { + try { + String body = JSON.toJSONString(java.util.Map.of("linkId", linkId)); + } + catch (Exception e) { + log.error("修改状态失败", e); + throw new Exception("系统异常"); + } + } + + @Override public BigDecimal selectRedSum(Integer jwcode) { try { String body = JSON.toJSONString(java.util.Map.of("jwcode", jwcode)); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java index d54eed7..d6bc65b 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/AuditServiceImpl.java @@ -55,9 +55,9 @@ public class AuditServiceImpl implements AuditService { /* 审核订单并修改用户余额等 */ - @Transactional + @Transactional(rollbackFor = Exception.class) @Override - public boolean auditOrder(String token, String orderCode, Integer auditId, Integer action,String rejectReason) { + public boolean auditOrder(String token, String orderCode, Integer auditId, Integer action,String rejectReason,BigDecimal price,String linkId) { UserGoldRecord order=auditMapper.selectOrderByOrderCode(orderCode); Date date =new Date(); if (order == null || order.getAuditStatus() != 0) { @@ -88,8 +88,15 @@ public class AuditServiceImpl implements AuditService { auditMapper.updateOrder(updateOrder); }else if (action==1) { //通过 - - //判断是充值还是退款 + try { + redService.checkRed(linkId); + } catch (Exception e) { + log.error("红包退票失败"); + updateOrder.setAuditStatus(4); + auditMapper.updateOrder(updateOrder); + throw new RuntimeException(e); + } + //判断是充值还是退款 if (order.getType()==0){ //充值 //更新用户余额 User update = new User(); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java index 0ed11aa..944af60 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java @@ -159,6 +159,7 @@ public class ConsumeServiceImpl implements ConsumeService { userGoldRecord.setAdminId(consumeUser.getAdminId()); userGoldRecord.setAuditStatus(1); userGoldRecord.setCreateTime(new Date()); + userGoldRecord.setPrice( consumeUser.getPrice()); userGoldRecord.setPayTime(new Date()); if (consumeUser.getPermanentGold().compareTo(BigDecimal.ZERO)!=0||consumeUser.getFreeGold().compareTo(BigDecimal.ZERO)!=0||consumeUser.getTaskGold().compareTo(BigDecimal.ZERO)!=0){ // if(consumeUser.getJwcode().equals(94226013)){ @@ -203,9 +204,9 @@ public class ConsumeServiceImpl implements ConsumeService { }catch (Exception e){ log.warn("消耗累加失败,主流程继续 | jwcode={}", consumeUser.getJwcode(), e); } - if(consumeUser.getRedMoney()==1){ +// if(consumeUser.getRedMoney()==1){ redService.sendConsumeJwcode(consumeUser.getJwcode(),consumeUser.getRedIds()); - } +// } return Result.success(); } // diff --git a/src/main/resources/mapper/ConsumeMapper.xml b/src/main/resources/mapper/ConsumeMapper.xml index f8bd035..2e16319 100644 --- a/src/main/resources/mapper/ConsumeMapper.xml +++ b/src/main/resources/mapper/ConsumeMapper.xml @@ -231,7 +231,8 @@ admin_id, audit_status, create_time, - pay_time + pay_time, + price VALUES @@ -250,7 +251,8 @@ #{adminId}, #{auditStatus}, #{createTime}, - #{payTime} + #{payTime}, + #{price}