zoujiajian 2 lat temu
rodzic
commit
24ce8d972e

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/mapper/MidjourneyUserConversationMapper.java

@@ -2,10 +2,16 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.MidjourneyUserConversation;
+import com.cyksj.model.views.MidjourneyUserDetailView;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * @author zwhui
  * @date 2024/4/23 16:03
  */
 public interface MidjourneyUserConversationMapper extends BaseMapper<MidjourneyUserConversation> {
+
+
+	@Select("select count(IF(muc.mode = 1,1,NULL)) as useFastNum, count(if(muc.mode = 2,1,NULL)) as useRelaxNum from (select id from midjourney_user where relation_id = #{relationId} limit 1) mu inner join midjourney_user_conversation muc on muc.user_id = mu.id where muc.status in ('SUCCESS','IN_PROGRESS')")
+	MidjourneyUserDetailView getMjMirrorOrderDetail(Long relationId);
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderRefundReq.java

@@ -48,4 +48,9 @@ public class OrderRefundReq {
 	 * 聊天记录截图
 	 */
 	private String chatImg;
+
+	/**
+	 * 扣除的余额
+	 */
+	private BigDecimal deductBalance;
 }

+ 18 - 0
netflix-dao/src/main/java/com/cyksj/model/views/MidjourneyUserDetailView.java

@@ -0,0 +1,18 @@
+package com.cyksj.model.views;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: MidjourneyUserDetailView
+ * 创建者: JavaZou
+ * 创建时间:2024/6/25 15:26
+ */
+@Getter
+@Setter
+public class MidjourneyUserDetailView {
+	private Integer useFastNum;
+
+	private Integer useRelaxNum;
+}

+ 8 - 3
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -361,7 +361,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
         String outNo = orderRefundService.centerRefund(refundReq, orderDon);
         orderDon.setRefundDesc(refundReq.getRefundDesc());
         //记录退款信息
-        commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg());
+        commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg(), refundReq.getDeductBalance());
         //修改订单状态
         orderDon.setStatus(OrderDon.Status.refund);
         orderDonMapper.updateById(orderDon);
@@ -911,7 +911,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
     /**
      * 退款后 处理关联
      */
-    public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg) {
+    public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg, BigDecimal deductBalance) {
         TASK_POOL.execute(() -> {
             orderRefundService.refundRecord(orderDon, refundMoney, operator, goodsDon, sku, outNo, refundType, chatImg);
             //退款一次
@@ -935,7 +935,12 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
 
             //若存在余额支付,退还余额
             if (isOnly == null && orderDon.getBalance().compareTo(BigDecimal.ZERO) > 0) {
-                userBenefitsService.addUserBalance(orderDon.getUserId(), orderDon.getBalance(), UserBalanceSourceRecord.Source.refund, orderDon.getYhsId(), orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.refund.getDesc(), true);
+                BigDecimal addBalance = orderDon.getBalance();
+                //需额外扣除余额
+                if (deductBalance != null && deductBalance.compareTo(BigDecimal.ZERO) > 0) {
+                    addBalance = addBalance.subtract(orderDon.getBalance());
+                }
+                userBenefitsService.addUserBalance(orderDon.getUserId(), addBalance, UserBalanceSourceRecord.Source.refund, orderDon.getYhsId(), orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.refund.getDesc(), true);
             }
 
             try {

+ 4 - 6
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -106,7 +106,7 @@ public class CmsOrderController {
 
 	private final OrderDonCustomerServiceRelateMapper orderDonCustomerServiceRelateMapper;
 
-	private final MidjourneyUserMapper midjourneyUserMapper;
+	private final MidjourneyUserConversationMapper midjourneyUserConversationMapper;
 
 
 	@GetMapping("/get")
@@ -248,11 +248,9 @@ public class CmsOrderController {
 	 * 镜像规格使用详情
 	 */
 	@GetMapping("/get/order/mj/mirror/detail/{relationId}")
-	public Result<MidjourneyUser> getMjMirrorOrderDetail(@PathVariable Long relationId) {
-		MidjourneyUser midjourneyUser = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class)
-				.eq(MidjourneyUser::getRelationId, relationId)
-				.last("limit 1"));
-		return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyUser);
+	public Result<MidjourneyUserDetailView> getMjMirrorOrderDetail(@PathVariable Long relationId) {
+		MidjourneyUserDetailView midjourneyUserDetailView = midjourneyUserConversationMapper.getMjMirrorOrderDetail(relationId);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyUserDetailView);
 	}
 
 	/**