Просмотр исходного кода

Merge branch 'online' of http://git.dayaedu.com/yonge/cooleshow into courseware_search_1211

zouxuan 6 месяцев назад
Родитель
Сommit
5dc49056e2

+ 90 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetCbsController.java

@@ -7,14 +7,13 @@ import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheetAuthRecord;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
-import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
-import com.yonge.cooleshow.biz.dal.service.InstrumentService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper;
@@ -66,6 +65,11 @@ public class MusicSheetCbsController extends BaseController {
     @Autowired
     private InstrumentService instrumentService;
 
+    @Autowired
+    private MusicSheetDao musicSheetDao;
+
+    @Resource
+    private MusicSheetAuthRecordService musicSheetAuthRecordService;
 
     /**
      * 查询单条
@@ -75,6 +79,88 @@ public class MusicSheetCbsController extends BaseController {
      */
     @ApiOperation(value = "查询内容平台数据")
     @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", dataType = "long")
+    })
+    @GetMapping("/cbsDetailAuth/{id}")
+    public R<MusicSheetVo.MusicSheetDetail> cbsDetailAuth(@PathVariable("id") String id) {
+
+        MusicSheetVo.MusicSheetDetail musicSheetDetail = null;
+        MusicSheetDetailVo detail = musicSheetDao.detail(Long.parseLong(id));
+        if (detail == null) {
+            MusicSheetDetailVo result = musicSheetAuthRecordService.auditDetail(id);
+            if (result != null) {
+                detail = result;
+                if(StringUtils.isNotEmpty(result.getMusicSheetJson())){
+                    // 审核中数据
+                    musicSheetDetail = JSON.parseObject(result.getMusicSheetJson(), MusicSheetVo.MusicSheetDetail.class);
+                }else {
+                    MusicSheetAuthRecord authRecord = musicSheetAuthRecordService.getById(id);
+                    detail = musicSheetDao.detail(authRecord.getMusicSheetId());
+                    if(detail == null){
+                        throw new BizException("未找到曲目信息");
+                    }
+                    id = authRecord.getMusicSheetId().toString();
+                }
+            }
+            if(result == null){
+                throw new BizException("未找到曲目信息");
+            }
+
+        }
+
+        if (musicSheetDetail == null) {
+            detail = musicSheetService.getCbsDetail(Long.parseLong(id),SourceTypeEnum.PLATFORM);
+
+            CbsMusicSheetWrapper.MusicSheet cbsMusicSheet = musicSheetService.cbsDetail(detail.getCbsMusicSheetId());
+            cbsMusicSheet.setBizId(Long.parseLong(id));
+            musicSheetDetail = JSON.parseObject(JSON.toJSONString(cbsMusicSheet), MusicSheetVo.MusicSheetDetail.class);
+        }
+
+        // 设置曲目付费类型
+        musicSheetDetail.setPaymentType(detail.getPaymentType());
+        // 设置业务端曲目分类
+        musicSheetDetail.setScoreType(detail.getScoreType());
+        musicSheetDetail.setIsConvertibleScore(detail.getNotation() ==YesOrNoEnum.YES);
+        musicSheetDetail.setPlay(detail.getPlay());
+        musicSheetDetail.setBuyed(detail.getBuyed());
+        musicSheetDetail.setMusicPrice(detail.getMusicPrice());
+
+
+    // 如果是合奏 并且乐器ID = 2268
+        musicSheetDetail.setSpecialPercussionFlag(false);
+        if ("2268".equals(musicSheetDetail.getMusicalInstrumentIds()) && musicSheetDetail.getMusicSheetType() == EMusicSheetType.CONCERT) {
+            musicSheetDetail.setSpecialPercussionFlag(true);
+        }
+
+        // 设置乐器信息
+        if (StringUtils.isNotBlank(musicSheetDetail.getMusicalInstrumentIds())) {
+            List<Long> instrumentIds = Arrays.stream(musicSheetDetail.getMusicalInstrumentIds().split(","))
+                    .map(Long::parseLong).collect(Collectors.toList());
+
+            if (CollectionUtils.isNotEmpty(instrumentIds) && CollectionUtils.isNotEmpty(musicSheetDetail.getMusicalInstruments())) {
+                Map<Long, InstrumentWrapper.Instrument> instrumentMap = instrumentService.getMapByIds(instrumentIds);
+                for (CbsMusicSheetWrapper.MusicalInstrument musicalInstrument : musicSheetDetail.getMusicalInstruments()) {
+                    InstrumentWrapper.Instrument instrument = instrumentMap.get(musicalInstrument.getId().longValue());
+                    if (instrument != null) {
+                        musicalInstrument.setOrientation(instrument.getOrientation());
+                    }
+
+                }
+            }
+        }
+        return R.from(musicSheetDetail);
+
+    }
+
+
+        /**
+         * 查询单条
+         *
+         * @param id 详情ID
+         * @return R<MusicSheetVo.MusicSheet>
+         */
+    @ApiOperation(value = "查询内容平台数据")
+    @ApiImplicitParams({
         @ApiImplicitParam(name = "id", value = "id", dataType = "long")
     })
     @GetMapping("/cbsDetail/{id}")

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

@@ -77,6 +77,8 @@ public interface MusicSheetService extends IService<MusicSheet> {
      */
     MusicSheetShareVo shareMusicSheet(SysUser sysUser);
 
+    MusicSheetDetailVo getCbsDetail(Long id, SourceTypeEnum sourceTypeEnum);
+
     MusicSheetDetailVo getAuditDetail(Long id);
 
     /**

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

@@ -414,26 +414,28 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                     .list();
             Map<Long, List<CourseScheduleStudentPayment>> map = list.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseGroupId));
             //获取所有用户编号
-
             List<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
             Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userMap = sysUserService.getMapByIds(userIds);
             for (CourseGroupWrapper.TeacherCourseGroupDto e : records) {
                 e.setSubjectName(subjectMap.get(e.getSubjectId()));
                 if(StringUtils.equals(query.getCourseType(),"PIANO_ROOM_CLASS")){
                     List<CourseScheduleStudentPayment> studentPayments = map.get(e.getCourseGroupId());
-                    e.setStudentNum(studentPayments.size());
-                    StringBuffer studentName = new StringBuffer();
-                    for (int i = 0; i < studentPayments.size(); i++) {
-                        if(studentName.length() > 0){
-                            studentName.append(",");
-                        }
-                        studentName.append(userMap.get(studentPayments.get(i).getUserId()).getUsername());
-                        if (i > 0) {
-                            studentName.append("等").append(userIds.size()).append("人");
-                            break;
+                    if(CollectionUtils.isNotEmpty(studentPayments)){
+                        List<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
+                        e.setStudentNum(studentIds.size());
+                        StringBuffer studentName = new StringBuffer();
+                        for (int i = 0; i < studentIds.size(); i++) {
+                            if(studentName.length() > 0){
+                                studentName.append(",");
+                            }
+                            studentName.append(userMap.get(studentIds.get(i)).getUsername());
+                            if (i > 0) {
+                                studentName.append("等").append(studentIds.size()).append("人");
+                                break;
+                            }
                         }
+                        e.setStudentName(studentName.toString());
                     }
-                    e.setStudentName(studentName.toString());
                 }else {
                     CourseScheduleStudentPayment studentPayment = map.get(e.getCourseGroupId()).get(0);
                     com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = userMap.get(studentPayment.getUserId());

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

@@ -394,7 +394,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return musicSheetShareVo;
     }
 
-    public MusicSheetDetailVo getCbsDetail(Long id,SourceTypeEnum sourceTypeEnum) {
+    @Override
+    public MusicSheetDetailVo getCbsDetail(Long id, SourceTypeEnum sourceTypeEnum) {
         MusicSheet musicSheet = this.baseMapper.get(id);
         if (musicSheet == null) {
             throw new BizException("未找到曲目信息");

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

@@ -293,6 +293,14 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
 
                 // 支付成功
                 if (PaymentStatus.SUCCESSED == paymentResp.getPaymentStatus()) {
+
+                    // 三方支付费用
+
+                    // 更新交易时间和服务费用
+                    paymentOrder.payTime(Optional.ofNullable(paymentResp.getTriggerTime()).orElse(paymentOrder.getPayTime()))
+                            .paymentChannelFee(paymentResp.getServiceCharge())
+                            .setTransNo(paymentResp.getTransNo());
+                    userPaymentOrderService.updateById(paymentOrder);
                     // 根据支付回调消息,更新订单状态
                     refundOnly("订单已超时,金额原路退回", paymentOrder.getOrderNo());
                 }
@@ -442,7 +450,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 UserPaymentOrderWrapper.UserPaymentOrder order = UserPaymentOrderWrapper.UserPaymentOrder
                     .builder()
                     .id(paymentOrder.getId())
-                    .status(EPaymentStatus.CLOSED)
+//                    .status(EPaymentStatus.CLOSED)
 //                    .errorMsg(errorMessage)
                     .updateTime(DateTime.now().toDate())
                     .build();
@@ -1123,7 +1131,7 @@ DISCOUNT("畅学卡")
         try {
 
             // 已产生三方交易流水号,先判断三方订单支付状态若在支付中,则重复返回相同支付配置参数;避免用户重复支付
-            if (StringUtils.isNotBlank(userPaymentOrder.getTransNo())) {
+            if (StringUtils.isNotBlank(userPaymentOrder.getTransNo()) || EPaymentStatus.PAYING == userPaymentOrder.getStatus()) {
 
                 // 获取缓存配置信息
                 String paymentConfig = redisCacheService.getUserPaymentConfig(reqConfig.getUserId(), userPaymentOrder.getOrderNo());
@@ -1162,6 +1170,7 @@ DISCOUNT("畅学卡")
                 .merOrderNo(reqConfig.getMerOrderNo())
                 .code(reqConfig.getCode());
 
+            config.setPaymentVendor(userPaymentOrder.getPaymentVendor());
             config.setIp(reqConfig.getIp());
             // 重新格式化设置价格
             config.setPrice(config.getPrice().setScale(2, RoundingMode.HALF_UP));
@@ -1239,7 +1248,7 @@ DISCOUNT("畅学卡")
 
             // 下单未拉起三方支付,直接关闭
             if (StringUtils.isEmpty(paymentOrder.getTransNo())
-                    && (EPaymentStatus.WAIT_PAY == paymentOrder.getStatus()||EPaymentStatus.PAYING == paymentOrder.getStatus())) {
+                    && (EPaymentStatus.WAIT_PAY == paymentOrder.getStatus())) {
 
                 closeWaitOrder(paymentOrder);
 
@@ -1659,8 +1668,11 @@ DISCOUNT("畅学卡")
         if (Objects.isNull(detail)) {
             throw new BizException("订单信息不存在");
         }
+        List<UserOrderDetailVo> collect = detail.getOrderDetailList();
+        if (orderDetailIds != null) {
+            collect = detail.getOrderDetailList().stream().filter(o -> orderDetailIds.contains(o.getId())).collect(Collectors.toList());
+        }
 
-        List<UserOrderDetailVo> collect = detail.getOrderDetailList().stream().filter(o -> orderDetailIds.contains(o.getId())).collect(Collectors.toList());
         BigDecimal reduce = collect.stream().map(o -> o.getActualPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
         // 提交退款申请记录
         UserOrderRefund userRefundOrder = new UserOrderRefund();