Browse Source

Merge remote-tracking branch 'origin/develop' into develop

Eric 1 year ago
parent
commit
290fa1ff96
14 changed files with 174 additions and 85 deletions
  1. 47 26
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java
  2. 47 23
      cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java
  3. 15 3
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java
  4. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/excel/UserOrderExport.java
  5. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/FileImportInfo.java
  6. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantApplyRecord.java
  7. 6 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantEntryRecord.java
  8. 12 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  9. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java
  10. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantUnbindHistoryWrapper.java
  11. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  12. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/TenantApplyRecordMapper.xml
  13. 6 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml
  14. 28 24
      cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

+ 47 - 26
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java

@@ -1,13 +1,21 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.entity.TenantUnbindHistory;
 import com.yonge.cooleshow.biz.dal.service.EmployeeService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.TenantUnbindHistoryService;
 import com.yonge.cooleshow.biz.dal.service.TenantUnbindRecordService;
 import com.yonge.cooleshow.biz.dal.vo.EmployeeVo;
+import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindHistoryWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindRecordWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -24,6 +32,11 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 
 @Slf4j
 @Validated
@@ -33,38 +46,46 @@ import org.springframework.web.bind.annotation.RestController;
 public class TenantUnbindHistoryController extends BaseController{
 
     @Autowired
-    private TenantUnbindRecordService tenantUnbindRecordService;
+    private TenantUnbindHistoryService tenantUnbindHistoryService;
 
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
 
     @Autowired
-    private EmployeeService employeeService;
+    private TenantInfoService tenantInfoService;
 
-    @ApiOperation(value = "查询分页", notes = "机构解绑申请记录- 传入 TenantUnbindRecordVo.TenantUnbindRecordQuery")
-    @PreAuthorize("@pcs.hasPermissions('tenantUnbindRecord/page')")
+    @ApiOperation(value = "查询分页", notes = "机构解绑历史表- 传入 TenantUnbindHistoryWrapper.TenantUnbindHistoryQuery")
     @PostMapping("/page")
-    public HttpResponseResult<PageInfo<TenantUnbindRecordWrapper.TenantUnbindRecord>>
-    page(@RequestBody TenantUnbindRecordWrapper.TenantUnbindRecordQuery query) {
-        // 查询数据
-        IPage<TenantUnbindRecordWrapper.TenantUnbindRecord> pages =
-                tenantUnbindRecordService.selectPage(QueryInfo.getPage(query), query);
-        return succeed(QueryInfo.pageInfo(pages, pages.getRecords()));
-    }
+    public R<PageInfo<TenantUnbindHistoryWrapper.TenantUnbindHistory>> page(@RequestBody TenantUnbindHistoryWrapper.TenantUnbindHistoryQuery query) {
 
-    @ApiOperation(value = "审核")
-    @PostMapping("/audit")
-    @PreAuthorize("@pcs.hasPermissions('tenantUnbindRecord/audit')")
-    public HttpResponseResult<Boolean> audit(@RequestBody TenantUnbindRecordWrapper.Audio audio) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            throw new BizException("请登录");
-        }
-        EmployeeVo employeeVo = employeeService.detail(sysUserFeignService.queryUserInfo().getId());
-        if (employeeVo == null || UserLockFlag.LOCKED.equals(employeeVo.getLockFlag())) {
-            throw new BizException("权限不足");
+        IPage<TenantUnbindHistory> pages = tenantUnbindHistoryService.selectPage(QueryInfo.getPage(query), query);
+
+        List<TenantUnbindHistory> records = pages.getRecords();
+        if (records.isEmpty()) {
+            return R.from(QueryInfo.pageInfo(pages, new ArrayList<>()));
         }
-        tenantUnbindRecordService.tenantUserUnbindAudit(audio, sysUser.getId(),true);
-        return succeed();
+        List<Long> userIds =
+                pages.getRecords().stream().map(TenantUnbindHistory::getVerifyUserId).distinct()
+                        .collect(Collectors.toList());
+        Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(userIds);
+
+        List<Long> tenantIds =
+                pages.getRecords().stream().map(TenantUnbindHistory::getTenantId).distinct()
+                        .collect(Collectors.toList());
+        Map<Long, TenantInfo> tenantInfoMap = tenantInfoService.getMapByIds(tenantIds);
+        List<TenantUnbindHistoryWrapper.TenantUnbindHistory> histories = records.stream().map(next -> {
+            TenantUnbindHistoryWrapper.TenantUnbindHistory tenantUnbindHistory =
+                    JSON.parseObject(JSON.toJSONString(next), TenantUnbindHistoryWrapper.TenantUnbindHistory.class);
+            com.yonge.cooleshow.biz.dal.entity.SysUser orDefault = mapByIds.getOrDefault(next.getVerifyUserId(), new SysUser());
+            tenantUnbindHistory.setVerifyUserName(orDefault.getUsername());
+            if(tenantInfoMap.containsKey(next.getTenantId())){
+                TenantInfo tenantInfo = tenantInfoMap.get(next.getTenantId());
+                tenantUnbindHistory.setTenantUserName(tenantInfo.getUsername());
+                tenantUnbindHistory.setTenantPhone(tenantInfo.getPhone());
+            }
+            return tenantUnbindHistory;
+
+        }).collect(Collectors.toList());
+        return R.from(QueryInfo.pageInfo(pages, histories));
     }
 }

+ 47 - 23
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -16,9 +16,11 @@ 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.SysConfigService;
 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.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.tenant.vo.StudentVo;
@@ -36,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -67,6 +70,9 @@ public class OpenStudentController extends BaseController {
     @Autowired
     private ImGroupMemberService imGroupMemberService;
 
+    @Autowired
+    private SysConfigService sysConfigService;
+
     @PostMapping("/save")
     @ApiOperation(value = "新增/修改", notes = "传入Student,换绑时按照返回错误码5004判断,是否需要换绑,updateTenant=true表示换绑")
     public HttpResponseResult<Boolean> save(@Validated @RequestBody StudentVo.Student student) {
@@ -103,37 +109,54 @@ public class OpenStudentController extends BaseController {
                 if (one.getTenantId().equals(-1L)) {
                     throw new BizException("该手机号已经注册为平台学生");
                 }
-                if (one.getTenantId().equals(tenantId)) {
-                    throw new BizException("已经注册当前机构,请勿重复注册");
-                }
+//                if (one.getTenantId().equals(tenantId)) {
+//                    //已经注册当前机构,请勿重复注册
+//                    throw new BizException(5004, tenantInfo.getName());
+//                }
                 // 转到其他机构
-                if ((student.getUpdateTenant() == null ||
-                        !student.getUpdateTenant())) {
-                    throw new BizException(5004, "该手机号已经注册为其他平台学生");
-                }
-                // 退群
-                List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
-                        .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
-                        .eq(ImGroupMember::getIsAdmin, false)
-                        .eq(ImGroupMember::getUserId, one.getUserId())
-                        .list();
-                List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
-                        .distinct().collect(Collectors.toList());
-                groupIdList.forEach(groupId -> {
-                    try {
-                        imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
-                    } catch (Exception e) {
-                        log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                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());
+                    } else {
+                        // 退群
+                        List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
+                                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
+                                .eq(ImGroupMember::getIsAdmin, false)
+                                .eq(ImGroupMember::getUserId, one.getUserId())
+                                .list();
+                        List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
+                                .distinct().collect(Collectors.toList());
+                        groupIdList.forEach(groupId -> {
+                            try {
+                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
+                            } catch (Exception e) {
+                                log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                            }
+                        });
                     }
-                });
+                }
+
+                // 更新头像
+                if (StringUtils.isEmpty(student.getAvatar())) {
+                    student.setAvatar(one.getAvatar());
+                }
             }
             student.setId(studentId);
         }
 
+        // 配置头像
+        String avatar = student.getAvatar();
+        if (StringUtils.isEmpty(avatar)) {
+            if (StringUtils.isEmpty(avatar)) {
+                avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_AVATAR);
+                student.setAvatar(avatar);
+            }
+            student.setAvatar(avatar);
+        }
 
-        StudentWrapper.Student studentInfo = JSON.parseObject(JSON.toJSONString(student), StudentWrapper.Student.class);
+        Student studentInfo = JSON.parseObject(JSON.toJSONString(student), Student.class);
         studentInfo.setTenantId(tenantInfo.getId());
-        studentService.save(studentInfo);
 
         // 加好友
         if (student.getId() == null) {
@@ -144,6 +167,7 @@ public class OpenStudentController extends BaseController {
             teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
                     new HashSet<>(ImmutableList.of(sysUser.getId()))));
         }
+        studentService.saveOrUpdate(studentInfo);
         return succeed();
     }
 }

+ 15 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantUnbindHistoryController.java

@@ -7,9 +7,11 @@ import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.biz.dal.entity.Employee;
 import com.yonge.cooleshow.biz.dal.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.TenantUnbindHistory;
 import com.yonge.cooleshow.biz.dal.service.EmployeeService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.service.TenantStaffService;
 import com.yonge.cooleshow.biz.dal.service.TenantUnbindHistoryService;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindHistoryWrapper;
@@ -44,6 +46,9 @@ public class TenantUnbindHistoryController {
     @Autowired
     private SysUserService sysUserService;
 
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
     @ApiOperation(value = "查询分页", notes = "机构解绑历史表- 传入 TenantUnbindHistoryWrapper.TenantUnbindHistoryQuery")
     @PostMapping("/page")
     public R<PageInfo<TenantUnbindHistoryWrapper.TenantUnbindHistory>> page(@RequestBody TenantUnbindHistoryWrapper.TenantUnbindHistoryQuery query) {
@@ -59,13 +64,20 @@ public class TenantUnbindHistoryController {
                         .collect(Collectors.toList());
         Map<Long, SysUser> mapByIds = sysUserService.getMapByIds(userIds);
 
+        List<Long> tenantIds =
+                pages.getRecords().stream().map(TenantUnbindHistory::getTenantId).distinct()
+                        .collect(Collectors.toList());
+        Map<Long, TenantInfo> tenantInfoMap = tenantInfoService.getMapByIds(tenantIds);
         List<TenantUnbindHistoryWrapper.TenantUnbindHistory> histories = records.stream().map(next -> {
             TenantUnbindHistoryWrapper.TenantUnbindHistory tenantUnbindHistory =
                     JSON.parseObject(JSON.toJSONString(next), TenantUnbindHistoryWrapper.TenantUnbindHistory.class);
             SysUser orDefault = mapByIds.getOrDefault(next.getVerifyUserId(), new SysUser());
-            tenantUnbindHistory.setVerifyUserName(StringUtils.isEmpty(orDefault.getRealName()) ?
-                    orDefault.getUsername() :
-                    orDefault.getRealName());
+            tenantUnbindHistory.setVerifyUserName(orDefault.getUsername());
+            if(tenantInfoMap.containsKey(next.getTenantId())){
+                TenantInfo tenantInfo = tenantInfoMap.get(next.getTenantId());
+                tenantUnbindHistory.setTenantUserName(tenantInfo.getUsername());
+                tenantUnbindHistory.setTenantPhone(tenantInfo.getPhone());
+            }
             return tenantUnbindHistory;
 
         }).collect(Collectors.toList());

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/excel/UserOrderExport.java

@@ -38,7 +38,7 @@ public class UserOrderExport {
     private OrderStatusEnum status;
     @ExcelProperty(value = "备注", index = 11)
     private String userNote;
-    @ExcelProperty(value = "机构名称", index = 11)
+    @ExcelProperty(value = "机构名称", index = 12)
     private String tenantName;
 
 

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -22,7 +23,7 @@ import java.util.Date;
 public class FileImportInfo implements Serializable {
 
     @ApiModelProperty("主键ID")
-    @TableId(value = "id_")
+    @TableId(value = "id_",type = IdType.AUTO)
     private Long id;
 
     @ApiModelProperty("数据类型") 

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

@@ -80,7 +80,7 @@ public class TenantApplyRecord implements Serializable {
 	@TableField(value = "create_time_")
     private Date createTime;
 
-    @ApiModelProperty("简介")
+    @ApiModelProperty("简介")
     @TableField(value = "brief_Introduction_")
     private String briefIntroduction;
 

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
 import lombok.Data;
 
 import io.swagger.annotations.ApiModel;
@@ -61,7 +62,7 @@ public class TenantEntryRecord implements Serializable {
 
     @ApiModelProperty("审核状态 DOING、审核中 PASS、通过 UNPASS、不通过") 
 	@TableField(value = "status_")
-    private String status;
+    private AuthStatusEnum status;
 
     @ApiModelProperty("审核人") 
 	@TableField(value = "verify_user_id_")
@@ -79,4 +80,8 @@ public class TenantEntryRecord implements Serializable {
 	@TableField(value = "create_time_")
     private Date createTime;
 
+    @ApiModelProperty("简介")
+    @TableField(value = "brief_Introduction_")
+    private String briefIntroduction;
+
 }

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

@@ -546,6 +546,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         if (sysUser == null) {
             sysUser = new SysUser();
             sysUser.setUserType(ClientEnum.STUDENT.getCode());
+            sysUser.setGender(student.getGender());
             //设置默认头像
             if (StringUtil.isEmpty(sysUser.getAvatar())) {
                 String defaultHeard = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
@@ -565,6 +566,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             } else if (!sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
                 sysUser.setUserType(sysUser.getUserType() + "," + ClientEnum.STUDENT.getCode());
             }
+            sysUser.setGender(student.getGender());
             employeeDao.updateSysUser(sysUser);
         }
 
@@ -622,6 +624,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                     .set(Student::getTenantId, studentInfo.getTenantId())
                     .set(Student::getUserId, sysUser.getId())
                     .set(Student::getUpdateTime, new Date())
+                    .set(Student::getAvatar,studentInfo.getAvatar())
                     .eq(Student::getUserId, studentInfo.getId())
                     .update();
         } else {
@@ -630,8 +633,12 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             newStudent.setSubjectId(studentInfo.getSubjectId());
             newStudent.setUpdateTime(new Date());
             newStudent.setTenantId(studentInfo.getTenantId());
+            newStudent.setAvatar(studentInfo.getAvatar());
             this.getBaseMapper().updateById(newStudent);
         }
+        com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = sysUserMapper.selectById(studentInfo.getId());
+        sysUser.setGender(studentInfo.getGender());
+        sysUserMapper.updateById(sysUser);
         return true;
     }
 
@@ -679,7 +686,11 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             sysUser = JSON.parseObject(JSON.toJSONString(studentInfo),
                     com.yonge.cooleshow.biz.dal.entity.SysUser.class);
             sysUser.setPhone(studentInfo.getPhone());
-            sysUser.setAvatar(sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD));
+            if (StringUtils.isEmpty(studentInfo.getAvatar())) {
+                sysUser.setAvatar(sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD));
+            } else {
+                sysUser.setAvatar(studentInfo.getAvatar());
+            }
             sysUser.setGender(studentInfo.getGender());
             sysUser.setUserType("STUDENT");
             sysUser.setBirthdate(studentInfo.getBirthdate());

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

@@ -256,7 +256,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
             String userType = sysUser.getUserType();
 
             if (userType.contains(SysUserType.SYSTEM.getCode())){
-                throw new BizException("该手机号已注册机构");
+                throw new BizException("该手机号已注册平台员工");
             }
             //设置默认机构类型
             String tenantUserType = SysUserType.ORGANIZATION.getCode();

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantUnbindHistoryWrapper.java

@@ -75,6 +75,12 @@ public class TenantUnbindHistoryWrapper {
         @ApiModelProperty("机构名称")
         private String tenantName;
 
+        @ApiModelProperty("机构员工")
+        private String tenantUserName;
+
+        @ApiModelProperty("机构员工")
+        private String tenantPhone;
+
         @ApiModelProperty("用户ID")
         private Long userId;
 

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

@@ -107,7 +107,7 @@
         u.del_flag_ as delFlag,
         (case when isnull(u.id_card_no_) then 0 else 1 end) as isReal,
         (case when isnull(b.user_id_) then 0 else 1 end) as isBank,
-        (case when t.tenant_id_ = -1 then '平台老师' else ti.name_ end) as tenantName
+        (case when t.tenant_id_ = -1 then '平台' else ti.name_ end) as tenantName
         FROM teacher t
         left join sys_user u on t.user_id_ = u.id_
         left join (

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

@@ -82,7 +82,7 @@
         <if test="id != null">
             and tenant_apply_record_id_ = #{id}
         </if>
-
+        order by update_time_ DESC
     </select>
     <select id="queryNow"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.TenantApplyRecordWrapper$TenantApplyRecord">

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

@@ -127,6 +127,10 @@
         FROM user_order t
         left join user_order_payment p on t.order_no_ = p.order_no_ and (p.status_ = 'pending' or p.status_ = 'succeeded')
         left join sys_user u on t.user_id_ = u.id_
+
+        <if test="null != param.search and '' != param.search">
+            left join tenant_info ti on t.tenant_id_ = ti.id_
+        </if>
         <where>
             u.del_flag_ = 0
             <if test="null != param.orderClient and '' != param.orderClient">
@@ -142,7 +146,8 @@
                 AND (
                 t.user_id_ LIKE CONCAT('%', #{param.search}, '%') or
                 u.username_ LIKE CONCAT('%', #{param.search}, '%') or
-                u.phone_ LIKE CONCAT('%', #{param.search}, '%')
+                u.phone_ LIKE CONCAT('%', #{param.search}, '%') or
+                ti.name_ LIKE CONCAT('%', #{param.search}, '%')
                 )
             </if>
             <if test="null != param.searchNo and '' != param.searchNo">

+ 28 - 24
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/open/OpenStudentController.java

@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -108,30 +109,33 @@ public class OpenStudentController extends BaseController {
                 if (one.getTenantId().equals(-1L)) {
                     throw new BizException("该手机号已经注册为平台学生");
                 }
-                if (one.getTenantId().equals(tenantId)) {
-                    //已经注册当前机构,请勿重复注册
-                    throw new BizException(5004, tenantInfo.getName());
-                }
+//                if (one.getTenantId().equals(tenantId)) {
+//                    //已经注册当前机构,请勿重复注册
+//                    throw new BizException(5004, tenantInfo.getName());
+//                }
                 // 转到其他机构
-                if ((student.getUpdateTenant() == null ||
-                        !student.getUpdateTenant())) {
-                    throw new BizException(5004, "该手机号已经注册为其他平台学生");
-                }
-                // 退群
-                List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
-                        .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
-                        .eq(ImGroupMember::getIsAdmin, false)
-                        .eq(ImGroupMember::getUserId, one.getUserId())
-                        .list();
-                List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
-                        .distinct().collect(Collectors.toList());
-                groupIdList.forEach(groupId -> {
-                    try {
-                        imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
-                    } catch (Exception e) {
-                        log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                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());
+                    } else {
+                        // 退群
+                        List<ImGroupMember> groupMembers = imGroupMemberService.lambdaQuery()
+                                .eq(ImGroupMember::getRoleType, ImGroupMemberRoleType.STUDENT)
+                                .eq(ImGroupMember::getIsAdmin, false)
+                                .eq(ImGroupMember::getUserId, one.getUserId())
+                                .list();
+                        List<String> groupIdList = groupMembers.stream().map(ImGroupMember::getGroupId)
+                                .distinct().collect(Collectors.toList());
+                        groupIdList.forEach(groupId -> {
+                            try {
+                                imGroupService.quit(groupId, one.getUserId(), ClientEnum.STUDENT);
+                            } catch (Exception e) {
+                                log.error("学生注册,切换机构退群失败:{}", e.getMessage());
+                            }
+                        });
                     }
-                });
+                }
 
                 // 更新头像
                 if (StringUtils.isEmpty(student.getAvatar())) {
@@ -151,9 +155,8 @@ public class OpenStudentController extends BaseController {
             student.setAvatar(avatar);
         }
 
-        StudentWrapper.Student studentInfo = JSON.parseObject(JSON.toJSONString(student), StudentWrapper.Student.class);
+        Student studentInfo = JSON.parseObject(JSON.toJSONString(student), Student.class);
         studentInfo.setTenantId(tenantInfo.getId());
-        studentService.save(studentInfo);
 
         // 加好友
         if (student.getId() == null) {
@@ -164,6 +167,7 @@ public class OpenStudentController extends BaseController {
             teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
                     new HashSet<>(ImmutableList.of(sysUser.getId()))));
         }
+        studentService.saveOrUpdate(studentInfo);
         return succeed();
     }
 }