소스 검색

Merge branch 'develop'

liujc 1 년 전
부모
커밋
3d5aa73e8d
19개의 변경된 파일229개의 추가작업 그리고 21개의 파일을 삭제
  1. 1 1
      cooleshow-app/src/main/java/com/yonge/cooleshow/config/AppServerConfig.java
  2. 9 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  3. 9 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java
  4. 2 0
      cooleshow-app/src/test/resources/application.yml
  5. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/excel/UserOrderExport.java
  6. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java
  7. 5 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  8. 15 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java
  9. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumMusicServiceImpl.java
  10. 43 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumPurchaseServiceImpl.java
  11. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  12. 21 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  13. 13 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java
  14. 52 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  15. 23 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java
  16. 9 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderController.java
  17. 9 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java
  18. 1 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/ali/OriginalAliAppTemplate.java
  19. 1 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java

+ 1 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/config/AppServerConfig.java

@@ -18,7 +18,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
  */
 @Slf4j
 @EnableWebMvc
-@EnableAsync
+//@EnableAsync
 @EnableTransactionManagement
 @EnableScheduling
 @EnableSwagger2Doc

+ 9 - 0
cooleshow-app/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.UserOrder;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.service.UserOrderService;
 import com.yonge.cooleshow.biz.dal.service.UserPaymentCoreService;
@@ -78,6 +80,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) {
@@ -290,10 +295,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-app/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -83,6 +83,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<String, List<TenantActivationCode>> groupByUserId = new HashMap<>();
         if (!rows.isEmpty() && query.getTenantAlbumPurchaseId() != null) {
             List<String> studentIdList = rows.stream().map(StudentVo::getPhone).collect(Collectors.toList());

+ 2 - 0
cooleshow-app/src/test/resources/application.yml

@@ -4,6 +4,8 @@ spring:
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8
+    serialization:
+      fail-on-empty-beans: false
   mvc:
     date-format: yyyy-MM-dd HH:mm:ss
 

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

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

@@ -500,7 +500,11 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void quit(String groupId, Long userId, ClientEnum clientType) throws Exception {
-        imGroupCoreService.groupQuit(userId, clientType.name(), groupId);
+        try {
+            imGroupCoreService.groupQuit(userId, clientType.name(), groupId);
+        } 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 - 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);
     }
 

+ 21 - 0
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;
 
     //验证订单是否可以下单,获取订单金额信息
@@ -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());

+ 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

@@ -81,6 +81,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());

+ 1 - 1
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/ali/OriginalAliAppTemplate.java

@@ -38,7 +38,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.*;
 
-@Component
+@Component(value = "originalAliAppTemplate")
 public class OriginalAliAppTemplate implements PaymentTemplate {
 
     private final static Logger log = LoggerFactory.getLogger(OriginalAliAppTemplate.class);

+ 1 - 1
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java

@@ -42,7 +42,7 @@ import java.security.PrivateKey;
 import java.security.Signature;
 import java.util.*;
 
-@Component
+@Component(value = "originalWxAppTemplate")
 public class OriginalWxAppTemplate implements PaymentTemplate {
 
     private final static Logger log = LoggerFactory.getLogger(OriginalWxAppTemplate.class);