瀏覽代碼

1.自验证问题修改

yuanliang 1 年之前
父節點
當前提交
5341d00175
共有 17 個文件被更改,包括 192 次插入35 次删除
  1. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java
  2. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ImGroupType.java
  3. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java
  4. 4 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java
  5. 24 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  6. 38 10
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  7. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  8. 17 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java
  9. 4 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/teacher/TeacherWrapper.java
  10. 6 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml
  11. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  12. 7 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java
  13. 3 2
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java
  14. 11 13
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java
  15. 3 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantActivationCodeController.java
  16. 2 1
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumController.java
  17. 52 0
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenTeacherController.java

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroup.java

@@ -7,10 +7,15 @@ import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
 import com.yonge.toolset.base.enums.BaseEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 即时通讯群组(ImGroup)表实体类
@@ -18,6 +23,7 @@ import java.util.Date;
  * @author zx
  * @since 2022-03-22 10:45:57
  */
+@Data
 @ApiModel(value = "im_group-即时通讯群组")
 public class ImGroup implements Serializable {
     @TableId(value = "id_")
@@ -70,6 +76,9 @@ public class ImGroup implements Serializable {
     @ApiModelProperty(value = "课程组id")
     private Long courseGroupId;
 
+
+    private Set<Long> studentIdList = new HashSet<>();
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/ImGroupType.java

@@ -5,7 +5,8 @@ import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum ImGroupType implements BaseEnum<String, ImGroupType> {
     FAN("粉丝群"),
-    COURSE("课程群");
+    COURSE("课程群"),
+    ORG("机构群");
     @EnumValue
     private String code;
     private String msg;

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 即时通讯群组(ImGroup)表服务接口
@@ -85,5 +86,12 @@ public interface ImGroupService extends IService<ImGroup> {
      * @return ImGroup
      */
     ImGroup findGroupInfoById(String groupId, Long userId);
+
+    /**
+     * 添加群成员
+     * @param groupId 群id
+     * @param studentIdList 学生成员列表
+     */
+    void addGroupMember(String groupId, Set<Long> studentIdList) throws Exception;
 }
 

+ 4 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/StudentService.java

@@ -117,7 +117,9 @@ public interface StudentService extends IService<Student> {
     /**
      * 导入学生
      * @param dataList 数据列表
-     * @param id 操作人
+     * @param tenantId 机构ID
+     * @param suerId 操作人
      */
-    void importStudentExcel(List<ExcelDataReaderProperty<StudentWrapper.StudentExport>> dataList, Long id);
+    void importStudentExcel(List<ExcelDataReaderProperty<StudentWrapper.StudentExport>> dataList,Long tenantId,
+                            Long suerId);
 }

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

@@ -114,12 +114,36 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         this.baseMapper.insert(imGroup);
         //处理本地群成员列表
         List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMemberRoleType.TEACHER);
+
+        if (imGroup.getStudentIdList().isEmpty()) {
+            List<GroupMember> groupMemberList = imGroupMemberService.initGroupMembers(imGroupId,
+                    imGroup.getStudentIdList(), ImGroupMemberRoleType.STUDENT);
+            groupMembers.addAll(groupMemberList);
+        }
+
         //创建融云群
         this.rtcCreate(imGroup.getCreateBy(),imGroupId,imGroup.getName());
         //加入融云群
         imGroupMemberService.join(groupMembers,imGroupId);
     }
 
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addGroupMember(String groupId, Set<Long> studentIdList) throws Exception {
+        ImGroup imGroup = this.baseMapper.selectById(groupId);
+        if (imGroup == null) {
+            throw new BizException("群不存在");
+        }
+        if (imGroup.getStudentIdList().isEmpty()) {
+            throw new BizException("添加的群成员不能为空");
+
+        }
+        List<GroupMember> groupMemberList = imGroupMemberService.initGroupMembers(groupId,
+                imGroup.getStudentIdList(), ImGroupMemberRoleType.STUDENT);
+        imGroupMemberService.join(groupMemberList, groupId);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String autoCreate(Long courseGroupId, String courseGroupType) throws Exception {

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

@@ -55,7 +55,9 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.text.MessageFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -362,7 +364,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean save(StudentWrapper.Student studentInfo) {
-        if (studentInfo.getId() != null) {
+        if (studentInfo.getId() == null) {
             return createStudent(studentInfo);
         } else {
             return updateStudent(studentInfo);
@@ -371,7 +373,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void importStudentExcel(List<ExcelDataReaderProperty<StudentWrapper.StudentExport>> dataList, Long id) {
+    public void importStudentExcel(List<ExcelDataReaderProperty<StudentWrapper.StudentExport>> dataList,
+                                   Long tenantId, Long userId) {
         if (dataList.isEmpty()) {
             throw new BizException("导入数据不能为空");
         }
@@ -384,12 +387,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             Integer rowIndex = next.getRowIndex();
             StudentWrapper.StudentExport student = next.getClazz();
 
-            student.checkValid().forEach(err -> errMsg.add(String.format("第%s行%s", rowIndex, err)));
+            int msgRowNo = rowIndex + 1;
+            student.checkValid().forEach(err -> errMsg.add(String.format("第%s行%s", msgRowNo, err)));
 
             if (phoneMap.containsKey(student.getPhone().trim())) {
-                errMsg.add(String.format("第%s行手机号重复", rowIndex));
+                errMsg.add(String.format("第%s行手机号重复", msgRowNo));
             } else {
-                phoneMap.put(student.getPhone().trim(), rowIndex);
+                phoneMap.put(student.getPhone().trim(), msgRowNo);
             }
 
             if (errMsg.size() > 100) {
@@ -397,7 +401,11 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             }
         }
 
-        int row = 100;
+        if (!errMsg.isEmpty()) {
+            throw new BizException(String.join(",", errMsg));
+        }
+
+        int row = 50;
         int page = 1;
         List<List<String>> phonePartition = Lists.partition(new ArrayList<>(phoneMap.keySet()), row);
 
@@ -411,13 +419,30 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
             if (!studentVos.isEmpty()) {
                 List<String> existPhoneList = studentVos.stream().map(StudentVo::getPhone).collect(Collectors.toList());
-                existPhoneList.forEach(phone -> errMsg.add(String.format("第%s行手机号已经注册学生", phoneMap.get(phone))));
+                existPhoneList.forEach(phone -> {
+                    if (phoneMap.containsKey(phone)) {
+                        errMsg.add(String.format("第%s行手机号已经注册学生", phoneMap.get(phone)));
+                    }
+                });
             }
         }
 
         if (!errMsg.isEmpty()) {
             throw new BizException(String.join(",", errMsg));
         }
+
+        for (ExcelDataReaderProperty<StudentWrapper.StudentExport> next : dataList) {
+            StudentWrapper.StudentExport studentExport = next.getClazz();
+            StudentWrapper.Student student = new StudentWrapper.Student();
+            student.setTenantId(tenantId);
+            student.setName(studentExport.getUserName());
+            student.setGender("1".equals(studentExport.getGender()) ? 1 : 0);
+            student.setSubjectId(studentExport.getSubjectId());
+
+            LocalDate birthday = LocalDate.parse(studentExport.getBirthday(), DateTimeFormatter.ISO_LOCAL_DATE);
+            student.setBirthdate(birthday);
+            save(student);
+        }
     }
 
     private Boolean updateStudent(StudentWrapper.Student studentInfo) {
@@ -426,14 +451,14 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             throw new BizException("学生信息不存在");
         }
         // 解绑
-        if (!studentInfo.getBindTenant()) {
+        if (Boolean.FALSE.equals(studentInfo.getBindTenant())) {
             studentInfo.setTenantId(-1L);
             // 退群,删除好友
             imUserFriendService.delFriendByTenantId(student.getTenantId(), student.getUserId());
         }
         // 手机号码修改
+        com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);
         if (!student.getPhone().equals(studentInfo.getPhone())) {
-            com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = getOrCreateAccount(studentInfo);
             this.lambdaUpdate().set(Student::getSubjectId, studentInfo.getSubjectId())
                     .set(Student::getTenantId, studentInfo.getTenantId())
                     .set(Student::getUserId, sysUser.getId())
@@ -470,10 +495,12 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         com.yonge.cooleshow.biz.dal.entity.SysUser sysUser;
         if (!sysUsers.isEmpty()) {
             sysUser = sysUsers.get(0);
-            if (this.getBaseMapper().selectById(sysUser.getId()) != null) {
+            if (!sysUser.getId().equals(studentInfo.getId()) &&
+                    this.getBaseMapper().selectById(sysUser.getId()) != null) {
                 throw new BizException("手机号已经注册学生账号");
             }
             sysUser.setGender(studentInfo.getGender());
+            sysUser.setUsername(studentInfo.getName());
             sysUser.setBirthdate(studentInfo.getBirthdate());
             String userType = sysUser.getUserType();
             String studentUserType = "STUDENT";
@@ -491,6 +518,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             sysUser.setGender(studentInfo.getGender());
             sysUser.setUserType("STUDENT");
             sysUser.setBirthdate(studentInfo.getBirthdate());
+            sysUser.setUsername(studentInfo.getName());
 
             String newPassword = MessageFormat.format("klxjg{0}", studentInfo.getPhone().substring(7));
             String password = new BCryptPasswordEncoder().encode(newPassword);

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

@@ -472,6 +472,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacher.setMusicianDate(null);
         teacher.setIsSettlement(teacherSubmitReq.getIsSettlement());
         teacher.setIsTestUser(teacherSubmitReq.getIsTestUser());
+        teacher.setSettlementFrom(teacherSubmitReq.getSettlementFrom());
         teacher.setTenantId(teacherSubmitReq.getTenantId() == null ? -1L : teacherSubmitReq.getTenantId());
         if (teacher.getTenantId() == -1L) {
             teacher.setSettlementFrom(ESettlementFrom.TEACHER);

+ 17 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/StudentWrapper.java

@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 
 import java.io.Serializable;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
@@ -141,7 +142,7 @@ public class StudentWrapper {
         @ExcelProperty(value = "学生姓名")
         private String userName;
 
-        @ExcelProperty(value = "手机号")
+        @ExcelProperty(value = "手机号")
         private String phone;
 
         @ExcelProperty(value = "声部")
@@ -153,6 +154,11 @@ public class StudentWrapper {
         @ExcelProperty(value = "性别")
         private String gender;
 
+        private static final String PHONE_REG = "^(13\\d|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18\\d|19[0-35-9])" +
+                "\\d{8}$";
+
+        private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
+
         public List<String> checkValid() {
             ArrayList<String> errMsg = new ArrayList<>();
             if (StringUtils.isEmpty(userName)) {
@@ -160,8 +166,7 @@ public class StudentWrapper {
             }
             if (StringUtils.isEmpty(phone)) {
                 errMsg.add("手机号为空");
-            }
-            if (Pattern.matches("^1[3-9]\\d{9}$", phone)) {
+            } else if (!Pattern.matches(PHONE_REG, phone)) {
                 errMsg.add("手机号格式错误");
             }
             if (StringUtils.isEmpty(subjectId)) {
@@ -169,6 +174,15 @@ public class StudentWrapper {
             }
             if (StringUtils.isEmpty(birthday)) {
                 errMsg.add("出生日期为空");
+            } else {
+                if (birthday.contains("/")) {
+                    birthday = birthday.replaceAll("/", "-");
+                }
+                try {
+                    SDF.parse(birthday);
+                } catch (Exception e) {
+                    errMsg.add("出生日期格式错误");
+                }
             }
             if (StringUtils.isEmpty(gender)) {
                 errMsg.add("性别为空");

+ 4 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/teacher/TeacherWrapper.java

@@ -10,6 +10,8 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by Eric.Shang on 2022/10/8.
@@ -88,8 +90,8 @@ public class TeacherWrapper {
     @ApiModel("老师设置结算方式模型")
     public static class TeacherSetSettlement {
 
-        @ApiModelProperty("老师ID")
-        private Long userId;
+        @ApiModelProperty("老师ID,批量用数组方式")
+        private List<Long> teacherIdList = new ArrayList<>();
 
         @ApiModelProperty("结算方式")
         private ESettlementFrom settlementFrom;

+ 6 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -159,6 +159,12 @@
             <if test="param.tenantName != null and param.tenantName.trim() != ''">
                 and ti.name_ like concat('%',#{param.tenantName},'%')
             </if>
+            <if test="param.phoneList != null and param.phoneList.size() > 0">
+                and u.phone_ in
+                <foreach collection="param.phoneList" separator="," item="item"  open="(" close=")" >
+                    #{item}
+                </foreach>
+            </if>
         </where>
         <choose>
             <when test="param.orderBy != null and param.orderBy.trim() != ''">

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

@@ -101,6 +101,7 @@
             u.real_name_ as realName,
             u.avatar_ as avatar,
             u.birthdate_ as birthdate,
+            u.gender_ as gender,
             (case when t.membership_end_time_ &gt;= now() then 1 else 0 end) isVip,
 <!--            t.tag_ tag,-->
             u.del_flag_ as delFlag,

+ 7 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupController.java

@@ -50,6 +50,13 @@ public class ImGroupController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation("添加群成员")
+    @PostMapping(value = "/addGroupMember")
+    public HttpResponseResult addGroupMember(@Valid @RequestBody ImGroup imGroup, BindingResult bindingResult) throws Exception {
+        imGroupService.addGroupMember(imGroup.getId(), imGroup.getStudentIdList());
+        return succeed();
+    }
+
     @ApiOperation("解散群聊")
     @PostMapping(value = "/dismiss/{groupId}")
     public HttpResponseResult dismiss(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {

+ 3 - 2
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -16,6 +16,7 @@ import com.yonge.cooleshow.common.enums.BizHttpStatus;
 import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.common.enums.UserStatusEnum;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.utils.easyexcel.ErrMsg;
@@ -112,7 +113,7 @@ public class StudentController extends BaseController {
         try {
             ExcelDataReader<StudentWrapper.StudentExport> reader =
                     ExcelUtils.getReader(StudentWrapper.StudentExport.class, file);
-            studentService.importStudentExcel(reader.getDataList(), user.getId());
+            studentService.importStudentExcel(reader.getDataList(),user.getTenantId(), user.getId());
             return HttpResponseResult.succeed();
         } catch (ExcelException e) {
             return HttpResponseResult.failed(BizHttpStatus.IMPORT.getCode(), e.getErrMsgList(), BizHttpStatus.IMPORT.getMsg());
@@ -124,7 +125,7 @@ public class StudentController extends BaseController {
         TenantInfo tenantInfo = tenantInfoService.lambdaQuery().eq(TenantInfo::getUserId, sysUser.getId())
                 .last("limit 1").one();
         if (tenantInfo == null) {
-            throw new com.microsvc.toolkit.common.webportal.exception.BizException("非法请求");
+            throw new BizException("非法请求");
         }
         return tenantInfo;
     }

+ 11 - 13
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TeacherController.java

@@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -45,7 +46,7 @@ public class TeacherController extends BaseController {
     @Autowired
     private TeacherService teacherService;
 
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
 
     @Autowired
@@ -119,30 +120,27 @@ public class TeacherController extends BaseController {
             if (teacher == null) {
                 throw new BizException("老师不存在");
             }
+        } else {
+            // 新增 默认机构为操作人的机构
+            teacherSubmitReq.setTenantId(tenantInfo.getId());
         }
-        teacherSubmitReq.setTenantId(tenantInfo.getId());
         return teacherService.submit(teacherSubmitReq);
     }
 
     @PostMapping("/setSettlement")
     @ApiOperation(value = "设置结算方式")
     public HttpResponseResult<Boolean> setSettlement(@Valid @RequestBody TeacherWrapper.TeacherSetSettlement setSettlement) {
-        TenantInfo tenantInfo = getTenantInfo();
-        teacherService.lambdaUpdate()
-                .set(Teacher::getSettlementFrom, setSettlement.getSettlementFrom())
-                .eq(Teacher::getTenantId, tenantInfo.getId())
-                .eq(Teacher::getUserId, setSettlement.getUserId()).update();
-        return succeed();
-    }
 
-    @PostMapping("/batchSetSettlement")
-    @ApiOperation(value = "批量设置结算方式")
-    public HttpResponseResult<Boolean> batchSetSettlement(@Valid @RequestBody TeacherWrapper.TeacherSetSettlement setSettlement) {
+        List<Long> teacherIdList = setSettlement.getTeacherIdList();
+        if (teacherIdList.isEmpty()) {
+            throw new BizException("未选择老师");
+        }
+
         TenantInfo tenantInfo = getTenantInfo();
         teacherService.lambdaUpdate()
                 .set(Teacher::getSettlementFrom, setSettlement.getSettlementFrom())
                 .eq(Teacher::getTenantId, tenantInfo.getId())
-                .update();
+                .in(Teacher::getUserId, setSettlement.getTeacherIdList()).update();
         return succeed();
     }
 

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

@@ -31,6 +31,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 
 @Slf4j
 @Validated
@@ -45,7 +47,7 @@ public class TenantActivationCodeController extends BaseController {
     @Autowired
     private TenantAlbumPurchaseService tenantAlbumPurchaseService;
 
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
 
     @Autowired

+ 2 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/TenantAlbumController.java

@@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @Slf4j
@@ -43,7 +44,7 @@ public class TenantAlbumController extends BaseController {
     @Autowired
     private TenantAlbumService tenantAlbumService;
 
-    @Autowired
+    @Resource
     private SysUserFeignService sysUserFeignService;
 
     @Autowired

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

@@ -0,0 +1,52 @@
+package com.yonge.cooleshow.tenant.controller.open;
+
+import com.yonge.cooleshow.biz.dal.dto.req.TeacherSubmitReq;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @author 袁亮
+ * @apiNote 二维码方式注册老师账号
+ */
+@RestController
+@RequestMapping("/open/teacher")
+@Api(value = "教师表", tags = "教师表")
+public class OpenTeacherController extends BaseController {
+
+    @Autowired
+    private TeacherService teacherService;
+
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/submit")
+    @ApiOperation(value = "新增", notes = "传入teacher")
+    public HttpResponseResult<Boolean> submit(@Valid @RequestBody TeacherSubmitReq teacherSubmitReq) {
+        Long tenantId = teacherSubmitReq.getTenantId();
+        if (tenantId == null) {
+            throw new BizException("未选择机构");
+        }
+        TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
+        if (tenantInfo == null || Boolean.FALSE.equals(tenantInfo.getEnableFlag())) {
+            throw new BizException("机构不可用");
+        }
+        teacherSubmitReq.setUserId(null);
+        return teacherService.submit(teacherSubmitReq);
+    }
+}