Browse Source

机构收入

liujc 1 year ago
parent
commit
8c0c49180c

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/excel/UserOrderExport.java

@@ -38,6 +38,17 @@ public class UserOrderExport {
     private OrderStatusEnum status;
     @ExcelProperty(value = "备注", index = 11)
     private String userNote;
+    @ExcelProperty(value = "机构名称", index = 11)
+    private String tenantName;
+
+
+    public String getTenantName() {
+        return tenantName;
+    }
+
+    public void setTenantName(String tenantName) {
+        this.tenantName = tenantName;
+    }
 
     public String getTransNo() {
         return transNo;

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java

@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 平台订单表 服务类
@@ -231,4 +232,6 @@ public interface UserOrderService extends IService<UserOrder> {
     PaymentDivMemberRecordWrapper.OrderDetailDto getExpendOrderDetail(String orderNo);
 
     void testOrderSuccess(String orderNo);
+
+    Map<String,UserOrder> getMapByOrderNos(List<String> orderNoList);
 }

+ 12 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -305,14 +305,19 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         //修改群成员数
         baseMapper.updateMemberNum(groupId);
 
-        GroupModel groupModel = new GroupModel(groupId,0);
-        GroupMember[] groupMembers = new GroupMember[]{new GroupMember(imUserId,groupId,null)};
-        groupModel.setMembers(groupMembers);
-        Result result = RongCloudConfig.rongCloud.group.quit(groupModel);
-        if(!result.code.equals(200)){
-            log.error("退出群聊失败:{}",result.errorMessage);
-            throw new BizException("退出群聊失败,请联系管理员");
+        try {
+            GroupModel groupModel = new GroupModel(groupId,0);
+            GroupMember[] groupMembers = new GroupMember[]{new GroupMember(imUserId,groupId,null)};
+            groupModel.setMembers(groupMembers);
+            Result result = RongCloudConfig.rongCloud.group.quit(groupModel);
+            if(!result.code.equals(200)){
+                log.error("退出群聊失败:{}",result.errorMessage);
+                throw new BizException("退出群聊失败,请联系管理员");
+            }
+        } catch (Exception e) {
+            log.error("退出群聊失败",e);
         }
+
     }
 
     @Override

+ 15 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java

@@ -917,16 +917,20 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
     }
 
     private void platformDivRecord(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap) {
-        // 写入平台收支表
-        PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(userPaymentOrder.getUserId(), tenantdivMap.get(-1L),
+        // 写入平台收入表
+        Date date = new Date();
+        BigDecimal amount = tenantdivMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        PlatformCashAccountRecord platformCashAccountRecord = new PlatformCashAccountRecord(userPaymentOrder.getUserId(), amount,
                 InOrOutEnum.IN, PostStatusEnum.RECORDED, AccountBizTypeEnum.valueOf(userPaymentOrder.getOrderType().name()), userPaymentOrder.getBizId(),
-                userPaymentOrder.getOrderNo(), new Date());
+                userPaymentOrder.getOrderNo(), date);
         platformCashAccountRecordService.save(platformCashAccountRecord);
     }
 
     private void tenantDivRecord(UserOrderDetailVo userPaymentOrder, Map<Long, BigDecimal> tenantdivMap) {
         // 写入收支表
         List<TenantAccountRecord> tenantAccountRecordList = new ArrayList<>();
+        Date date = new Date();
         tenantdivMap.forEach((tenantId, amount) -> {
             if (tenantId.equals(-1L)) {
                 return;
@@ -942,13 +946,20 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
                     .tenantId(tenantId)
                     .transAmount(amount)
                     .inOrOut(InOrOutEnum.IN.getCode())
-                    .postStatus(PostStatusEnum.RECORDED.getCode())
+                    .postStatus(PostStatusEnum.WAIT.getCode())
                     .bizType(bizTypeEnum.getCode())
                     .bizId(userPaymentOrder.getBizId())
                     .bizName(userPaymentOrder.getGoodName())
                     .orderNo(userPaymentOrder.getOrderNo())
                     .build();
             tenantAccountRecordList.add(tenantAccountRecord);
+
+
+            // 写入平台支出表
+            PlatformCashAccountRecord platformCashAccountRecord2 = new PlatformCashAccountRecord(userPaymentOrder.getUserId(), amount,
+                    InOrOutEnum.OUT, PostStatusEnum.WAIT, AccountBizTypeEnum.valueOf(userPaymentOrder.getOrderType().name()), userPaymentOrder.getBizId(),
+                    userPaymentOrder.getOrderNo(), date);
+            platformCashAccountRecordService.save(platformCashAccountRecord2);
         });
         tenantAccountRecordService.saveBatch(tenantAccountRecordList);
     }

+ 43 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumPurchaseServiceImpl.java

@@ -3,6 +3,11 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.entity.UserOrder;
+import com.yonge.cooleshow.biz.dal.enums.OrderStatusEnum;
+import com.yonge.cooleshow.biz.dal.service.UserOrderService;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -12,6 +17,7 @@ import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumPurchaseMapper;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumPurchaseService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 机构专辑采购
@@ -21,6 +27,9 @@ import java.util.List;
 @Service
 public class TenantAlbumPurchaseServiceImpl extends ServiceImpl<TenantAlbumPurchaseMapper, TenantAlbumPurchase> implements TenantAlbumPurchaseService {
 
+    @Autowired
+    private UserOrderService userOrderService;
+
     /**
      * 查询详情
      *
@@ -45,9 +54,43 @@ public class TenantAlbumPurchaseServiceImpl extends ServiceImpl<TenantAlbumPurch
                                                                             TenantAlbumPurchaseWrapper.TenantAlbumPurchaseQuery query) {
 
         List<TenantAlbumPurchaseWrapper.TenantAlbumPurchase> selectPage = baseMapper.selectPage(page, query);
+
+        if (CollectionUtils.isEmpty(selectPage)) {
+            return page.setRecords(selectPage);
+        }
+
+        // 订单号集合
+        List<String> orderNoList = selectPage.stream().map(TenantAlbumPurchaseWrapper.TenantAlbumPurchase::getOrderNo).collect(java.util.stream.Collectors.toList());
+
+        Map<String, UserOrder> mapByOrderNos = userOrderService.getMapByOrderNos(orderNoList);
+
+        // 设置状态
+        selectPage.forEach(tenantAlbumPurchase -> {
+            UserOrder userOrder = mapByOrderNos.get(tenantAlbumPurchase.getOrderNo());
+            if (userOrder != null) {
+                tenantAlbumPurchase.setPurchaseStatus(getPurchaseStatus(userOrder.getStatus()));
+            } else {
+                tenantAlbumPurchase.setPurchaseStatus(OrderStatusEnum.CLOSE.getCode());
+            }
+        });
+
         return page.setRecords(selectPage);
     }
 
+    private String getPurchaseStatus(OrderStatusEnum status) {
+        switch (status) {
+            case WAIT_PAY:
+            case PAYING:
+                return OrderStatusEnum.WAIT_PAY.getCode();
+            case PAID:
+                return OrderStatusEnum.PAID.getCode();
+            case CLOSE:
+            case FAIL:
+                return OrderStatusEnum.CLOSE.getCode();
+        }
+        return OrderStatusEnum.CLOSE.getCode();
+    }
+
     /**
      * 添加
      *

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java

@@ -415,6 +415,7 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
             return;
         }
         tenantAlbumPurchase.setPurchaseStatus(OrderStatusEnum.CLOSE.getCode());
+        tenantAlbumPurchase.setUpdateTime(new Date());
         tenantAlbumPurchaseService.updateById(tenantAlbumPurchase);
     }
 

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -1415,4 +1415,16 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         orderSuccess(detail, null);
     }
 
+    @Override
+    public Map<String, UserOrder> getMapByOrderNos(List<String> orderNoList) {
+        if (CollectionUtils.isEmpty(orderNoList)) {
+            return new HashMap<>();
+        }
+        List<UserOrder> list = this.lambdaQuery().in(UserOrder::getOrderNo, orderNoList).list();
+        if (CollectionUtils.isEmpty(list)) {
+            return new HashMap<>();
+        }
+        return list.stream().collect(Collectors.toMap(UserOrder::getOrderNo, Function.identity()));
+    }
+
 }

+ 13 - 10
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -231,20 +231,23 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 // 支付成功
                 if (PaymentStatus.SUCCESSED == paymentResp.getPaymentStatus()) {
 
-                    UserPaymentOrderWrapper.UserPaymentOrder order = UserPaymentOrderWrapper.UserPaymentOrder
-                        .builder()
-                        .transNo(paymentResp.getTransNo())
-                        .id(paymentOrder.getId())
-                        .status(PAID)
-                        .updateTime(DateTime.now().toDate())
-                        .build();
-                    userPaymentOrderService.updateById(order);
+
+                    // 根据支付回调消息,更新订单状态
+                    executePaymentSuccess(UserPaymentOrderWrapper.UserPaymentOrder.from(JSON.toJSONString(paymentOrder)), paymentResp);
+
+//                    UserPaymentOrderWrapper.UserPaymentOrder order = UserPaymentOrderWrapper.UserPaymentOrder
+//                        .builder()
+//                        .transNo(paymentResp.getTransNo())
+//                        .id(paymentOrder.getId())
+//                        .status(PAID)
+//                        .updateTime(DateTime.now().toDate())
+//                        .build();
+//                    userPaymentOrderService.updateById(order);
 
                     log.error("executePaymentCallback 关单异常,更新订单状态为已支付, error={}, status={}, paymentResp={}", paymentOrder.getErrorMsg(),
                         paymentOrder.getStatus(), JSON.toJSONString(paymentResp));
                 }
-            }
-
+            } else
             // 订单状态为待支付、支付中时,更新订单状态;
             if (EPaymentStatus.WAIT_PAY == paymentOrder.getStatus() || EPaymentStatus.PAYING == paymentOrder.getStatus()) {
 

+ 9 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java

@@ -10,9 +10,11 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
+import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.TenantStaff;
 import com.yonge.cooleshow.biz.dal.entity.UserOrder;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.service.UserPaymentCoreService;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
@@ -74,6 +76,9 @@ public class UserOrderController extends BaseController {
     @Autowired
     private UserPaymentCoreService userPaymentCoreService;
 
+    @Autowired
+    private StudentService studentService;
+
     @ApiOperation(value = "下单接口")
     @PostMapping("/executeOrder")
     public HttpResponseResult<UserOrder> executeOrder(@Valid @RequestBody OrderReq orderReq) {
@@ -286,10 +291,14 @@ public class UserOrderController extends BaseController {
         orderReq.setUserId(sysUser.getId());
         orderReq.setPaymentClient(ClientEnum.STUDENT.name());
 
+        // 如果是机构的学生
+        Student student = studentService.getById(sysUser.getId());
 
         // 用户下单请求
         UserPaymentOrderWrapper.UserPaymentOrder order = JSON.parseObject(orderReq.jsonString(), UserPaymentOrderWrapper.UserPaymentOrder.class);
 
+        order.setTenantId(student.getTenantId());
+
         // 新增数据
         UserPaymentOrderWrapper.PaymentConfig paymentConfig = userPaymentCoreService.executeOrderCreate(order);
         if (Objects.isNull(paymentConfig)) {