Explorar el Código

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

yonge hace 3 años
padre
commit
d2568cd9a9

+ 5 - 1
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/component/CancelOrderReceiver.java

@@ -37,7 +37,11 @@ public class CancelOrderReceiver {
             DistributedLock.of(redissonClient)
                            .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
                                    , () -> {
-                                       portalOrderService.cancelOrder(orderId, "超时取消", null);
+                               try {
+                                   portalOrderService.cancelOrder(orderId, "超时取消", null);
+                               }catch (Exception e) {
+                                   logger.warn("超时队列 : {}",e.fillInStackTrace());
+                               }
                                    }, 60L, TimeUnit.SECONDS);
 
         } catch (BizException e) {

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/PlatformCashAccountRecordDao.java

@@ -37,5 +37,10 @@ public interface PlatformCashAccountRecordDao extends BaseMapper<PlatformCashAcc
 
     Integer mallRecordedRecord(@Param("orderNo")String orderNo,@Param("bizType") String bizType, @Param("bizId") Long bizId);
 
+    /**
+     * 平台收益批量入账
+     * @param recordIds
+     */
+    void batchRecorded(@Param("recordIds") List<Long> recordIds);
 }
 

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

@@ -118,7 +118,6 @@ public interface UserOrderService extends IService<UserOrder> {
      * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.lang.Boolean>
      */
     HttpResponseResult<Boolean> orderCancel(OrderPayReq payReq);
-
     /***
      * 取消订单(未判断付款单状态)
      * @author liweifan

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

@@ -555,21 +555,23 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean sendBuyMessage(Long teacherId, Long studentId, Long musicSheetId, ClientEnum orderClient) {
-        SysUser teacher = sysUserFeignService.queryUserById(teacherId);
-        SysUser student = sysUserFeignService.queryUserById(studentId);
-        if (StringUtil.isEmpty(teacher.getPhone())) {
-            log.warn("teacher id {} name {} 手机号不存在,消息推送失败", teacher.getId(), teacher.getUsername());
-        }
 
         MusicSheet musicSheet = this.getById(musicSheetId);
-        // 推送老师
-        Map<Long, String> teacherReceivers = new HashMap<>();
-        teacherReceivers.put(teacherId, teacher.getPhone());
+        SysUser student = sysUserFeignService.queryUserById(studentId);
+        if (musicSheet.getSourceType().equals(SourceTypeEnum.TEACHER)) {
+            SysUser teacher = sysUserFeignService.queryUserById(teacherId);
+            if (StringUtil.isEmpty(teacher.getPhone())) {
+                log.warn("teacher id {} name {} 手机号不存在,消息推送失败", teacher.getId(), teacher.getUsername());
+            }
 
-        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-                MessageTypeEnum.STUDENT_BUY_TEACHER_MUSIC_SHEET, teacherReceivers, null,
-                0, null, ClientEnum.TEACHER.getCode(), student.getUsername(), musicSheet.getMusicSheetName());
+            // 推送老师
+            Map<Long, String> teacherReceivers = new HashMap<>();
+            teacherReceivers.put(teacherId, teacher.getPhone());
+
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_BUY_TEACHER_MUSIC_SHEET, teacherReceivers, null,
+                                               0, null, ClientEnum.TEACHER.getCode(), student.getUsername(), musicSheet.getMusicSheetName());
 
+        }
         // 推送学生
         Map<Long, String> studentReceivers = new HashMap<>();
         studentReceivers.put(studentId, student.getPhone());

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

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
 import com.yonge.toolset.base.util.StringUtil;
@@ -21,8 +21,6 @@ import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.PlatformCashAccountRecordService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.PlatformCashAccountRecordSummaryVo;
-import com.yonge.cooleshow.common.enums.PostStatusEnum;
-import org.springframework.util.CollectionUtils;
 
 /**
  * 平台账户流水表(PlatformCashAccountRecord)表服务实现类
@@ -76,16 +74,8 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
         paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
 
         List<PlatformCashAccountRecord> list = getDao().queryCanAccountByBizType(paramNames);
-        if(!CollectionUtils.isEmpty(list)){
-            for (PlatformCashAccountRecord pcar : list) {
-                //预收改成实收
-                pcar.setPostStatus(PostStatusEnum.RECORDED);
-                pcar.setUpdateTime(new Date());
-            }
-            getDao().batchUpdate(list);
-        }
-        //老师账户修改
-        userAccountRecordService.updateWaitRecord();
+        List<Long> recordIds = list.stream().map(PlatformCashAccountRecord::getId).collect(Collectors.toList());
+        getDao().batchRecorded(recordIds);
         return true;
     }
 

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

@@ -64,6 +64,21 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         if (null == detail) {
             throw new BizException("用户没有开通账户");
         }
+        detail = dealUserAccountVo(detail);
+        return detail;
+    }
+
+    public UserAccountVo dealUserAccountVo(UserAccountVo detail){
+        detail.setAmountUnrecorded(
+                null == detail.getAmountUnrecorded() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountUnrecorded().setScale(2, RoundingMode.HALF_UP));
+        detail.setAmountRecorded(
+                null == detail.getAmountRecorded() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountRecorded().setScale(2, RoundingMode.HALF_UP));
+        detail.setAmountTotal(
+                null == detail.getAmountTotal() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountTotal().setScale(2, RoundingMode.HALF_UP));
+        detail.setAmountUsable(
+                null == detail.getAmountUsable() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountUsable().setScale(2, RoundingMode.HALF_UP));
+        detail.setAmountFrozen(
+                null == detail.getAmountFrozen() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : detail.getAmountFrozen().setScale(2, RoundingMode.HALF_UP));
         return detail;
     }
 
@@ -286,16 +301,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         BigDecimal mallShareAmount = BigDecimal.ZERO;
 
         for (AccountTotal info : infoList) {
-            info.setPracticeAmount(null == info.getPracticeAmount() ? BigDecimal.ZERO : info.getPracticeAmount());
-            info.setLiveAmount(null == info.getLiveAmount() ? BigDecimal.ZERO : info.getLiveAmount());
-            info.setVideoAmount(null == info.getVideoAmount() ? BigDecimal.ZERO : info.getVideoAmount());
-            info.setMusicAmount(null == info.getMusicAmount() ? BigDecimal.ZERO : info.getMusicAmount());
-
-            info.setLiveShareAmount(null == info.getLiveShareAmount() ? BigDecimal.ZERO : info.getLiveShareRate());
-            info.setVideoShareAmount(null == info.getVideoShareAmount() ? BigDecimal.ZERO : info.getVipShareAmount());
-            info.setMusicShareAmount(null == info.getMusicShareAmount() ? BigDecimal.ZERO : info.getMusicShareAmount());
-            info.setVipShareAmount(null == info.getVipShareAmount() ? BigDecimal.ZERO : info.getVipShareAmount());
-            info.setMallShareAmount(null == info.getMusicShareAmount() ? BigDecimal.ZERO : info.getMallShareAmount());
+            info = dealAccountTotal(info);
 
             practiceAmount = practiceAmount.add(info.getPracticeAmount());
             liveAmount = liveAmount.add(info.getLiveAmount());
@@ -488,4 +494,32 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
         }
     }
 
+    public AccountTotal dealAccountTotal(AccountTotal info){
+        if(null == info){
+            info = new AccountTotal();
+        }
+        info.setTotalInAmount(
+                null == info.getTotalInAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getTotalInAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setPracticeAmount(
+                null == info.getPracticeAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getPracticeAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setLiveAmount(
+                null == info.getLiveAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getLiveAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setVideoAmount(
+                null == info.getVideoAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getVideoAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setMusicAmount(
+                null == info.getMusicAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getMusicAmount().setScale(2, RoundingMode.HALF_UP));
+
+        info.setLiveShareAmount(
+                null == info.getLiveShareAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getLiveShareRate().setScale(2, RoundingMode.HALF_UP));
+        info.setVideoShareAmount(
+                null == info.getVideoShareAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getVideoShareAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setMusicShareAmount(
+                null == info.getMusicShareAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getMusicShareAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setVipShareAmount(
+                null == info.getVipShareAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getVipShareAmount().setScale(2, RoundingMode.HALF_UP));
+        info.setMallShareAmount(
+                null == info.getMusicShareAmount() ? BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP) : info.getMallShareAmount().setScale(2, RoundingMode.HALF_UP));
+        return info;
+    }
+
 }

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

@@ -727,35 +727,31 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         detail.setUpdateTime(now);
         updateById(detail);
 
-        try {
-            if (null != data) {
-                //更新付款单
-                UserOrderPayment orderPayment = orderPaymentService
-                        .detailByTransNoOrPaymentNo(data.getId(), data.getPaymentNo());
-                if (null != orderPayment) {
-                    orderPayment.setTransNo(data.getId());
-                    orderPayment.setStatus(TradeStatusEnum.succeeded);
-                    orderPayment.setArrivalTime(now);
-                    orderPayment.setUpdateTime(now);
-
-                    if (null != data.getExecutePaymentCallBack()) {
-                        orderPayment.setBackPayAmt(
-                                new BigDecimal(data.getExecutePaymentCallBack().getPayAmt()));
-
-                        BigDecimal feeAmt = new BigDecimal(data.getExecutePaymentCallBack().getFeeAmt());
-                        if (BigDecimal.ZERO.compareTo(feeAmt) == 0) {
-                            orderPayment.setFeeAmt(orderPayment.getPayAmt().subtract(orderPayment.getBackPayAmt()));
-                        } else {
-                            orderPayment.setFeeAmt(feeAmt);
-                        }
+        if (null != data) {
+            //更新付款单
+            UserOrderPayment orderPayment = orderPaymentService
+                    .detailByTransNoOrPaymentNo(data.getId(), data.getPaymentNo());
+            if (null != orderPayment) {
+                orderPayment.setTransNo(data.getId());
+                orderPayment.setStatus(TradeStatusEnum.succeeded);
+                orderPayment.setArrivalTime(now);
+                orderPayment.setUpdateTime(now);
+
+                if (null != data.getExecutePaymentCallBack()) {
+                    orderPayment.setBackPayAmt(
+                            new BigDecimal(data.getExecutePaymentCallBack().getPayAmt()));
+
+                    BigDecimal feeAmt = new BigDecimal(data.getExecutePaymentCallBack().getFeeAmt());
+                    if (BigDecimal.ZERO.compareTo(feeAmt) == 0) {
+                        orderPayment.setFeeAmt(orderPayment.getPayAmt().subtract(orderPayment.getBackPayAmt()));
+                    } else {
+                        orderPayment.setFeeAmt(feeAmt);
                     }
-                    orderPaymentService.updateById(orderPayment);
                 }
+                orderPaymentService.updateById(orderPayment);
             }
-        } catch (Exception e) {
-            log.error("订单完成-更新付款单失败, UserOrderVo is {},PaymentCallBack is {}", JSONObject.toJSONString(detail), JSONObject.toJSONString(data));
-            e.printStackTrace();
         }
+
         //调用业务
         List<UserOrderDetailVo> orderDetailList = orderDetailService.getOrderDetilListByOrderNo(detail.getOrderNo());
 
@@ -789,7 +785,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
      *
      * @param orderDetailVo
      */
-    private void savePlatformAccountRecord(UserOrderDetailVo orderDetailVo) {
+    @Transactional(rollbackFor = Exception.class)
+    public void savePlatformAccountRecord(UserOrderDetailVo orderDetailVo) {
         BigDecimal expectPrice = orderDetailVo.getExpectPrice();
         if (expectPrice.compareTo(BigDecimal.ZERO) <= 0) {
             return;

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicSheetVo.java

@@ -29,9 +29,20 @@ public class MusicSheetVo extends MusicSheet {
     @ApiModelProperty("收藏 0:否,1:是")
     private YesOrNoEnum favorite;
 
+    @ApiModelProperty("收藏人数")
+    private Long favoriteCount;
+
     @ApiModelProperty("是否购买/VIP(0:否,1:是) ")
     private YesOrNoEnum play;
 
+    public Long getFavoriteCount() {
+        return favoriteCount;
+    }
+
+    public void setFavoriteCount(Long favoriteCount) {
+        this.favoriteCount = favoriteCount;
+    }
+
     public String getAddName() {
         return addName;
     }

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -253,6 +253,9 @@
         ,su.avatar_ as addUserAvatar
         ,(select group_concat(mt.name_) from music_tag mt
         where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
+        ,(select count(1) as num from music_favorite af
+                left join sys_user su on af.user_id_ = su.id_
+                where su.del_flag_ = 0 and af.music_sheet_id_ = t.id_) as favoriteCount
         ,(select group_concat(s.name_) from subject s
         where find_in_set(s.id_,t.music_subject_)  and s.del_flag_ = 0) as subjectNames
         <if test="param.studentId != null">

+ 8 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/PlatformCashAccountRecordMapper.xml

@@ -69,6 +69,14 @@
         </foreach>
     </update>
 
+	<update id="batchRecorded">
+		update platform_cash_account_record set post_status_ = 'RECORDED'
+		where post_status_ = 'WAIT' and id_ IN
+		<foreach collection="recordIds" item="item" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+	</update>
+
 	<sql id="selectSql">
 		select * from platform_cash_account_record
 		<where>

+ 1 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml

@@ -83,7 +83,7 @@
             (select sum(a.trans_amount_) from user_cash_account_record a where a.account_id_ = t.user_id_
                 and a.post_status_ = 'RECORDED' and a.in_or_out_ = 'IN') as amountRecorded,
             (select sum(a.trans_amount_) from user_cash_account_record a where a.account_id_ = t.user_id_
-                and a.post_status_ = 'RECORDED' and a.in_or_out_ = 'IN'
+                and a.post_status_ in ('RECORDED','WAIT') and a.in_or_out_ = 'IN'
                 and a.biz_type_ in ('LIVE_SHARE','VIDEO_SHARE','MUSIC_SHARE','VIP_SHARE','MALL_SHARE')) as amountShare
         FROM user_cash_account t
         where t.user_id_ = #{id}
@@ -155,7 +155,6 @@
         <if test="timeType != null and timeType == 'YEAR'">
             group by t.sys_day_ym_
         </if>
-        order by t.sys_day_ymd_
     </select>
 
     <select id="totalTransAmountByOrderNo" resultType="java.math.BigDecimal">