liujc 1 gadu atpakaļ
vecāks
revīzija
1b949c9c7d
17 mainītis faili ar 298 papildinājumiem un 374 dzēšanām
  1. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserOrderDetailDao.java
  2. 5 151
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderDetail.java
  3. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java
  4. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  5. 5 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java
  6. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderDetailService.java
  7. 28 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java
  8. 16 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  9. 27 27
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java
  10. 31 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java
  11. 8 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderDetailServiceImpl.java
  12. 110 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  13. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserTenantAlbumRecordServiceImpl.java
  14. 25 93
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java
  15. 2 95
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java
  16. 21 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderDetailMapper.xml
  17. 1 1
      toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserOrderDetailDao.java

@@ -42,4 +42,6 @@ public interface UserOrderDetailDao extends BaseMapper<UserOrderDetail>{
 	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo>
 	 */
     List<UserOrderDetailVo> getOrderDetilListByOrderNo(@Param("orderNo")String orderNo);
+
+    List<UserOrderDetailVo> getOrderDetilListByOrderNos(@Param("orderNos") List<String> orderNos);
 }

+ 5 - 151
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderDetail.java

@@ -12,11 +12,16 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
 import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * 平台订单表
  */
+@Getter
+@Setter
 @TableName("user_order_detail")
 @ApiModel(value = "UserOrderDetail对象", description = "平台订单表")
 public class UserOrderDetail implements Serializable {
@@ -81,155 +86,4 @@ public class UserOrderDetail implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date updateTime;
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getSubOrderNo() {
-        return subOrderNo;
-    }
-
-    public void setSubOrderNo(String subOrderNo) {
-        this.subOrderNo = subOrderNo;
-    }
-
-    public Long getMerchId() {
-        return merchId;
-    }
-
-    public void setMerchId(Long merchId) {
-        this.merchId = merchId;
-    }
-
-    public GoodTypeEnum getGoodType() {
-        return goodType;
-    }
-
-    public void setGoodType(GoodTypeEnum goodType) {
-        this.goodType = goodType;
-    }
-
-    public Long getBizId() {
-        return bizId;
-    }
-
-    public void setBizId(Long bizId) {
-        this.bizId = bizId;
-    }
-
-    public String getBizContent() {
-        return bizContent;
-    }
-
-    public void setBizContent(String bizContent) {
-        this.bizContent = bizContent;
-    }
-
-    public String getGoodName() {
-        return goodName;
-    }
-
-    public void setGoodName(String goodName) {
-        this.goodName = goodName;
-    }
-
-    public String getGoodUrl() {
-        return goodUrl;
-    }
-
-    public void setGoodUrl(String goodUrl) {
-        this.goodUrl = goodUrl;
-    }
-
-    public BigDecimal getOriginalPrice() {
-        return originalPrice;
-    }
-
-    public void setOriginalPrice(BigDecimal originalPrice) {
-        this.originalPrice = originalPrice;
-    }
-
-    public BigDecimal getExpectPrice() {
-        return expectPrice;
-    }
-
-    public void setExpectPrice(BigDecimal expectPrice) {
-        this.expectPrice = expectPrice;
-    }
-
-    public Integer getGoodNum() {
-        return goodNum;
-    }
-
-    public void setGoodNum(Integer goodNum) {
-        this.goodNum = goodNum;
-    }
-
-    public BigDecimal getGoodPrice() {
-        return goodPrice;
-    }
-
-    public void setGoodPrice(BigDecimal goodPrice) {
-        this.goodPrice = goodPrice;
-    }
-
-    public BigDecimal getPlantformFee() {
-        return plantformFee;
-    }
-
-    public void setPlantformFee(BigDecimal plantformFee) {
-        this.plantformFee = plantformFee;
-    }
-
-    public BigDecimal getPlantformFeeRate() {
-        return plantformFeeRate;
-    }
-
-    public void setPlantformFeeRate(BigDecimal plantformFeeRate) {
-        this.plantformFeeRate = plantformFeeRate;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public BigDecimal getActualPrice() {
-        return actualPrice;
-    }
-
-    public void setActualPrice(BigDecimal actualPrice) {
-        this.actualPrice = actualPrice;
-    }
-
-    public BigDecimal getCouponAmount() {
-        return couponAmount;
-    }
-
-    public void setCouponAmount(BigDecimal couponAmount) {
-        this.couponAmount = couponAmount;
-    }
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -22,6 +22,7 @@ import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * MusicAlbumService服务类
@@ -163,4 +164,8 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
     TenantAlbumWrapper.TenantAlbum detailAlbum(String albumId);
 
     TenantAlbumWrapper.TenantAlbum tenantDetailAlbum(String albumId);
+
+    Map<Long, MusicAlbum> getMapByIds(List<Long> bizIds);
+
+    Map<Long,Long> getMusicCountByIds(List<Long> bizIds);
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -26,6 +26,7 @@ import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * MusicSheetService服务类
@@ -379,4 +380,11 @@ public interface MusicSheetService extends IService<MusicSheet> {
     void orderAfterSheet(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo);
 
     List<MusicSheetUploadCountVo> countByUser(List<Long> userIds);
+
+    /**
+     * 获取曲目信息
+     *
+     * @param bizIds 曲目id
+     */
+    Map<Long,MusicSheet> getMapByIds(List<Long> bizIds);
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantAlbumService.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.entity.TenantAlbum;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 机构专辑
@@ -63,6 +64,10 @@ public interface TenantAlbumService extends IService<TenantAlbum>  {
 
     void updateAlbum(Long id, TenantAlbum tenantAlbum, List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList);
 
+    Map<Long, TenantAlbum> getMapByIds(List<Long> bizIds);
+
+    Map<Long, Long> getMusicCountByIds(List<Long> bizIds);
+
 
     /**
      * 添加机构专辑数据

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

@@ -35,6 +35,9 @@ public interface UserOrderDetailService extends IService<UserOrderDetail>  {
 	 * @return: com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo
 	 */
 	List<UserOrderDetailVo> getOrderDetilListByOrderNo(String orderNo);
+
+    List<UserOrderDetailVo> getOrderDetilListByOrderNos(List<String> orderNos);
+
     /**
      * 分页查询
      * @author liweifan

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

@@ -584,6 +584,34 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         return album;
     }
 
+    @Override
+    public Map<Long, MusicAlbum> getMapByIds(List<Long> bizIds) {
+        if (CollectionUtils.isEmpty(bizIds)) {
+            return new HashMap<>();
+        }
+        List<MusicAlbum> musicAlbums = this.lambdaQuery().in(MusicAlbum::getId, bizIds).list();
+        if (CollectionUtils.isEmpty(musicAlbums)) {
+            return new HashMap<>();
+        }
+        return musicAlbums.stream().collect(Collectors.toMap(MusicAlbum::getId, v -> v));
+
+    }
+
+    @Override
+    public Map<Long, Long> getMusicCountByIds(List<Long> bizIds) {
+        if (CollectionUtils.isEmpty(bizIds)) {
+            return new HashMap<>();
+        }
+        List<AlbumMusicRelate> list = albumMusicRelateService.lambdaQuery()
+                .in(AlbumMusicRelate::getAlbumId, bizIds)
+                .list();
+        if (CollectionUtils.isEmpty(list)) {
+            return new HashMap<>();
+        }
+        return list.stream().collect(Collectors.groupingBy(o->o.getAlbumId(),Collectors.counting()));
+
+    }
+
     private boolean checkNameRepeat(String albumName, Long id) {
         LambdaQueryChainWrapper<MusicAlbum> eq = this.lambdaQuery()
                                                      .eq(MusicAlbum::getDelFlag,0)

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

@@ -70,6 +70,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -1688,6 +1689,21 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     }
 
     @Override
+    public Map<Long, MusicSheet> getMapByIds(List<Long> bizIds) {
+        if (CollectionUtils.isEmpty(bizIds)) {
+            return new HashMap<>();
+        }
+        List<MusicSheet> sheetList = this.lambdaQuery()
+                .in(MusicSheet::getId, bizIds)
+                .list();
+        if (CollectionUtils.isEmpty(sheetList)) {
+            return new HashMap<>();
+        }
+        return sheetList.stream().collect(Collectors.toMap(MusicSheet::getId, Function.identity()));
+
+    }
+
+    @Override
     public Boolean updateMusicImg(MusicImgDto musicImgDto, Long musicSheetId) {
         MusicSheet musicSheet = new MusicSheet();
         musicSheet.setMusicImg(musicImgDto.getMusicImg());

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

@@ -840,33 +840,33 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
                 PaymentDivMember paymentDivMember = null;
                 String divideOrderNo = IdWorker.getIdStr();
                 BigDecimal feeAmt = BigDecimal.ZERO;
-                if (merchantConfig != null && newestPayment != null) {
-                    paymentDivMember = paymentDivMemberService.getByAppIdAndTenantId(merchantConfig.getAppId(), k);
-                    if (paymentDivMember != null) {
-                        // 执行分账逻辑
-                        BasePaymentService paymentService = paymentServiceContext.getPaymentService(merchantConfig.getPaymentVendor());
-                        DivideReq.DivMember divMember = DivideReq.DivMember.builder()
-                                .memberId(paymentDivMember.getMemberId())
-                                .amount(v)
-                                .feeFlag("Y")
-                                .build();
-                        DivideReq divideReq = DivideReq.builder()
-                                .transNo(newestPayment.getTransNo())
-                                .orderNo(userPaymentOrder.getOrderNo())
-                                .divideOrderNo(divideOrderNo)
-                                .divideAmount(v)
-                                .divMembers(Lists.newArrayList(divMember))
-                                .build();
-                        try {
-                            DivideResp divide = paymentService.divide(divideReq);
-                            feeAmt = divide.getFeeAmount();
-                            tenantEnterFlag = true;
-                        } catch (Exception e) {
-                            log.error("分账失败 分账对象 {} 分账数据 {} 分账订单号 {}", paymentDivMember, divideReq, divideOrderNo);
-                        }
-
-                    }
-                }
+//                if (merchantConfig != null && newestPayment != null) {
+//                    paymentDivMember = paymentDivMemberService.getByAppIdAndTenantId(merchantConfig.getAppId(), k);
+//                    if (paymentDivMember != null) {
+//                        // 执行分账逻辑
+//                        BasePaymentService paymentService = paymentServiceContext.getPaymentService(merchantConfig.getPaymentVendor());
+//                        DivideReq.DivMember divMember = DivideReq.DivMember.builder()
+//                                .memberId(paymentDivMember.getMemberId())
+//                                .amount(v)
+//                                .feeFlag("Y")
+//                                .build();
+//                        DivideReq divideReq = DivideReq.builder()
+//                                .transNo(newestPayment.getTransNo())
+//                                .orderNo(userPaymentOrder.getOrderNo())
+//                                .divideOrderNo(divideOrderNo)
+//                                .divideAmount(v)
+//                                .divMembers(Lists.newArrayList(divMember))
+//                                .build();
+//                        try {
+//                            DivideResp divide = paymentService.divide(divideReq);
+//                            feeAmt = divide.getFeeAmount();
+//                            tenantEnterFlag = true;
+//                        } catch (Exception e) {
+//                            log.error("分账失败 分账对象 {} 分账数据 {} 分账订单号 {}", paymentDivMember, divideReq, divideOrderNo);
+//                        }
+//
+//                    }
+//                }
 
                 // 写入机构分账记录表
                 PaymentDivMemberRecord paymentDivMemberRecord = PaymentDivMemberRecord.builder()

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

@@ -24,10 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
@@ -72,6 +69,7 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
     @Autowired
     private TeacherService teacherService;
 
+
     /**
      * 查询详情
      *
@@ -333,6 +331,35 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
 
     }
 
+    @Override
+    public Map<Long, TenantAlbum> getMapByIds(List<Long> bizIds) {
+        if (CollectionUtils.isEmpty(bizIds)) {
+            return new HashMap<>();
+        }
+        List<TenantAlbum> tenantAlbums = this.lambdaQuery()
+                .in(TenantAlbum::getId, bizIds)
+                .list();
+        if (CollectionUtils.isEmpty(tenantAlbums)) {
+            return new HashMap<>();
+        }
+        return tenantAlbums.stream().collect(Collectors.toMap(TenantAlbum::getId, v -> v));
+
+    }
+
+    @Override
+    public Map<Long, Long> getMusicCountByIds(List<Long> bizIds) {
+        if (CollectionUtils.isEmpty(bizIds)) {
+            return new HashMap<>();
+        }
+        List<TenantAlbumMusic> list = tenantAlbumMusicService.lambdaQuery()
+                .in(TenantAlbumMusic::getTenantAlbumId, bizIds)
+                .list();
+        if (CollectionUtils.isEmpty(list)) {
+            return new HashMap<>();
+        }
+        return list.stream().collect(Collectors.groupingBy(TenantAlbumMusic::getTenantAlbumId,Collectors.counting()));
+    }
+
     @Transactional(rollbackFor = Exception.class)
     private void insertAlbumMusic(Long tenantId, TenantAlbum tenantAlbum,
                                   List<TenantAlbumWrapper.MusicSheetData> musicSheetDataList) {

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
 import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderDetail;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
@@ -15,7 +16,7 @@ import java.util.List;
 @Service
 public class UserOrderDetailServiceImpl extends ServiceImpl<UserOrderDetailDao, UserOrderDetail> implements UserOrderDetailService {
 
-	@Override
+    @Override
     public UserOrderDetailVo detail(Long id) {
         UserOrderDetailVo detail = baseMapper.detail(id);
         return detail;
@@ -29,9 +30,14 @@ public class UserOrderDetailServiceImpl extends ServiceImpl<UserOrderDetailDao,
 
     @Override
     public List<UserOrderDetailVo> getOrderDetilListByOrderNo(String orderNo) {
-        return baseMapper.getOrderDetilListByOrderNo(orderNo);
+        return this.getOrderDetilListByOrderNos(Lists.newArrayList(orderNo));
     }
 
+
+    @Override
+    public List<UserOrderDetailVo> getOrderDetilListByOrderNos(List<String> orderNos) {
+        return baseMapper.getOrderDetilListByOrderNos(orderNos);
+    }
     @Override
     public IPage<UserOrderDetailVo> selectPage(IPage<UserOrderDetailVo> page, OrderDetailSearch query){
         return page.setRecords(baseMapper.selectPage(page, query));

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,6 +21,7 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderPayRes;
 import com.yonge.cooleshow.biz.dal.wrapper.PaymentDivMemberRecordWrapper;
+import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.coupon.CouponOrderWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
@@ -65,6 +67,7 @@ import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -129,6 +132,15 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Autowired
     private UserPaymentOrderService userPaymentOrderService;
 
+    @Autowired
+    private UserOrderDetailService userOrderDetailService;
+
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private MusicAlbumService musicAlbumService;
+
     //验证订单是否可以下单,获取订单金额信息
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
     //插入订单后执行
@@ -240,6 +252,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                             .amount(userOrderVo.getExpectPrice().doubleValue())
                             .build());
             userOrderVo.setDiscountPrice(BigDecimal.valueOf(couponOrderWrapper.getDiscountedPrices()));
+
+            List<UserOrderDetailVo> userOrderDetailVos = getUserOrderDetailVos(Lists.newArrayList(userOrderVo.getOrderNo()));
+            userOrderVo.setOrderDetailList(userOrderDetailVos);
         }
         return userOrderVo;
     }
@@ -348,10 +363,105 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             }
         }
 
+        // 订单ID集合
+        List<String> orderNos = records.stream().map(UserOrder::getOrderNo).collect(Collectors.toList());
+        List<UserOrderDetailVo> detailVoList = getUserOrderDetailVos(orderNos);
+
+        // id分组
+        Map<String, List<UserOrderDetailVo>> map = detailVoList.stream().collect(Collectors.groupingBy(o -> o.getOrderNo()));
+
+        for (UserOrderVo record : records) {
+            List<UserOrderDetailVo> userOrderDetailVos = map.get(record.getOrderNo());
+            record.setOrderDetailList(userOrderDetailVos);
+        }
+
 
         return userOrderVoIPage;
     }
 
+    private List<UserOrderDetailVo> getUserOrderDetailVos(List<String> orderNos) {
+        List<UserOrderDetailVo> detailVoList = userOrderDetailService.getOrderDetilListByOrderNos(orderNos);
+
+        // 根据商品类型分组获取商品ID集合
+        Map<GoodTypeEnum, List<UserOrderDetailVo>> orderBizMap = detailVoList.stream()
+                .collect(Collectors.groupingBy(UserOrderDetailVo::getGoodType));
+
+        // 只针对机构专辑,曲目,专辑,vip
+        orderBizMap.forEach((orderType,list) -> {
+            if (CollectionUtils.isEmpty(list)) {
+                return;
+            }
+            // bizId集合
+            List<Long> bizIds = list.stream().map(UserOrderDetailVo::getBizId).collect(Collectors.toList());
+            switch (orderType) {
+                case MUSIC: {
+                    Map<Long, MusicSheet> mapByIds = musicSheetService.getMapByIds(bizIds);
+                    // 上传人ID集合
+                    List<Long> userIds = mapByIds.values().stream().map(MusicSheet::getUserId).collect(Collectors.toList());
+                    Map<Long, SysUser> userMap = sysUserService.getMapByIds(userIds);
+
+                    for (UserOrderDetailVo userOrderDetailVo : list) {
+                        MusicSheet musicSheet = mapByIds.getOrDefault(userOrderDetailVo.getBizId(),new MusicSheet());
+                        UserOrderDetailVo.BizInfo bizInfo = new UserOrderDetailVo.BizInfo();
+                        bizInfo.setBizCover(musicSheet.getTitleImg());
+                        bizInfo.setBizName(userOrderDetailVo.getGoodName());
+                        bizInfo.setComposer(musicSheet.getComposer());
+                        bizInfo.setUploadUser(userMap.getOrDefault(musicSheet.getUserId(),new SysUser()).getUsername());
+                        userOrderDetailVo.setBizInfo(bizInfo);
+                    }
+
+                    break;
+                }
+                case TENANT_ALBUM:
+                {
+                    Map<Long, TenantAlbum> mapByIds = tenantAlbumService.getMapByIds(bizIds);
+                    Map<Long, Long> musicCountByIds = tenantAlbumService.getMusicCountByIds(bizIds);
+
+                    for (UserOrderDetailVo userOrderDetailVo : list) {
+                        TenantAlbumWrapper.TenantAlbumContent tenantAlbumContent = JSON
+                                .parseObject(userOrderDetailVo.getBizContent(), TenantAlbumWrapper.TenantAlbumContent.class);
+                        UserOrderDetailVo.BizInfo bizInfo = new UserOrderDetailVo.BizInfo();
+                        TenantAlbum tenantAlbum = mapByIds.getOrDefault(userOrderDetailVo.getBizId(),new TenantAlbum());
+                        bizInfo.setBizCover(tenantAlbum.getCoverImg());
+                        bizInfo.setBizName(userOrderDetailVo.getGoodName());
+                        bizInfo.setBizDesc(tenantAlbum.getDescribe());
+                        bizInfo.setBizMusicCount(musicCountByIds.getOrDefault(tenantAlbum.getId(),0L).intValue());
+                        bizInfo.setBizValidTime(tenantAlbumContent.getBuyCycle());
+                        userOrderDetailVo.setBizInfo(bizInfo);
+                    }
+                    break;
+                }
+                case ALBUM:
+                {
+                    Map<Long, MusicAlbum> mapByIds = musicAlbumService.getMapByIds(bizIds);
+                    Map<Long, Long> musicCountByIds = musicAlbumService.getMusicCountByIds(bizIds);
+
+                    for (UserOrderDetailVo userOrderDetailVo : list) {
+                        UserOrderDetailVo.BizInfo bizInfo = new UserOrderDetailVo.BizInfo();
+                        MusicAlbum musicAlbum = mapByIds.getOrDefault(userOrderDetailVo.getBizId(), new MusicAlbum());
+                        bizInfo.setBizCover(musicAlbum.getAlbumCoverUrl());
+                        bizInfo.setBizName(userOrderDetailVo.getGoodName());
+                        bizInfo.setBizDesc(musicAlbum.getAlbumDesc());
+                        bizInfo.setBizMusicCount(musicCountByIds.getOrDefault(userOrderDetailVo.getBizId(),0L).intValue());
+                        userOrderDetailVo.setBizInfo(bizInfo);
+                    }
+                    break;
+                }
+                case VIP:
+                {
+
+                    for (UserOrderDetailVo userOrderDetailVo : list) {
+                        UserOrderDetailVo.BizInfo bizInfo = new UserOrderDetailVo.BizInfo();
+                        bizInfo.setBizName(userOrderDetailVo.getGoodName());
+                        userOrderDetailVo.setBizInfo(bizInfo);
+                    }
+                    break;
+                }
+            }
+        });
+        return detailVoList;
+    }
+
     @Override
     public List<UserOrderVo> selectAllList(OrderSearch query) {
         return baseMapper.selectAllList(query);

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

@@ -208,7 +208,7 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
         List<UserTenantAlbumRecord> list = this.lambdaQuery()
                 .eq(UserTenantAlbumRecord::getUserId, userId)
                 .eq(UserTenantAlbumRecord::getClientType, clientType)
-                .le(UserTenantAlbumRecord::getEndTime, new Date())
+                .ge(UserTenantAlbumRecord::getEndTime, new Date())
                 .list();
         if (CollectionUtils.isEmpty(list)) {
             return new ArrayList<>();

+ 25 - 93
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java

@@ -6,11 +6,18 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
 
 /**
  * @Author: liweifan
  * @Data: 2022-03-30 13:53:51
  */
+@Getter
+@Setter
 @ApiModel(value = "UserOrderDetailVo对象", description = "平台订单表查询视图对象")
 public class UserOrderDetailVo extends UserOrderDetail {
     private static final long serialVersionUID = 1L;
@@ -54,107 +61,32 @@ public class UserOrderDetailVo extends UserOrderDetail {
     @ApiModelProperty("支付厂商")
     private String paymentVendor;
 
-    public String getPaymentVendor() {
-        return paymentVendor;
-    }
-
-    public void setPaymentVendor(String paymentVendor) {
-        this.paymentVendor = paymentVendor;
-    }
-
-    public Long getTenantId() {
-        return tenantId;
-    }
-
-    public void setTenantId(Long tenantId) {
-        this.tenantId = tenantId;
-    }
-
-    public Long getRewardId() {
-        return rewardId;
-    }
-
-    public void setRewardId(Long rewardId) {
-        this.rewardId = rewardId;
-    }
-
-    public Long getActivityId() {
-        return activityId;
-    }
-
-    public void setActivityId(Long activityId) {
-        this.activityId = activityId;
-    }
-
-    public ClientEnum getOrderClient() {
-        return orderClient;
-    }
-
-    public void setOrderClient(ClientEnum orderClient) {
-        this.orderClient = orderClient;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
+    @ApiModelProperty("商品信息,返回订单列表或详情用")
+    private BizInfo bizInfo;
 
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
+    @Data
+    public  static class BizInfo implements Serializable {
 
-    public Long getOrderId() {
-        return orderId;
-    }
+        @ApiModelProperty("封面")
+        private String bizCover;
 
-    public void setOrderId(Long orderId) {
-        this.orderId = orderId;
-    }
+        @ApiModelProperty("名称")
+        private String bizName;
 
-    public String getAvatar() {
-        return avatar;
-    }
+        @ApiModelProperty("描述")
+        private String bizDesc;
 
-    public void setAvatar(String avatar) {
-        this.avatar = avatar;
-    }
+        @ApiModelProperty("曲目上传人")
+        private String uploadUser;
 
-    public String getUsername() {
-        return username;
-    }
 
-    public void setUsername(String username) {
-        this.username = username;
-    }
+        @ApiModelProperty("曲目艺术家")
+        private String composer;
 
-    public Double getStarGrade() {
-        return starGrade;
-    }
-
-    public void setStarGrade(Double starGrade) {
-        this.starGrade = starGrade;
-    }
-
-    public Object getBizParam() {
-        return bizParam;
-    }
-
-    public void setBizParam(Object bizParam) {
-        this.bizParam = bizParam;
-    }
-
-    public Long getRecomUserId() {
-        return recomUserId;
-    }
-
-    public void setRecomUserId(Long recomUserId) {
-        this.recomUserId = recomUserId;
-    }
-
-    public OrderTypeEnum getOrderType() {
-        return orderType;
-    }
+        @ApiModelProperty("曲目数量")
+        private Integer bizMusicCount;
 
-    public void setOrderType(OrderTypeEnum orderType) {
-        this.orderType = orderType;
+        @ApiModelProperty("机构专辑有效时长")
+        private Integer bizValidTime;
     }
 }

+ 2 - 95
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java

@@ -8,6 +8,7 @@ import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
  * @Author: liweifan
  * @Data: 2022-03-30 13:53:51
  */
+@Data
 @ApiModel(value = "UserOrderVo对象", description = "平台订单表查询视图对象")
 public class UserOrderVo extends UserOrder {
 	private static final long serialVersionUID = 1L;
@@ -48,99 +50,4 @@ public class UserOrderVo extends UserOrder {
     @ApiModelProperty("支付配置")
     private  UserPaymentOrderWrapper.PaymentConfig paymentConfig;
 
-    public UserPaymentOrderWrapper.PaymentConfig getPaymentConfig() {
-        return paymentConfig;
-    }
-
-    public void setPaymentConfig(UserPaymentOrderWrapper.PaymentConfig paymentConfig) {
-        this.paymentConfig = paymentConfig;
-    }
-
-    public String getTenantName() {
-        return tenantName;
-    }
-
-    public void setTenantName(String tenantName) {
-        this.tenantName = tenantName;
-    }
-
-    public List<UserOrderDetailVo> getOrderDetailList() {
-		return orderDetailList;
-	}
-
-	public void setOrderDetailList(List<UserOrderDetailVo> orderDetailList) {
-		this.orderDetailList = orderDetailList;
-	}
-
-	public OpenEnum getOpenType() {
-		return openType;
-	}
-
-	public void setOpenType(OpenEnum openType) {
-		this.openType = openType;
-	}
-
-	public PayChannelEnum getPayChannel() {
-		return payChannel;
-	}
-
-	public void setPayChannel(PayChannelEnum payChannel) {
-		this.payChannel = payChannel;
-	}
-
-	public String getTransNo() {
-		return transNo;
-	}
-
-	public void setTransNo(String transNo) {
-		this.transNo = transNo;
-	}
-
-	public BigDecimal getFeeAmt() {
-		return feeAmt;
-	}
-
-	public void setFeeAmt(BigDecimal feeAmt) {
-		this.feeAmt = feeAmt;
-	}
-
-	public String getUsername() {
-		return username;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
-	}
-
-	public String getPhone() {
-		return phone;
-	}
-
-	public void setPhone(String phone) {
-		this.phone = phone;
-	}
-
-	public String getPaymentNo() {
-		return paymentNo;
-	}
-
-	public void setPaymentNo(String paymentNo) {
-		this.paymentNo = paymentNo;
-	}
-
-	public String getPaymentClient() {
-		return paymentClient;
-	}
-
-	public void setPaymentClient(String paymentClient) {
-		this.paymentClient = paymentClient;
-	}
-
-	public BigDecimal getDiscountPrice() {
-		return discountPrice;
-	}
-
-	public void setDiscountPrice(BigDecimal discountPrice) {
-		this.discountPrice = discountPrice;
-	}
 }

+ 21 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderDetailMapper.xml

@@ -111,4 +111,25 @@
         where t.order_no_ = #{orderNo}
     </select>
 
+	<select id="getOrderDetilListByOrderNos" resultType="com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo">
+        SELECT
+        <include refid="baseColumns" />,
+        o.recom_user_id_ as recomUserId,
+        o.order_client_ as orderClient,
+        u.avatar_ as avatar,
+        u.username_ as username,
+        a.star_grade_ as starGrade
+        FROM user_order_detail t
+        left join user_order o on t.order_no_ = o.order_no_
+        left join sys_user u on t.merch_id_ = u.id_
+        left join teacher_total a on t.merch_id_ = a.user_id_
+        <where>
+            <if test="orderNos != null and orderNos.size() != 0">
+                and t.order_no_ in
+                <foreach collection="orderNos" close=")" open="(" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -115,7 +115,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
             log.error("微信APP支付请求失败:{}", e.toString());
             return BaseResult.failed(e.toString());
         } catch (Exception e) {
-            e.printStackTrace();
+            log.error("微信APP支付请求失败",e);
             return BaseResult.failed("微信APP支付请求失败");
         }
     }