Browse Source

1.后端添加学生注册开发接口 2.学生去掉修改机构的短信提醒

yuanliang 1 year ago
parent
commit
63a2e1a52d

+ 123 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/OpenStudentController.java

@@ -0,0 +1,123 @@
+package com.yonge.cooleshow.admin.controller.open;
+
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.TenantGroup;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.tenant.vo.StudentVo;
+import com.yonge.toolset.base.exception.BizException;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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 java.util.Objects;
+
+@Slf4j
+@RestController
+@RequestMapping("${app-config.url.admin:}/open/student")
+@Api(value = "学生表", tags = "学生表")
+public class OpenStudentController extends BaseController {
+    @Autowired
+    private StudentService studentService;
+
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private SmsCodeService smsCodeService;
+
+
+    @Autowired
+    private TenantGroupMapper tenantGroupMapper;
+
+    @PostMapping("/save")
+    @ApiOperation(value = "新增/修改", notes = "传入Student,换绑时按照返回错误码5004判断,是否需要换绑,updateTenant=true表示换绑")
+    public HttpResponseResult<Boolean> save(@Validated @RequestBody StudentVo.Student student) {
+        String code = student.getCode();
+        if (StringUtils.isEmpty(code)) {
+            throw new BizException("验证码不能为空");
+        }
+        if (!smsCodeService.verifyValidCode(student.getPhone(), code, "REGISTER")) {
+            throw new BizException("验证码错误");
+        }
+        Long tenantId = student.getTenantId();
+        if (tenantId == null) {
+            throw new BizException("未指定机构");
+        }
+        TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
+        if (tenantInfo == null) {
+            throw new BizException("机构不存在");
+        }
+        Long tenantGroupId = student.getTenantGroupId();
+        TenantGroup tenantGroup = tenantGroupMapper.selectById(tenantGroupId);
+        if (tenantGroup == null) {
+            throw new BizException("该链接已失效");
+        }
+        Long studentId = student.getId();
+
+        if (studentId == null) {
+            SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+            if (sysUser != null && sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
+                studentId = sysUser.getId();
+            }
+        }
+
+        if (studentId != null) {
+            Student one = studentService.lambdaQuery()
+                    .eq(Student::getUserId, studentId)
+                    .last("limit 1").one();
+            if (one != null) {
+                if (one.getTenantId().equals(-1L)) {
+                    throw new BizException("该手机号已经注册为平台学生");
+                }
+                if (one.getTenantId().equals(tenantId)) {
+                    //已经注册当前机构,请勿重复注册
+                    throw new BizException("已经注册当前机构,请勿重复注册");
+                }
+                // 转到其他机构
+                if ((!Objects.equals(student.getTenantId(), one.getTenantId()))) {
+                    if (student.getUpdateTenant() == null || Boolean.FALSE.equals(student.getUpdateTenant())) {
+                        TenantInfo oldTenant = tenantInfoService.getById(one.getTenantId());
+                        throw new BizException(5004, oldTenant.getName());
+                    }
+                }
+
+                // 更新头像
+                if (StringUtils.isEmpty(student.getAvatar())) {
+                    student.setAvatar(one.getAvatar());
+                }
+            }
+            student.setId(studentId);
+        }
+
+        StudentWrapper.Student studentInfo = JSON.parseObject(JSON.toJSONString(student), StudentWrapper.Student.class);
+        studentInfo.setTenantId(tenantInfo.getId());
+
+        studentService.save(studentInfo);
+        return succeed();
+    }
+}

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

@@ -961,17 +961,5 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         bindRecord.setBindStatus(bind);
         bindRecord.setBindTime(new Date());
         userTenantBindRecordMapper.add(bindRecord);
-
-        SysUser sysUser = sysUserMapper.getByUserId(studentId);
-        sendBindUnBindSMS(studentId, sysUser.getPhone(), Boolean.TRUE.equals(bind) ? MessageTypeEnum.TEACHER_BIND_TENANT : MessageTypeEnum.TEACHER_UNBIND_TENANT, tenantId);
     }
-
-    private void sendBindUnBindSMS(Long userId, String phone, MessageTypeEnum messageType, Long tenantId) {
-        TenantInfo tenantInfo = tenantInfoService.getById(tenantId);
-        Map<Long, String> receivers = new HashMap<>();
-        receivers.put(userId, phone);
-        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, messageType,
-                receivers, null, 0, null, ClientEnum.SYSTEM.getCode(), tenantInfo.getName());
-    }
-
 }