瀏覽代碼

Merge branch 'feature/0721-tenant' of http://git.dayaedu.com/yonge/cooleshow into feature/0721-tenant

liujc 1 年之前
父節點
當前提交
dcb25d02e4

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherSubmitReq.java

@@ -56,6 +56,9 @@ public class TeacherSubmitReq implements Serializable {
     @ApiModelProperty("是否解绑")
     @ApiModelProperty("是否解绑")
     private Boolean bindTenant;
     private Boolean bindTenant;
 
 
+    @ApiModelProperty("邀请码验证码")
+    private String code;
+
     public Long getUserId() {
     public Long getUserId() {
         return userId;
         return userId;
     }
     }

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

@@ -1,33 +1,23 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.text.MessageFormat;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
-import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetOrderSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.entity.*;
-import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
-import com.yonge.cooleshow.biz.dal.dao.AlbumMusicRelateDao;
-import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
-import com.yonge.cooleshow.biz.dal.dao.MusicSheetPurchaseRecordDao;
-import com.yonge.cooleshow.biz.dal.enums.ChargeTypeEnum;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentMusicAlbumOrderVo;
-import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
@@ -551,6 +541,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         return album;
         return album;
     }
     }
 
 
+
     @Override
     @Override
     public TenantAlbumWrapper.TenantAlbum tenantDetailAlbum(String albumId) {
     public TenantAlbumWrapper.TenantAlbum tenantDetailAlbum(String albumId) {
         Long tenantAlbumId;
         Long tenantAlbumId;

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

@@ -59,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.text.MessageFormat;
 import java.text.MessageFormat;
+import java.text.ParseException;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
@@ -438,6 +439,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             if (!subjectNames.contains(student.getSubjectName())) {
             if (!subjectNames.contains(student.getSubjectName())) {
                 errMsg.add(String.format("第%s行声部不支持", msgRowNo));
                 errMsg.add(String.format("第%s行声部不支持", msgRowNo));
             }
             }
+            try {
+                if(!StringUtils.isEmpty(student.getBirthday())){
+                    LocalDate.parse(student.getBirthday(), DateTimeFormatter.ISO_LOCAL_DATE);
+                }
+            }catch (Exception e) {
+                errMsg.add(String.format("第%s行生日格式错误", msgRowNo));
+            }
 
 
             if (errMsg.size() > 100) {
             if (errMsg.size() > 100) {
                 break;
                 break;
@@ -612,6 +620,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = sysUserMapper.selectById(studentInfo.getId());
         com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = sysUserMapper.selectById(studentInfo.getId());
         sysUser.setGender(studentInfo.getGender());
         sysUser.setGender(studentInfo.getGender());
         sysUser.setAvatar(student.getAvatar());
         sysUser.setAvatar(student.getAvatar());
+        sysUser.setUsername(studentInfo.getName());
         sysUserMapper.updateById(sysUser);
         sysUserMapper.updateById(sysUser);
         return true;
         return true;
     }
     }

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

@@ -139,6 +139,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     @Autowired
     @Autowired
     private TenantAlbumRefMapper tenantAlbumRefMapper;
     private TenantAlbumRefMapper tenantAlbumRefMapper;
 
 
+    @Autowired
+    private SmsCodeService smsCodeService;
+
 
 
     @Override
     @Override
     public TeacherVo detail(Long userId) {
     public TeacherVo detail(Long userId) {
@@ -208,6 +211,14 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     @Transactional(rollbackFor = BizException.class)
     @Transactional(rollbackFor = BizException.class)
     public HttpResponseResult<Boolean> submit(TeacherSubmitReq teacherSubmitReq) throws BizException {
     public HttpResponseResult<Boolean> submit(TeacherSubmitReq teacherSubmitReq) throws BizException {
         if (null == teacherSubmitReq.getUserId()) {
         if (null == teacherSubmitReq.getUserId()) {
+
+            if (StringUtils.isNoneBlank(teacherSubmitReq.getPhone(), teacherSubmitReq.getCode())) {
+                // 验证手机验证码是否正确
+                if (!smsCodeService.verifyValidCode(teacherSubmitReq.getPhone(), teacherSubmitReq.getCode(),
+                        MessageTypeEnum.SMS_VERIFY_CODE_REGISTER.getCode())) {
+                    throw new BizException("验证码错误");
+                }
+            }
             //创建
             //创建
             return doCreate(teacherSubmitReq);
             return doCreate(teacherSubmitReq);
         } else {
         } else {
@@ -407,7 +418,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     private SysUser updateSysUser(TeacherSubmitReq teacherSubmitReq) {
     private SysUser updateSysUser(TeacherSubmitReq teacherSubmitReq) {
         //判断手机号
         //判断手机号
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
-        if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId())) {
+        if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId()) && sysUser.getUserType().contains(ClientEnum.TEACHER.getCode())) {
             throw new BizException("该手机号已经被注册");
             throw new BizException("该手机号已经被注册");
         }
         }
         sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());
         sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());

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

@@ -109,7 +109,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
     private PaymentDivMemberRecordService paymentDivMemberRecordService;
     private PaymentDivMemberRecordService paymentDivMemberRecordService;
 
 
     @Autowired
     @Autowired
-    private StudentService studentService;
+    private TenantAlbumMusicService tenantAlbumMusicService;
 
 
 
 
     @Autowired
     @Autowired
@@ -963,6 +963,23 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
         if (payTypeReq.getClientType().equals(ClientEnum.TENANT)) {
         if (payTypeReq.getClientType().equals(ClientEnum.TENANT)) {
             resp.setPaymentVersion(EPaymentVersion.V2);
             resp.setPaymentVersion(EPaymentVersion.V2);
         }
         }
+        //检查曲目数量
+        if(payTypeReq.getGoodType() == GoodTypeEnum.MUSIC){
+            //机构专辑曲目数
+            List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getTenantAlbumId, payTypeReq.getBizId())
+                    .eq(TenantAlbumMusic::getDelFlag,false).list();
+            List<Long> musicSheetIds = tenantAlbumMusiclist.stream().map(TenantAlbumMusic::getMusicSheetId).collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(musicSheetIds)){
+                Integer count = musicSheetService.lambdaQuery().in(MusicSheet::getId, musicSheetIds)
+                        .eq(MusicSheet::getState, true)
+                        .eq(MusicSheet::getDelFlag, false).count();
+                if(count < 1){
+                    throw new BizException("当前教程不可购买");
+                }
+            }else {
+                throw new BizException("当前教程不可购买");
+            }
+        }
         // 检测商品是属于老师,老师是否设置的结算给机构
         // 检测商品是属于老师,老师是否设置的结算给机构
 
 
         switch (payTypeReq.getGoodType()) {
         switch (payTypeReq.getGoodType()) {

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

@@ -64,7 +64,7 @@
                 )
                 )
             </if>
             </if>
             <if test="client.code == 'STUDENT'">
             <if test="client.code == 'STUDENT'">
-                AND t.tenant_id_ == -1
+                AND t.tenant_id_ = -1
             </if>
             </if>
         </where>
         </where>
 
 

+ 1 - 3
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

@@ -115,10 +115,8 @@ public class TeacherController extends BaseController {
             if (teacher == null) {
             if (teacher == null) {
                 throw new BizException("老师不存在");
                 throw new BizException("老师不存在");
             }
             }
-        } else {
-            // 新增 默认机构为操作人的机构
-            teacherSubmitReq.setTenantId(tenantInfo.getId());
         }
         }
+        teacherSubmitReq.setTenantId(tenantInfo.getId());
         return teacherService.submit(teacherSubmitReq);
         return teacherService.submit(teacherSubmitReq);
     }
     }
 
 

+ 7 - 0
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTeacherController.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -38,6 +39,12 @@ public class OpenTeacherController extends BaseController {
     @PostMapping("/submit")
     @PostMapping("/submit")
     @ApiOperation(value = "新增", notes = "传入teacher")
     @ApiOperation(value = "新增", notes = "传入teacher")
     public HttpResponseResult<Boolean> submit(@Valid @RequestBody TeacherSubmitReq teacherSubmitReq) {
     public HttpResponseResult<Boolean> submit(@Valid @RequestBody TeacherSubmitReq teacherSubmitReq) {
+
+        // 验证码不能为空
+        if (StringUtils.isBlank(teacherSubmitReq.getCode())) {
+            throw new BizException("验证码不能为空");
+        }
+
         Long tenantId = teacherSubmitReq.getTenantId();
         Long tenantId = teacherSubmitReq.getTenantId();
         if (tenantId == null) {
         if (tenantId == null) {
             throw new BizException("未选择机构");
             throw new BizException("未选择机构");