Преглед изворни кода

Merge branch 'feature/0721-tenant' into develop

liujc пре 1 година
родитељ
комит
8b20ee5744

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

@@ -6,7 +6,6 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantActivationCodeWrapper;
 import com.yonge.cooleshow.biz.dal.entity.TenantActivationCode;
 import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -76,4 +75,6 @@ public interface TenantActivationCodeService extends IService<TenantActivationCo
                           Long tenantId, Long userId, Long tenantAlbumPurchaseId);
 
     void activeById(String id, Long userId);
+
+    void resend(String code, Long userId, Long tenantId, Long tenantAlbumPurchaseId);
 }

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

@@ -1333,7 +1333,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 couponInfoService.updateUserOrderCouponInfo(CouponOrderWrapper.builder().orderNo(order.getOrderNo()).reset(true).build());
             } catch (Exception e) {
                 log.warn("直播课成课失败退款 退款失败,退款订单号 {}", order);
-                log.error("直播课成课失败退款 退款失败", e.getCause());
+                log.error("直播课成课失败退款 退款失败", e);
             }
         }
     }

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

@@ -141,6 +141,10 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
     @Autowired
     private RedisCacheService redisCacheService;
 
+    @Autowired
+    private StudentService studentService;
+
+
     /**
      * 查询详情
      *
@@ -339,12 +343,15 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
             serviceFeeAmount = actualPrice;
         }
 
-        // 消息通知
-//        CompletableFuture.runAsync(() -> {
-//                    musicSheetService.sendBuyMessage(userPaymentOrder.getMerchId(), userPaymentOrder.getUserId(),
-//                            userPaymentOrder.getBizId(), userPaymentOrder.getOrderClient(), userPaymentOrder.getOrderType());
-//                }
-//        );
+        // 平台学生 发送推送
+        if(checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient())) {
+            // 消息通知
+            CompletableFuture.runAsync(() -> {
+                        musicSheetService.sendBuyMessage(userPaymentOrder.getMerchId(), userPaymentOrder.getUserId(),
+                                userPaymentOrder.getBizId(), userPaymentOrder.getOrderClient(), userPaymentOrder.getOrderType());
+                    }
+            );
+        }
 
 
         // 计算分润
@@ -352,6 +359,19 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
     }
 
+    private boolean checkSendMessage(Long userId, ClientEnum orderClient) {
+        if (orderClient == null) {
+            return false;
+        }
+        if (orderClient.equals(ClientEnum.STUDENT)) {
+            Student student = studentService.getById(userId);
+            if (student == null) {
+                return false;
+            } else return student.getTenantId() == -1;
+        }
+        return true;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void practiceCourse(UserOrderDetailVo userPaymentOrder) {
@@ -462,7 +482,11 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
 
         //消息推送
         try {
-//            courseScheduleService.practiceSend(paymentList.get(0).getTeacherId(), userPaymentOrder.getUserId(), paymentList.size() + "", orderNo);
+
+            // 平台学生 发送推送
+            if(checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient())) {
+                courseScheduleService.practiceSend(paymentList.get(0).getTeacherId(), userPaymentOrder.getUserId(), paymentList.size() + "", orderNo);
+            }
         } catch (Exception e) {
             log.error("陪练课消息推送失败");
         }
@@ -587,7 +611,12 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         }
         log.info("buyLiveCourseSuccess ok");
         //课程购买成功后进行消息推送
-//        courseGroupService.buyLiveSendMessage(studentPayment, courseGroup);
+
+        // 平台学生 发送推送
+        if(checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient())) {
+            courseGroupService.buyLiveSendMessage(studentPayment, courseGroup);
+        }
+
     }
 
     @Override
@@ -665,7 +694,10 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
 
 
-//        videoLessonPurchaseRecordService.videoSend(lessonGroup.getTeacherId(), purchaseRecord.getStudentId(), lessonGroup);
+        // 平台学生 发送推送
+        if(checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient())) {
+            videoLessonPurchaseRecordService.videoSend(lessonGroup.getTeacherId(), purchaseRecord.getStudentId(), lessonGroup);
+        }
 
         // 赠品曲目、专辑插入用户曲目购买记录表
         List<CourseRelationMusicAlbum> musicAlbums = courseRelationMusicAlbumService.lambdaQuery()
@@ -742,7 +774,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         // 计算分润
         teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
 
-        memberPriceSettingsService.orderSuccess(userPaymentOrder,false);
+        memberPriceSettingsService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
 
         saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
     }
@@ -768,7 +800,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         teacherAmount(userPaymentOrder, tenantdivMap, teacherMap, serviceFeeAmount);
 
 
-        activityPlanService.orderSuccess(userPaymentOrder,false);
+        activityPlanService.orderSuccess(userPaymentOrder,checkSendMessage(userPaymentOrder.getUserId(),userPaymentOrder.getOrderClient()));
 
         saveData(userPaymentOrder, tenantdivMap, teacherMap, bizMap);
     }

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

@@ -276,6 +276,31 @@ public class TenantActivationCodeServiceImpl extends ServiceImpl<TenantActivatio
 
     }
 
+    @Override
+    public void resend(String code, Long userId, Long tenantId, Long tenantAlbumPurchaseId) {
+        // 查询激活码信息
+        TenantActivationCode one = this.lambdaQuery()
+                .eq(TenantActivationCode::getActivationCode, code)
+                .eq(TenantActivationCode::getTenantId, tenantId)
+                .eq(TenantActivationCode::getTenantAlbumPurchaseId, tenantAlbumPurchaseId)
+                .eq(TenantActivationCode::getSendStatus, EActivationCode.SEND)
+                .last("limit 1")
+                .one();
+        if(one == null) {
+            throw new BizException("当前激活码不可以重发");
+        }
+        if (Boolean.TRUE.equals(one.getActivationStatus())) {
+            throw new BizException("激活码已经被使用");
+        }
+
+        SysUser sysUser = sysUserMapper.selectById(userId);
+        if (sysUser == null) {
+            throw new BizException("用户不存在");
+        }
+        one.setActivationPhone(sysUser.getPhone());
+        this.updateById(one);
+    }
+
 
     /**
      * 添加用户机构专辑激活记录

+ 9 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java

@@ -138,6 +138,15 @@ public class TenantActivationCodeController extends BaseController {
         return succeed();
     }
 
+
+    @ApiOperation(value = "激活码重发", notes = "机构激活码- 传入 TenantActivationCodeVo.TenantActivationCodeSend")
+    @PostMapping("/resend")
+    public HttpResponseResult<Boolean> resend(@Validated @RequestBody TenantActivationCodeVo.TenantActivationCodeResend send) {
+        TenantInfo tenantInfo = getTenantInfo();
+        tenantActivationCodeService.resend(send.getCode(),send.getUserId(),tenantInfo.getId(),send.getTenantAlbumPurchaseId());
+        return succeed();
+    }
+
     @ApiOperation(value = "激活码发放取消", notes = "传入 激活码的ID")
     @PostMapping("/sendCancel")
     public HttpResponseResult<Boolean> sendCancel(@RequestParam("id") Long id) {

+ 21 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/vo/TenantActivationCodeVo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.util.ArrayList;
@@ -34,6 +35,26 @@ public class TenantActivationCodeVo {
         private List<Long> studentIdList = new ArrayList<>();
     }
 
+
+    @Data
+    @ApiModel(" TenantActivationCodeSend-机构激活码重发")
+    public static class TenantActivationCodeResend {
+
+
+        @ApiModelProperty("专辑购买记录的ID")
+        @NotNull(message = "专辑购买记录的ID不能为空")
+        private Long tenantAlbumPurchaseId;
+
+        @ApiModelProperty("激活码")
+        @NotBlank(message = "激活码不能为空")
+        private String code;
+
+        @ApiModelProperty("用户ID")
+        @NotNull(message = "用户ID不能为空")
+        private Long userId;
+    }
+
+
     @Data
     @ApiModel(" TenantActivationCode-机构激活码")
     public static class TenantActivationCode {