Browse Source

Merge branch 'dev_v1_1_20220720'

liweifan 3 years ago
parent
commit
b6ad5746cc

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountRecordDao.java

@@ -82,11 +82,12 @@ public interface UserAccountRecordDao extends BaseMapper<UserAccountRecord> {
     /**
      * 通过订单详情和业务id查询该详情对应的所有账户记录
      *
-     * @param param
+     * @param orderNo
+     * @param bizType
      * @param bizIds
      * @return
      */
-    List<UserAccountRecord> selectRecordByOrderDetail(@Param("param") UserOrderDetailVo param, @Param("bizIds") List<Long> bizIds);
+    List<UserAccountRecord> selectRecordByOrderDetail(@Param("orderNo") String orderNo,@Param("bizType")AccountBizTypeEnum bizType , @Param("bizIds") List<Long> bizIds);
 
     /**
      * 入账记录可以通过以下三个字段确定唯一

+ 25 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountRecordServiceImpl.java

@@ -31,10 +31,7 @@ import org.springframework.util.CollectionUtils;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 @Service
@@ -149,26 +146,40 @@ public class UserAccountRecordServiceImpl extends ServiceImpl<UserAccountRecordD
 
     @Override
     public List<UserAccountRecord> selectRecordByOrderDetail(UserOrderDetailVo userOrderDetailVo) {
+        List<UserAccountRecord> records = new ArrayList<>();
         //订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(VIP、开通会员 PINAO_ROOM、琴房时长)
         //获取业务id
         List<Long> bizIds = new ArrayList<>();
-        if (GoodTypeEnum.VIP.equals(userOrderDetailVo.getGoodType())
-                || GoodTypeEnum.VIDEO.equals(userOrderDetailVo.getGoodType())
-                || GoodTypeEnum.MUSIC.equals(userOrderDetailVo.getGoodType())) {
+        if (GoodTypeEnum.VIP.equals(userOrderDetailVo.getGoodType())){
             bizIds.add(userOrderDetailVo.getBizId());
-        } else if (GoodTypeEnum.PRACTICE.equals(userOrderDetailVo.getGoodType()) || GoodTypeEnum.LIVE.equals(userOrderDetailVo.getGoodType())) {
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIP, bizIds));
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIP_SHARE, bizIds));
+        }else if(GoodTypeEnum.VIDEO.equals(userOrderDetailVo.getGoodType())){
+            bizIds.add(userOrderDetailVo.getBizId());
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIDEO, bizIds));
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.VIDEO_SHARE, bizIds));
+        }else if(GoodTypeEnum.MUSIC.equals(userOrderDetailVo.getGoodType())){
+            bizIds.add(userOrderDetailVo.getBizId());
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.MUSIC, bizIds));
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.MUSIC_SHARE, bizIds));
+        }else if(GoodTypeEnum.PRACTICE.equals(userOrderDetailVo.getGoodType())){
             //查询课程组下所有课程id
             List<CourseSchedule> cancel = courseScheduleService.list(Wrappers.<CourseSchedule>lambdaQuery()
                     .eq(CourseSchedule::getCourseGroupId, userOrderDetailVo.getBizId())
-                    .ne(CourseSchedule::getStatus, "CANCEL")
             );
             cancel.stream().forEach(o -> bizIds.add(o.getId()));
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.PRACTICE, bizIds));
+        }else if(GoodTypeEnum.LIVE.equals(userOrderDetailVo.getGoodType())){
+            List<Long> groupId = Arrays.asList(userOrderDetailVo.getBizId());
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.LIVE_SHARE, groupId));
+            //查询课程组下所有课程id
+            List<CourseSchedule> cancel = courseScheduleService.list(Wrappers.<CourseSchedule>lambdaQuery()
+                    .eq(CourseSchedule::getCourseGroupId, userOrderDetailVo.getBizId())
+            );
+            cancel.stream().forEach(o -> bizIds.add(o.getId()));
+            records.addAll(baseMapper.selectRecordByOrderDetail(userOrderDetailVo.getOrderNo(),AccountBizTypeEnum.LIVE, bizIds));
         }
-        if (CollectionUtils.isEmpty(bizIds)) {
-            return new ArrayList<>();
-        }
-        return baseMapper.selectRecordByOrderDetail(userOrderDetailVo, bizIds);
+        return records;
     }
 
-
 }

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

@@ -822,7 +822,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
 
         //卖家不能分润自己
         if (null != orderDetailVo.getRecomUserId()
-                && orderDetailVo.getRecomUserId().equals(orderDetailVo.getMerchId())) {
+                && !orderDetailVo.getRecomUserId().equals(orderDetailVo.getMerchId())) {
             //获取分润收益费率
             BigDecimal shareFeeRate = getShareFreeByGoodType(orderDetailVo.getGoodType());
             //入老师账户

+ 7 - 22
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml

@@ -285,28 +285,13 @@
         SELECT
             <include refid="baseColumns"/>
         FROM user_cash_account_record t
-        where t.order_no_ = #{param.orderNo}
-        <if test="null != param.goodType">
-            <if test="param.goodType.code == 'VIP'">
-                and t.biz_type_ = 'VIP_SHARE'
-            </if>
-            <if test="param.goodType.code == 'PRACTICE'">
-                and t.biz_type_ = 'PRACTICE'
-            </if>
-            <if test="param.goodType.code == 'LIVE'">
-                and t.biz_type_ in ('LIVE','LIVE_SHARE')
-            </if>
-            <if test="param.goodType.code == 'VIDEO'">
-                and t.biz_type_ in ('VIDEO','VIDEO_SHARE')
-            </if>
-            <if test="param.goodType.code == 'MUSIC'">
-                and t.biz_type_ in ('MUSIC','MUSIC_SHARE')
-            </if>
-        </if>
-        and t.biz_id_ IN
-        <foreach collection="bizIds" item="item" open="(" separator="," close=")">
-            #{item}
-        </foreach>
+        where t.post_status_ = 'WAIT'
+          and t.order_no_ = #{orderNo}
+            and t.biz_type_ = #{bizType}
+            and t.biz_id_ IN
+            <foreach collection="bizIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
     </select>
 
     <select id="detailByBiz" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">