浏览代码

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

haonan 1 年之前
父节点
当前提交
fc8eff5ebf

+ 1 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ESettlementFrom.java

@@ -7,6 +7,7 @@ public enum ESettlementFrom implements BaseEnum<String, ESettlementFrom> {
 
     TEACHER("结算给老师"),
     TENANT("结算给机构"),
+    NO("不结算"),
     ;
 
     @EnumValue

+ 25 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/StudentController.java

@@ -1,19 +1,29 @@
 package com.yonge.cooleshow.admin.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.ImmutableList;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.VipSubmitReq;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VipRecordSearch;
+import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 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.VipCardRecordService;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
 import com.yonge.cooleshow.biz.dal.vo.VipRecordVo;
 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.common.enums.UserLockFlag;
@@ -33,6 +43,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -46,7 +57,9 @@ import javax.validation.Valid;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/student")
@@ -219,4 +232,16 @@ public class StudentController extends BaseController {
         studentService.updateTenant(student, updateTenant.getTenantId());
         return succeed();
     }
+
+
+    @PostMapping("/add")
+    @ApiOperation(value = "新增", notes = "传入Student")
+    public HttpResponseResult<Boolean> add(@Validated @RequestBody StudentWrapper.Student student) {
+        SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+        if (sysUser != null && sysUser.getUserType().contains(ClientEnum.STUDENT.getCode())) {
+            throw new BizException("学生账号已经存在");
+        }
+        studentService.addStudent(student);
+        return succeed();
+    }
 }

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

@@ -129,4 +129,6 @@ public interface StudentService extends IService<Student> {
      * @param toTenantId 机构ID
      */
     void updateTenant(Student student, Long toTenantId);
+
+    void addStudent(StudentWrapper.Student student);
 }

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
@@ -19,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.StudentTotal;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.entity.UserBindingTeacher;
 import com.yonge.cooleshow.biz.dal.entity.UserTenantAlbumRecord;
@@ -30,6 +32,7 @@ import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.StudentTotalService;
 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.service.UserTenantAlbumRecordService;
 import com.yonge.cooleshow.biz.dal.vo.MyFollow;
@@ -493,6 +496,39 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 .update();
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void addStudent(StudentWrapper.Student student) {
+        Long tenantId = student.getTenantId();
+        // 更新头像
+        if (StringUtils.isEmpty(student.getAvatar())) {
+            String avatar;
+            if (tenantId != -1L) {
+                if (student.getGender().equals(1)) {
+                    avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_BOY_AVATAR);
+                } else {
+                    avatar = sysConfigService.findConfigValue(SysConfigConstant.TENANT_STUDENT_GIRL_AVATAR);
+                }
+            } else {
+                avatar = sysConfigService.findConfigValue(SysConfigConstant.DEFAULT_HEARD);
+            }
+            student.setAvatar(avatar);
+        }
+        this.save(student);
+
+        // 加好友
+        if (tenantId != -1) {
+            // 自动与机构老师成为好友
+            List<Teacher> teacherList = teacherDao.selectList(Wrappers.<Teacher>lambdaQuery()
+                    .eq(Teacher::getTenantId, tenantId));
+            if(!teacherList.isEmpty()){
+                teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
+                        new HashSet<>(ImmutableList.of(student.getId()))));
+            }
+        }
+
+    }
+
     private Boolean updateStudent(StudentWrapper.Student studentInfo) {
         StudentVo student = detail(studentInfo.getId());
         if (student == null) {

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

@@ -421,6 +421,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     }
 
     private Teacher insertOrUpdateTeacher(TeacherSubmitReq teacherSubmitReq) {
+        if(ESettlementFrom.NO.equals(teacherSubmitReq.getSettlementFrom())){
+            teacherSubmitReq.setIsSettlement(false);
+        }
         Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
         if (null == teacher) {
             teacher = new Teacher();