Browse Source

新增修改老师接口修改

weifanli 3 years ago
parent
commit
eee00ff9a3
18 changed files with 184 additions and 64 deletions
  1. 2 2
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java
  2. 1 0
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java
  3. 12 0
      cooleshow-auth/auth-server/src/main/resources/bootstrap-local.yml
  4. 1 1
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthEntryRecordController.java
  5. 13 0
      cooleshow-user/user-admin/src/main/resources/bootstrap-local.yml
  6. 16 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/EmployeeDao.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherSubmitReq.java
  8. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Student.java
  9. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java
  10. 3 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/EmployeeServiceImpl.java
  11. 26 21
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  12. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java
  13. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java
  14. 10 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  15. 6 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  16. 12 0
      cooleshow-user/user-student/src/main/resources/bootstrap-local.yml
  17. 12 0
      cooleshow-user/user-teacher/src/main/resources/bootstrap-local.yml
  18. 46 18
      toolset/utils/src/main/java/com/yonge/toolset/utils/idcard/IdcardInfoExtractor.java

+ 2 - 2
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/client/SysUserFeignService.java

@@ -43,6 +43,6 @@ public interface SysUserFeignService {
 	@PostMapping(value = "exit/{clientId}/{phone}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
 	public HttpResponseResult<String> exitByPhone(@PathVariable("clientId") String clientId, @PathVariable("phone") String phone);
 
-	@PostMapping(value = "user/realNameAuth", consumes = MediaType.APPLICATION_JSON_VALUE)
-	public HttpResponseResult<IdcardInfoExtractor> realNameAuth(RealnameAuthReq realNameAuthDto);
+	@PostMapping(value = "user/realNameAuth")
+	public HttpResponseResult<IdcardInfoExtractor> realNameAuth(@RequestBody RealnameAuthReq realNameAuthDto);
 }

+ 1 - 0
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/web/controller/UserController.java

@@ -441,6 +441,7 @@ public class UserController extends BaseController {
         }
         //通过身份证号获取身份信息
         IdcardInfoExtractor idcardInfoExtractor = new IdcardInfoExtractor(realNameAuthDto.getIdCardNo(), validatedAllIdcard);
+        //todo 通过环境,不做实名判断
         boolean verify = realnameAuthenticationPlugin.verify(realNameAuthDto.getRealName(), realNameAuthDto.getIdCardNo());
         if (!verify) {
             return failed("未通过实名认证");

+ 12 - 0
cooleshow-auth/auth-server/src/main/resources/bootstrap-local.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 47.114.1.200:8848
+        namespace: a71fb65c-d5d9-42c3-bbde-3586d19178f0
+        group: DEFAULT_GROUP
+        prefix: auth
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherAuthEntryRecordController.java

@@ -61,7 +61,7 @@ public class TeacherAuthEntryRecordController extends BaseController {
      * 删除
      */
     @PostMapping("/remove")
-    @ApiOperation(value = "逻辑删除", notes = "传入ids")
+    @ApiOperation(value = "删除", notes = "传入ids")
     public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
         if (StringUtil.isEmpty(ids)) {
             return failed("参数不能为空");

+ 13 - 0
cooleshow-user/user-admin/src/main/resources/bootstrap-local.yml

@@ -0,0 +1,13 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 47.114.1.200:8848
+        namespace: a71fb65c-d5d9-42c3-bbde-3586d19178f0
+        group: DEFAULT_GROUP
+        prefix: admin
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true
+

+ 16 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/EmployeeDao.java

@@ -38,7 +38,7 @@ public interface EmployeeDao extends BaseDAO<Long, Employee> {
      * @updateTime 2022/3/25 11:30
      * @return: long
      */
-    long insertSysUser(SysUser user);
+    int insertSysUser(SysUser user);
 
     /***
      * 修改用户表
@@ -71,8 +71,23 @@ public interface EmployeeDao extends BaseDAO<Long, Employee> {
      * @updateTime 2022/3/25 14:21
      * @return: com.yonge.cooleshow.auth.api.entity.SysUser
      */
+    SysUser querySysUserByPhoneAndLock(@Param("phone") String phone);
+    /**
+     * 根据手机号查询对象
+     *
+     * @param phone
+     * @return
+     */
     SysUser querySysUserByPhone(@Param("phone") String phone);
     /**
+     * 根据手机号查询对象
+     *
+     * @param id
+     * @return
+     */
+    SysUser querySysUserById(@Param("id") Long id);
+
+    /**
      * 获取用户权限列表
      *
      * @param userId
@@ -87,13 +102,6 @@ public interface EmployeeDao extends BaseDAO<Long, Employee> {
      */
     int updateUserDemissionDate(@Param("userID") Long userID);
 
-    /**
-     * 根据手机号查询对象
-     *
-     * @param phone
-     * @return
-     */
-    SysUser queryByPhone(String phone);
 
 
 

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

@@ -32,7 +32,7 @@ public class TeacherSubmitReq implements Serializable {
     private String idCardNo;
 
     @NotBlank(message = "老师类型不能为空")
-    @ApiModelProperty(value = "老师类型 tourist 游客 entry 认证老师 musician 音乐人 ", required = true)
+    @ApiModelProperty(value = "老师类型 TOURIST 游客 ENTRY 认证老师 MUSICIAN 音乐人 ", required = true)
     private String teacherType;
 
     @NotBlank(message = "专业技能不能为空")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Student.java

@@ -16,7 +16,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 @ApiModel(value = "Student对象", description = "学生表")
 public class Student implements Serializable {
 	private static final long serialVersionUID = 1L;
-    @TableId(value = "user_id_", type = IdType.AUTO)
+    @TableId(value = "user_id_")
     private Long userId;
     /** 
     * 学员声部 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/Teacher.java

@@ -30,7 +30,7 @@ public class Teacher implements Serializable {
     * 对应user表用户编号 
     */
     @ApiModelProperty("对应user表用户编号 ")
-    @TableId(value = "user_id_", type = IdType.AUTO)
+    @TableId(value = "user_id_")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long userId;
     /** 
@@ -60,7 +60,7 @@ public class Teacher implements Serializable {
     /** 
     * 专业技能(支持多个,用逗号分隔),对应科目表编号 
     */
-    @ApiModelProperty("专业技能(支持多个,用逗号分隔),对应科目表编号 ")
+    @ApiModelProperty("声部id(支持多个,用逗号分隔) ")
 	@TableField(value = "subject_id_")
     private String subjectId;
     /**

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

@@ -55,12 +55,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Long, Employee> impleme
         //初始密码,手机号后6位
         String password = sysUser.getPhone().substring(sysUser.getPhone().length() - 6);
         sysUser.setPassword(new BCryptPasswordEncoder().encode(password));
-        Long userId = employeeDao.insertSysUser(sysUser);
-
+        employeeDao.insertSysUser(sysUser);
         //新增角色
-        employeeDao.batchAddEmployeeRole(userId,employee.getRoleIds());
+        employeeDao.batchAddEmployeeRole(sysUser.getId(),employee.getRoleIds());
         //新增员工表
-        employee.setUserId(userId);
+        employee.setUserId(sysUser.getId());
         employeeDao.insert(employee);
     }
 

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

@@ -93,7 +93,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     @Override
     public HttpResponseResult<TeacherHomeVo> queryUserInfo(SysUser user) {
-        Teacher teacher = getById(user.getId());
+        TeacherVo teacher = detail(user.getId());
         if (null == teacher) {
             return HttpResponseResult.failed("未查询到老师信息");
         }
@@ -105,9 +105,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD_TEACHER);
         }
         teacherHomeVo.setHeardUrl(avatar);
-
         teacherHomeVo.setUsername(user.getUsername());
         teacherHomeVo.setLiveFlag(teacher.getLiveFlag());
+        teacherHomeVo.setSubjectId(teacher.getSubjectId());
 
         TeacherAuthEntryRecord entryRecord = entryRecordService.getLastRecordByUserId(user.getId());
         if (null == entryRecord) {
@@ -207,7 +207,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
         //判断手机号
-        SysUser sysUser = employeeDao.queryByPhone(teacherSubmitReq.getPhone());
+        SysUser sysUser = employeeDao.querySysUserByPhoneAndLock(teacherSubmitReq.getPhone());
         if (null != sysUser) {
             return HttpResponseResult.failed("该手机号已经被注册");
         }
@@ -218,13 +218,13 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         String password = sysUser.getPhone().substring(sysUser.getPhone().length() - 6);
         sysUser.setPassword(new BCryptPasswordEncoder().encode(password));
         //插入
-        Long id = employeeDao.insertSysUser(sysUser);
-        if (null == id) {
+        int num = employeeDao.insertSysUser(sysUser);
+        if (num <= 0) {
             throw new BizException("插入用户信息失败");
         }
         //插入老师表
         Teacher teacher = new Teacher();
-        teacher.setUserId(id);
+        teacher.setUserId(sysUser.getId());
         teacher = getTeacherDetil(teacher, teacherSubmitReq);
         baseMapper.insert(teacher);
         return HttpResponseResult.succeed(true);
@@ -232,20 +232,21 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
     private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
         //判断手机号
-        SysUser sysUser = employeeDao.queryByPhone(teacherSubmitReq.getPhone());
+        SysUser sysUser = employeeDao.querySysUserByPhoneAndLock(teacherSubmitReq.getPhone());
         if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId())) {
             return HttpResponseResult.failed("该手机号已经被注册");
         }
+        sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());
+        if (null == sysUser) {
+            return HttpResponseResult.failed("未找到用户");
+        }
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
 
         Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
         teacher = getTeacherDetil(teacher, teacherSubmitReq);
         baseMapper.updateById(teacher);
 
-        Integer num = employeeDao.updateSysUser(sysUser);
-        if (num <= 0) {
-            throw new BizException("更新用户信息失败");
-        }
+        employeeDao.updateSysUser(sysUser);
         return HttpResponseResult.succeed(true);
     }
 
@@ -260,22 +261,26 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         realNameAuthDto.setIdCardNo(teacherSubmitReq.getIdCardNo());
         realNameAuthDto.setRealName(teacherSubmitReq.getRealName());
         realNameAuthDto.setSave(false);
-        HttpResponseResult<IdcardInfoExtractor> idcardInfoExtractorResult = userFeignService.realNameAuth(realNameAuthDto);
-        if (!idcardInfoExtractorResult.getStatus() || null == idcardInfoExtractorResult.getData()) {
-            throw new BizException("实名认证未通过");
+
+        if ((!sysUser.getIdCardNo().equals(teacherSubmitReq.getIdCardNo())
+                || !sysUser.getRealName().equals(sysUser.getRealName()))) {
+            HttpResponseResult<IdcardInfoExtractor> idcardInfoExtractorResult = userFeignService.realNameAuth(realNameAuthDto);
+            if (!idcardInfoExtractorResult.getStatus() || null == idcardInfoExtractorResult.getData()) {
+                throw new BizException("实名认证未通过");
+            }
+            //身份证解析信息
+            IdcardInfoExtractor idcardInfo = idcardInfoExtractorResult.getData();
+            sysUser.setGender(idcardInfo.getGender());
+            sysUser.setBirthdate(idcardInfo.getBirthday());
+            sysUser.setRealName(teacherSubmitReq.getRealName());
+            sysUser.setIdCardNo(teacherSubmitReq.getIdCardNo());
         }
+
         //插入用户表
         sysUser = new SysUser();
         String phone = teacherSubmitReq.getPhone();
         sysUser.setUsername(teacherSubmitReq.getUsername());
         sysUser.setPhone(phone);
-
-        //身份证解析信息
-        IdcardInfoExtractor idcardInfo = idcardInfoExtractorResult.getData();
-        sysUser.setGender(idcardInfo.getGender());
-        sysUser.setBirthdate(idcardInfo.getBirthday());
-        sysUser.setRealName(teacherSubmitReq.getRealName());
-        sysUser.setIdCardNo(teacherSubmitReq.getIdCardNo());
         return sysUser;
     }
 

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java

@@ -38,6 +38,8 @@ public class TeacherHomeVo implements Serializable {
     private AuthStatusEnum musicianAuthStatus;
     @ApiModelProperty("是否有直播权限 0 否 1 是")
     private YesOrNoEnum liveFlag;
+    @ApiModelProperty("专业技能(支持多个,用逗号分隔),对应科目表编号 ")
+    private String subjectId;
 
     public Long getUserId() {
         return userId;
@@ -118,4 +120,12 @@ public class TeacherHomeVo implements Serializable {
     public void setLiveFlag(YesOrNoEnum liveFlag) {
         this.liveFlag = liveFlag;
     }
+
+    public String getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(String subjectId) {
+        this.subjectId = subjectId;
+    }
 }

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

@@ -41,6 +41,8 @@ public class TeacherVo extends Teacher {
     private String verifyUser;
     @ApiModelProperty(value = "0-正常,9-锁定")
     private Integer lockFlag;
+    @ApiModelProperty(value = "声部名称(支持多个,用逗号分隔) ")
+    private String subjectName;
     @ApiModelProperty(value = "老师风采视频")
     private List<TeacherStyleVideo> styleVideo;
 
@@ -139,4 +141,12 @@ public class TeacherVo extends Teacher {
     public void setLockFlag(Integer lockFlag) {
         this.lockFlag = lockFlag;
     }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
 }

+ 10 - 4
cooleshow-user/user-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -244,10 +244,18 @@
         </foreach>
     </insert>
 
-    <select id="querySysUserByPhone" resultMap="SysUser">
+    <select id="querySysUserByPhoneAndLock" resultMap="SysUser">
 		select * from sys_user where phone_ = #{phone} OR username_ = #{phone} LIMIT 1 FOR UPDATE
 	</select>
 
+    <select id="querySysUserByPhone" resultMap="SysUser">
+		select * from sys_user where phone_ = #{phone} OR username_ = #{phone}
+	</select>
+
+    <select id="querySysUserById" resultMap="SysUser">
+		select * from sys_user where id_ = #{id}
+	</select>
+
     <select id="queryUserRole" resultType="java.lang.Long">
         SELECT sur.role_id_ FROM sys_user_role sur WHERE sur.user_id_ = #{userId}
     </select>
@@ -281,9 +289,7 @@
                 #{updateTime}, #{delFlag}, #{organId}, #{tenantId});
     </insert>
 
-    <select id="queryByPhone" resultMap="SysUser">
-		select * from sys_user where phone_ = #{phone} OR username_ = #{phone}
-	</select>
+
 
     <update id="updatePasswordReq">
         UPDATE sys_user SET password_ = #{password} WHERE id_ = #{userID}

+ 6 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -113,14 +113,18 @@
             (case when isnull(u.id_card_no_) then 0 else 1 end) as isReal,
             u.real_name_ as realName,
             id_card_no_ as idCardNo,
-            (case when isnull(b.user_id_) then 0 else 1 end) as isBank
+            (case when isnull(b.user_id_) then 0 else 1 end) as isBank,
+            (
+                SELECT GROUP_CONCAT(name_) FROM subject WHERE FIND_IN_SET(id_,t.subject_id_)
+            ) as subjectName,
         FROM teacher t
         left join sys_user u on t.user_id_ = u.id_
         left join (
-            select distinct user_id_ from user_bank_card where del_flag_ = 0
+            select distinct user_id_ from user_bank_card where del_flag_ = 0 and user_id_ = #{userId}
         ) b on t.user_id_ = b.user_id_
         where t.user_id_ = #{userId}
     </select>
+
     <select id="querySubject" resultMap="com.yonge.cooleshow.biz.dal.dao.SubjectDao.Subject">
         SELECT s.* FROM teacher t
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)

+ 12 - 0
cooleshow-user/user-student/src/main/resources/bootstrap-local.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 47.114.1.200:8848
+        namespace: a71fb65c-d5d9-42c3-bbde-3586d19178f0
+        group: DEFAULT_GROUP
+        prefix: student
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true

+ 12 - 0
cooleshow-user/user-teacher/src/main/resources/bootstrap-local.yml

@@ -0,0 +1,12 @@
+spring:
+  cloud:
+    nacos:
+      config:
+        server-addr: 47.114.1.200:8848
+        namespace: a71fb65c-d5d9-42c3-bbde-3586d19178f0
+        group: DEFAULT_GROUP
+        prefix: teacher
+        file-extension: yaml
+        refresh:
+          enabled: true
+        enabled: true

+ 46 - 18
toolset/utils/src/main/java/com/yonge/toolset/utils/idcard/IdcardInfoExtractor.java

@@ -1,15 +1,11 @@
 package com.yonge.toolset.utils.idcard;
 
-import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.Properties;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.yonge.toolset.utils.exception.UtilException;
-
 public class IdcardInfoExtractor {
 	// 省份
 	private String province;
@@ -47,6 +43,8 @@ public class IdcardInfoExtractor {
 
 	private IdcardValidator validator = null;
 
+	public IdcardInfoExtractor(){}
+
 	/**  
 	 * 通过构造方法初始化各个成员属性  
 	 */
@@ -90,42 +88,76 @@ public class IdcardInfoExtractor {
 
 	}
 
-	/**  
-	 * @return the province  
-	 */
 	public String getProvince() {
 		return province;
 	}
 
+	public void setProvince(String province) {
+		this.province = province;
+	}
+
 	public String getProvinceCode() {
 		return provinceCode;
 	}
 
+	public void setProvinceCode(String provinceCode) {
+		this.provinceCode = provinceCode;
+	}
+
 	public String getCityCode() {
 		return cityCode;
 	}
 
+	public void setCityCode(String cityCode) {
+		this.cityCode = cityCode;
+	}
+
+	public String getCity() {
+		return city;
+	}
+
+	public void setCity(String city) {
+		this.city = city;
+	}
+
 	public String getRegionCode() {
 		return regionCode;
 	}
 
+	public void setRegionCode(String regionCode) {
+		this.regionCode = regionCode;
+	}
+
+	public String getRegion() {
+		return region;
+	}
+
+	public void setRegion(String region) {
+		this.region = region;
+	}
+
 	public int getGender() {
 		return gender;
 	}
 
-	/**  
-	 * @return the birthday  
-	 */
+	public void setGender(int gender) {
+		this.gender = gender;
+	}
+
 	public Date getBirthday() {
 		return birthday;
 	}
 
-	public String getCity() {
-		return city;
+	public void setBirthday(Date birthday) {
+		this.birthday = birthday;
 	}
 
-	public String getRegion() {
-		return region;
+	public IdcardValidator getValidator() {
+		return validator;
+	}
+
+	public void setValidator(IdcardValidator validator) {
+		this.validator = validator;
 	}
 
 	@Override
@@ -133,9 +165,5 @@ public class IdcardInfoExtractor {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
-	/*public static void main(String[] args) {
-		IdcardInfoExtractor extractor = new IdcardInfoExtractor("421125198708123013", true);
-		System.out.println(extractor);
-	}*/
 
 }