Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/feature/0721-tenant' into feature/0721-tenant

zouxuan 1 anno fa
parent
commit
c58f12c167
15 ha cambiato i file con 281 aggiunte e 26 eliminazioni
  1. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/excel/UserOrderExport.java
  2. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java
  3. 12 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  4. 15 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java
  5. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantActivationCodeServiceImpl.java
  6. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumMusicServiceImpl.java
  7. 43 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumPurchaseServiceImpl.java
  8. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  9. 22 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  10. 13 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java
  11. 52 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  12. 66 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAccountRecordWrapper.java
  13. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java
  14. 9 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  15. 9 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

+ 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);
     }

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

@@ -197,6 +197,7 @@ public class TenantActivationCodeServiceImpl extends ServiceImpl<TenantActivatio
                 .set(TenantActivationCode::getActivationUserId, student.getUserId())
                 .set(TenantActivationCode::getActivationTime, new Date())
                 .set(TenantActivationCode::getActivationPhone, sysUser.getPhone())
+                .set(TenantActivationCode::getSendStatus, EActivationCode.SEND)
                 .eq(TenantActivationCode::getId, code.getId())
                 .eq(TenantActivationCode::getActivationStatus, false)
                 .update();

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

@@ -110,7 +110,7 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
             }
 
             //获取声部名
-            if (!musicSubject.isEmpty()){
+            if (StringUtils.isNotEmpty(musicSubject)){
                 List<Subject> subject = subjectService.findBySubjectByIdList(musicSubject);
                 Subject subject1 = subject.get(0);
                 m.setMusicSubjectName(subject1.getName());

+ 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);
     }
 

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

@@ -149,6 +149,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     private UserOrderService userOrderService;
 
     @Autowired
+    private StudentService studentService;
+
+    @Autowired
     private TenantAlbumPurchaseService tenantAlbumPurchaseService;
 
     //验证订单是否可以下单,获取订单金额信息
@@ -268,7 +271,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
             // 设置recordId
             userOrderDetailVos.forEach(o -> {
-                if (o.getGoodType().equals(GoodTypeEnum.TENANT_ALBUM)) {
+                if (o.getGoodType().equals(GoodTypeEnum.TENANT_ALBUM) && userOrderVo.getOrderClient().equals(ClientEnum.TENANT)) {
                     TenantAlbumPurchase albumPurchase = tenantAlbumPurchaseService.getByOrderNo(userOrderVo.getOrderNo());
                     o.getBizInfo().setRecordId(albumPurchase.getId());
                 }
@@ -950,6 +953,12 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             throw new BizException("交易金额异常");
         }
 
+        // 机构学生 记录机构ID
+        if (userOrder.getOrderClient().equals(ClientEnum.STUDENT)) {
+            Student student = studentService.getById(userOrder.getUserId());
+            userOrder.setTenantId(student.getTenantId());
+        }
+
         int insert = baseMapper.insert(userOrder);
 
         if (insert == 0 || null == userOrder.getId()) {
@@ -1415,4 +1424,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()) {
 

+ 52 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java

@@ -1,17 +1,22 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.StudentDao;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
+import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumPurchaseMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
+import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
@@ -62,6 +67,15 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
     @Autowired
     private UserTenantAlbumRecordMapper userTenantAlbumRecordMapper;
 
+    @Autowired
+    private StudentDao studentDao;
+
+    @Autowired
+    private TenantAlbumPurchaseMapper tenantAlbumPurchaseMapper;
+
+    @Autowired
+    private UserTenantAlbumRecordService userTenantAlbumRecordService;
+
 	/**
      * 查询详情
      * @param id 详情ID
@@ -72,7 +86,11 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
         
         return baseMapper.selectById(id);
     }
-    
+
+    public StudentVo detailStudent(Long userId) {
+        return studentDao.detail(userId);
+    }
+
     /**
      * 分页查询
      * @param page IPage<UserTenantAlbumRecord>
@@ -221,6 +239,8 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
     @Override
     public TenantAlbumWrapper.TenantAlbum detailAlbum(String albumId) {
 
+        TenantAlbumWrapper.TenantAlbum album = new TenantAlbumWrapper.TenantAlbum();
+
         //如果没传专辑id  则查询对应机构的专辑详情
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -249,7 +269,37 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
             tenantAlbumId = Long.parseLong(albumId);
         }
 
-        TenantAlbumWrapper.TenantAlbum album = new TenantAlbumWrapper.TenantAlbum();
+        StudentVo detail = detailStudent(sysUser.getId());
+        // 判断是否是机构学生 机构学生 检测机构专辑购买记录
+        TenantInfo tenantInfo = tenantInfoService.detail(detail.getTenantId());
+        if (tenantInfo != null) {
+            album.setTenantName(tenantInfo.getName());
+            QueryWrapper<TenantAlbumPurchase> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(TenantAlbumPurchase::getTenantId, detail.getTenantId());
+            Integer count = tenantAlbumPurchaseMapper.selectCount(queryWrapper);
+            if (count > 0) {
+                album.setTenantAlbumStatus(1);
+            }
+            UserTenantAlbumRecord record =
+                    userTenantAlbumRecordService.getNewestByTenantIdAndUserId(tenantInfo.getId(), detail.getUserId(),
+                            ClientEnum.STUDENT);
+            if (record == null || record.getEndTime().getTime() < System.currentTimeMillis()) {
+                album.setTenantAlbumFlag(YesOrNoEnum.NO);
+            } else {
+                album.setTenantAlbumStatus(2);
+                album.setTenantAlbumFlag(YesOrNoEnum.YES);
+                album.setTenantAlbumStartTime(record.getStartTime());
+                album.setTenantAlbumEndTime(record.getEndTime());
+            }
+
+        }
+
+
+
+
+
+
+
 
         //查询是否已经购买专辑
         Long buyTenantAlbumId = userTenantAlbumRecordMapper.ifBuy(tenantAlbumId,sysUser.getId());

+ 66 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAccountRecordWrapper.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -120,6 +122,7 @@ public class TenantAccountRecordWrapper {
 	}
 
 
+
     @Data
     @ApiModel(" TenantAccountRecordStat-机构流水表")
     public static class TenantAccountRecordStat {
@@ -132,4 +135,66 @@ public class TenantAccountRecordWrapper {
 
     }
 
-    }
+
+    @Data
+    @ApiModel(" TenantAccountRecordExport-机构收入导出")
+    public static class TenantAccountRecordExport {
+
+        @ApiModelProperty("id")
+        @ExcelProperty("流水记录编号")
+        private Long id;
+
+        @ApiModelProperty("机构id")
+        @ExcelProperty("机构编号")
+        private Long tenantId;
+
+        @ApiModelProperty("机构名称")
+        @ExcelProperty("机构名称")
+        private String tenantName;
+
+        @ApiModelProperty("交易金额")
+        @ExcelProperty("交易金额")
+        private BigDecimal transAmount;
+
+        @ApiModelProperty("收支类型:IN、收入 OUT、支出")
+        @ExcelIgnore
+        private String inOrOut;
+
+        @ApiModelProperty("入账状态 WAIT 待入账 FROZEN 冻结入账 RECORDED 已入账 CANCEL 取消")
+        @ExcelIgnore
+        private String postStatus;
+
+        @ApiModelProperty("业务类型:PRACTICE、陪练课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 WITHDRAWAL、提现 LIVE_SHARE、直播课分润 VIDEO_SHARE、视频课分润 MUSIC_SHARE、乐谱分润 VIP_SHARE、会员分润 MALL_SHARE、商品分润")
+        @ExcelProperty("收入类型")
+        private String bizType;
+
+        @ApiModelProperty("业务id")
+        @ExcelIgnore
+        private Long bizId;
+
+        @ApiModelProperty("业务名称")
+        @ExcelIgnore
+        private String bizName;
+
+        @ApiModelProperty("订单号")
+        @ExcelProperty("订单号")
+        private String orderNo;
+
+        @ApiModelProperty("更新时间")
+        @ExcelProperty("更新时间")
+        private Date updateTime;
+
+//        @ApiModelProperty("是否结算")
+//        @ExcelProperty("是否结算")
+//
+//        private String ;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public static TenantAccountRecord from(String json) {
+            return JSON.parseObject(json, TenantAccountRecord.class);
+        }
+    }
+}

+ 23 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java

@@ -2,8 +2,10 @@ package com.yonge.cooleshow.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -18,6 +20,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotNull;
 
@@ -139,6 +142,26 @@ public class TenantAlbumWrapper {
         @ApiModelProperty("曲目相关信息")
         private List<MusicSheetData> musicSheetData = new ArrayList<>();
 
+
+        @ApiModelProperty("机构专辑有效期开始时间 ")
+        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+        private Date tenantAlbumStartTime;
+        /**
+         * 有效期结束时间
+         */
+        @ApiModelProperty("机构专辑有效期结束时间 ")
+        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+        private Date tenantAlbumEndTime;
+
+
+        @ApiModelProperty(value = "学练工具是否有效 0否 1是")
+        private YesOrNoEnum tenantAlbumFlag;
+
+        @ApiModelProperty(value = "0:没有专辑 1:有,但是未解锁,2:有,且已解锁")
+        private Integer tenantAlbumStatus;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 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)) {

+ 9 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -82,6 +82,15 @@ public class StudentController extends BaseController {
         IPage<StudentVo> pages = studentService.selectPage(PageUtil.getPage(query), query);
         List<StudentVo> rows = pages.getRecords();
 
+        //如果真实姓名字段为空 把真实姓名赋值给昵称
+        rows.stream().forEach(r->{
+            if (StringUtils.isEmpty(r.getRealName())){
+                if (StringUtils.isNotEmpty(r.getUsername()))
+                r.setRealName(r.getUsername());
+            }
+        });
+
+
         Map<Long, List<TenantActivationCode>> groupByUserId = new HashMap<>();
         if (!rows.isEmpty() && query.getTenantAlbumPurchaseId() != null) {
             List<String> studentPhones = rows.stream().map(StudentVo::getPhone).collect(Collectors.toList());