Browse Source

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into saas_wangzhao

zouxuan 2 years ago
parent
commit
4b2ed4c9c9

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java

@@ -28,7 +28,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .authorizeRequests().antMatchers(
                         "/task/**", "/user/updatePassword", "/user/noAuth/queryUserByPhone",
                         "/user/queryUserByPhone", "/user/queryClient", "/user/add", "/user/queryUserById/*",
-                        "/queryUserInfo").hasIpAddress("0.0.0.0/0")
+                        "/queryUserInfo","/api/queryUserInfo").hasIpAddress("0.0.0.0/0")
                 .anyRequest().authenticated().and().httpBasic();
     }
 

+ 18 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -1,9 +1,11 @@
 package com.ym.mec.auth.core.filter;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.service.SysUserDeviceService;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.security.SecurityConstants;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AuthenticationServiceException;
 import org.springframework.security.authentication.LockedException;
@@ -19,6 +21,7 @@ import javax.servlet.FilterChain;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import java.io.IOException;
 
 public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
@@ -63,12 +66,22 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 		}
 
 		String clientId = request.getParameter(clientIdParameter).toUpperCase();
-		if("EDUCATION".equals(clientId)){
-			clientId = "SYSTEM";
-		}
-		if (!userInfo.getSysUser().getUserType().contains(clientId)) {
-			throw new LockedException("用户不存在,请联系教务老师");
+		
+		if(StringUtils.equalsIgnoreCase("oa", clientId)){
+
+			if (!(userInfo.getSysUser().getUserType().contains(SysUserType.TEACHER.getCode()) || userInfo.getSysUser().getUserType().contains(SysUserType.SYSTEM.getCode()))) {
+				throw new LockedException("当前登录用户没有注册");
+			}
+		} else {
+
+			if("EDUCATION".equals(clientId)){
+				clientId = "SYSTEM";
+			}
+			if (!userInfo.getSysUser().getUserType().contains(clientId)) {
+				throw new LockedException("用户不存在,请联系教务老师");
+			}
 		}
+		
 		// 检查设备
 		String deviceNum = request.getParameter(deviceNumParameter);
 		if (StringUtils.isNotBlank(deviceNum)) {

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Teacher.java

@@ -128,6 +128,15 @@ public class Teacher extends SysUser {
 	@ApiModelProperty(value = "是否结算课酬")
 	private Boolean isSettlementSalary = true;
 
+	@ApiModelProperty(value = "社保部门id",required = false)
+	private Integer deptId;
+
+	@ApiModelProperty(value = "部门ids",required = false)
+	private String deptIds;
+
+	@ApiModelProperty(value = "岗位管理部门",required = false)
+	private String postDeptIds;
+
 	public Boolean getIsSettlementSalary() {
 		return isSettlementSalary;
 	}
@@ -400,6 +409,30 @@ public class Teacher extends SysUser {
 		this.contractUrl = contractUrl;
 	}
 
+	public Integer getDeptId() {
+		return deptId;
+	}
+
+	public void setDeptId(Integer deptId) {
+		this.deptId = deptId;
+	}
+
+	public String getDeptIds() {
+		return deptIds;
+	}
+
+	public void setDeptIds(String deptIds) {
+		this.deptIds = deptIds;
+	}
+
+	public String getPostDeptIds() {
+		return postDeptIds;
+	}
+
+	public void setPostDeptIds(String postDeptIds) {
+		this.postDeptIds = postDeptIds;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/OaUserService.java

@@ -1,6 +1,6 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.auth.api.entity.SysUser;
 
 public interface OaUserService {
 
@@ -9,7 +9,7 @@ public interface OaUserService {
      * @param employee
      * @return
      */
-    Object addOaUser(Employee employee);
+    Object addOaUser(SysUser user);
 
 
     /**
@@ -17,7 +17,7 @@ public interface OaUserService {
      * @param employee
      * @return
      */
-    Object updateOaUser(Employee employee);
+    Object updateOaUser(SysUser user);
 
 
     /**
@@ -25,7 +25,7 @@ public interface OaUserService {
      * @param employee
      * @return
      */
-    Object delOaUser(Employee employee);
+    Object delOaUser(Integer userId);
 
 
     /**
@@ -33,5 +33,5 @@ public interface OaUserService {
      * @param employee
      * @return
      */
-    Object reInsertOaUser(Employee employee);
+    Object reInsertOaUser(Integer userId);
 }

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -4579,12 +4579,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                         }
                                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
                                     } else if (courseSchedule.getType() == CourseScheduleType.HIGH) {
-                                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
-                                        if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
-                                            throw new BizException("请设置老师课酬");
-                                        }
-                                        salary = JSON.parseObject(teacherDefaultMusicGroupSalaryHigh.getSalaryRuleJson()).getBigDecimal(aLong + "");
-                                        /*MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+//                                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
+//                                        if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
+//                                            throw new BizException("请设置老师课酬");
+//                                        }
+//                                        salary = JSON.parseObject(teacherDefaultMusicGroupSalaryHigh.getSalaryRuleJson()).getBigDecimal(aLong + "");
+                                        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
                                         if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
                                             throw new BizException("请设置老师课酬");
@@ -4596,7 +4596,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                         if (Objects.isNull(salary)) {
                                             throw new BizException("请设置老师课酬");
                                         }
-                                        salary = salary.multiply(new BigDecimal(aLong));*/
+                                        salary = salary.multiply(new BigDecimal(aLong));
                                     }
                                     if (Objects.isNull(salary)) {
                                         throw new BizException("请设置老师课酬");

+ 49 - 24
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -1,20 +1,64 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.security.authentication.LockedException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysRole;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.CooperationOrganDao;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.ImGroupDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SysEmployeePositionDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.EmployeeDto;
 import com.ym.mec.biz.dal.dto.EmployeeLevelDto;
 import com.ym.mec.biz.dal.dto.SysUserDto;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserTenant;
+import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.ParamEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.biz.dal.page.UserBasicQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.EmployeeService;
+import com.ym.mec.biz.service.ImGroupMemberService;
+import com.ym.mec.biz.service.ImUserFriendService;
+import com.ym.mec.biz.service.OaUserService;
+import com.ym.mec.biz.service.SysEmployeePositionService;
+import com.ym.mec.biz.service.SysUserTenantService;
+import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImResult;
@@ -28,25 +72,6 @@ import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupModel;
 import com.ym.mec.util.collection.MapUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RBucket;
-import org.redisson.api.RedissonClient;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DuplicateKeyException;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.security.authentication.LockedException;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.io.FileNotFoundException;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
 
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
@@ -334,14 +359,14 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
                 sysUserFeignService.exitByPhone("system", sysUser.getPhone());
 
                 //更新OA信息
-                oaUserService.delOaUser(employee);
+                oaUserService.delOaUser(employee.getUserId());
                 break;
             case REINSTATE:
                 //离职,如果有关联课程组教务老师,
                 employeeDao.updateUserDemissionDate(employeeId);
 
                 //更新OA信息
-                oaUserService.reInsertOaUser(employee);
+                oaUserService.reInsertOaUser(employee.getUserId());
                 break;
         }
     }

+ 107 - 45
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OaServiceImpl.java

@@ -1,19 +1,22 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
 import com.alibaba.fastjson.JSON;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.service.OaUserService;
 import com.ym.mec.oa.OaFeignService;
 import com.ym.mec.oa.entity.OAUser;
 import com.ym.mec.oa.entity.PostDept;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
 
 
 @Service
@@ -23,62 +26,121 @@ public class OaServiceImpl implements OaUserService {
 
     @Override
     @Async
-    public Object addOaUser(Employee employee) {
+    public Object addOaUser(SysUser user) {
         OAUser oaUser = new OAUser();
-        oaUser.setMecUserId(employee.getUserId());
-        oaUser.setUserName(employee.getRealName());
-        oaUser.setNickName(employee.getRealName());
-        oaUser.setPhone(employee.getPhone());
-        if(employee.getGender() != null){
-            oaUser.setSex(employee.getGender().toString());
-        }
-        oaUser.setDeptId(employee.getDeptId());
-        oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
-        oaUser.setAvatar(employee.getAvatar());
-        oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
-        if (oaUser.getPostDeptIds() != null) {
-            List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
-            oaUser.setPostIds(postIds);
-        }
+		if (user instanceof Employee) {
+			Employee employee = (Employee) user;
+			oaUser.setMecUserId(employee.getUserId());
+			oaUser.setUserName(employee.getRealName());
+			oaUser.setNickName(employee.getRealName());
+			oaUser.setPhone(employee.getPhone());
+			if (employee.getGender() != null) {
+				oaUser.setSex(employee.getGender().toString());
+			}
+			oaUser.setDeptId(employee.getDeptId());
+            if(StringUtils.isNotBlank(employee.getDeptIds())){
+            	oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
+            }
+			oaUser.setAvatar(employee.getAvatar());
+
+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){
+            	oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
+            }
+			if (oaUser.getPostDeptIds() != null) {
+				List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
+				oaUser.setPostIds(postIds);
+			}
+		}else if(user instanceof Teacher){
+
+			Teacher employee = (Teacher) user;
+			oaUser.setMecUserId(employee.getId());
+			oaUser.setUserName(employee.getRealName());
+			oaUser.setNickName(employee.getRealName());
+			oaUser.setPhone(employee.getPhone());
+			if (employee.getGender() != null) {
+				oaUser.setSex(employee.getGender().toString());
+			}
+			oaUser.setDeptId(employee.getDeptId());
+
+            if(StringUtils.isNotBlank(employee.getDeptIds())){
+            	oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
+            }
+			oaUser.setAvatar(employee.getAvatar());
+
+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){
+            	oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
+            }
+			if (oaUser.getPostDeptIds() != null) {
+				List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
+				oaUser.setPostIds(postIds);
+			}
+		}
         return oaFeignService.register(oaUser);
     }
 
     @Override
-    public Object updateOaUser(Employee employee) {
+    public Object updateOaUser(SysUser user) {
         OAUser oaUser = new OAUser();
-        oaUser.setMecUserId(employee.getUserId());
-        oaUser.setUserName(employee.getRealName());
-        oaUser.setNickName(employee.getRealName());
-        oaUser.setPhone(employee.getPhone());
-        oaUser.setSex(employee.getGender().toString());
-        oaUser.setAvatar(employee.getAvatar());
-        if(Objects.nonNull(employee.getDeptId())){
-            oaUser.setDeptId(employee.getDeptId());
-        }
-        if(Objects.nonNull(employee.getDeptIds())){
-            oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
-        }
-        if(Objects.nonNull(employee.getPostDeptIds())){
-            oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
-            List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
-            oaUser.setPostIds(postIds);
+        
+        if (user instanceof Employee) {
+        	Employee employee = (Employee) user;
+            oaUser.setMecUserId(employee.getUserId());
+            oaUser.setUserName(employee.getRealName());
+            oaUser.setNickName(employee.getRealName());
+            oaUser.setPhone(employee.getPhone());
+			if (employee.getGender() != null) {
+				oaUser.setSex(employee.getGender().toString());
+			}
+            oaUser.setAvatar(employee.getAvatar());
+            if(Objects.nonNull(employee.getDeptId())){
+                oaUser.setDeptId(employee.getDeptId());
+            }
+            if(StringUtils.isNotBlank(employee.getDeptIds())){
+                oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
+            }
+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){
+                oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
+                List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
+                oaUser.setPostIds(postIds);
+            }
+        }else if(user instanceof Teacher){
+        	Teacher employee = (Teacher) user;
+            oaUser.setMecUserId(employee.getId());
+            oaUser.setUserName(employee.getRealName());
+            oaUser.setNickName(employee.getRealName());
+            oaUser.setPhone(employee.getPhone());
+			if (employee.getGender() != null) {
+				oaUser.setSex(employee.getGender().toString());
+			}
+            oaUser.setAvatar(employee.getAvatar());
+            if(Objects.nonNull(employee.getDeptId())){
+                oaUser.setDeptId(employee.getDeptId());
+            }
+            if(StringUtils.isNotBlank(employee.getDeptIds())){
+                oaUser.setDeptIds(JSON.parseArray(employee.getDeptIds(), Integer.class));
+            }
+            if(StringUtils.isNotBlank(employee.getPostDeptIds())){
+                oaUser.setPostDeptIds(JSON.parseArray(employee.getPostDeptIds(), PostDept.class));
+                List<Integer> postIds = oaUser.getPostDeptIds().stream().map(PostDept::getPostId).collect(Collectors.toList());
+                oaUser.setPostIds(postIds);
+            }
         }
         return oaFeignService.updateUser(oaUser);
     }
 
     @Override
     @Async
-    public Object delOaUser(Employee employee) {
+    public Object delOaUser(Integer userId) {
         OAUser oaUser = new OAUser();
-        oaUser.setMecUserId(employee.getUserId());
+        oaUser.setMecUserId(userId);
         return oaFeignService.delUser(oaUser);
     }
 
     @Override
     @Async
-    public Object reInsertOaUser(Employee employee) {
+    public Object reInsertOaUser(Integer userId) {
         OAUser oaUser = new OAUser();
-        oaUser.setMecUserId(employee.getUserId());
+        oaUser.setMecUserId(userId);
         return oaFeignService.reInsertUser(oaUser);
     }
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -342,7 +342,7 @@ public class StudentServeServiceImpl implements StudentServeService {
     public void exercisesSituationStatistics2(String monday, Integer tenantId) {
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
         
-        //统计上周的服务指标总数
+        /*//统计上周的服务指标总数
         int preWeekServiceNum = studentExtracurricularExercisesSituationDao.countWeekServiceNum(nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()).plusDays(-7).toString(), tenantId);
         
         //统计上周数据今日更新的条数
@@ -350,7 +350,7 @@ public class StudentServeServiceImpl implements StudentServeService {
         
         if(preWeekServiceNum>0 && lastWeekTodayUpdateNum<=0){
             nowDate = nowDate.plusDays(-nowDate.getDayOfWeek().getValue());
-        }
+        }*/
 
         if(StringUtils.isNotBlank(monday)){
             nowDate=LocalDate.parse(monday, DateUtil.dateFormatter);

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -458,7 +458,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
-				if (messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
+				if (debugMode == true || messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
 								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
@@ -542,7 +542,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
-				if (messageSenderPluginContext.batchSend(MessageSender.JIGUANG, messageConfig.getDescription(),
+				if (debugMode == true || messageSenderPluginContext.batchSend(MessageSender.JIGUANG, messageConfig.getDescription(),
 								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,sound,channelId)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
@@ -580,7 +580,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
-				if (messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType,"default",null)) {
+				if (debugMode == true || messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType,"default",null)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 					status = SendStatusEnum.FAILED;

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -20,7 +20,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageUtil;
+
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -57,6 +59,7 @@ import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.OaUserService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.constant.CommonConstants;
@@ -117,6 +120,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
     private CloudTeacherDao cloudTeacherDao;
     @Autowired
     private TenantInfoService tenantInfoService;
+    @Autowired
+    private OaUserService oaUserService;
 
     @Autowired
     private RealnameAuthenticationPluginContext realnameAuthenticationPluginContext;
@@ -169,6 +174,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
             teacher.setImToken(imResult.getToken());
             teacherDao.updateUser(teacher);
         }
+        //添加到OA
+        oaUserService.addOaUser(teacher);
         return teacher.getId();
     }
 
@@ -240,14 +247,24 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
         imGroupDao.updateNickname(teacher.getId(), teacher.getRealName());
         imGroupDao.updateUserFriendNickname(teacher.getId(), teacher.getRealName());
         imFeignService.update(new ImUserModel(teacher.getId().toString(), teacher.getRealName(), teacher.getAvatar()));
+        //更新OA信息
+        teacher.setAvatar(user.getAvatar());
+        teacher.setUsername(user.getUsername());
+        teacher.setRealName(user.getRealName());
+        teacher.setPhone(user.getPhone());
+        teacher.setGender(user.getGender());
+        oaUserService.updateOaUser(teacher);
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void deleteTeacher(Long userId) {
         SysUser sysUser = new SysUser();
         sysUser.setId(userId.intValue());
         sysUser.setDelFlag(YesOrNoEnum.YES);
         teacherDao.updateUser(sysUser);
+        //更新OA信息
+        oaUserService.delOaUser(sysUser.getId());
     }
 
     @Override

+ 27 - 5
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -36,6 +36,9 @@
         <result column="create_time_" property="createTime"/>
         <result column="memo_" property="memo"/>
         <result column="lecture_num_" property="lectureNum"/>
+        <result column="dept_id_" property="deptId"/>
+        <result column="dept_ids_" property="deptIds"/>
+        <result column="post_dept_ids_" property="postDeptIds"/>
 
         <result column="username_" property="username"/>
         <result column="password_" property="password"/>
@@ -115,7 +118,7 @@
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="Teacher">
         SELECT t.id_,t.organ_id_ teacher_organ_id_,t.job_type_,t.job_nature_,t.is_probation_period_,t.education_background_,t.graduate_school_,t.graduate_school_,
-        t.technical_titles_,t.work_unit_,t.subject_id_,t.entry_date_,t.certificate_type_,t.certificate_num_,t.flow_organ_range_,t.update_time_,
+        t.technical_titles_,t.work_unit_,t.subject_id_,t.entry_date_,t.certificate_type_,t.certificate_num_,t.flow_organ_range_,t.update_time_,t.dept_id_,t.dept_ids_,t.post_dept_ids_,
         t.create_time_,t.introduction_,t.demission_date_,t.formal_staff_date_,t.is_support_course_schedule_rewards_rules_,t.is_support_extra_practice_lesson_,
         t.lecture_num_,t.idcard_front_img_,t.idcard_back_img_,t.idcard_hand_img_,t.memo_,
         su.real_name_,su.id_card_no_,su.password_,su.salt_,su.phone_,su.avatar_,
@@ -142,8 +145,8 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Teacher" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO teacher
-        (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,formal_staff_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_,is_support_course_schedule_rewards_rules_,idcard_front_img_,idcard_back_img_,idcard_hand_img_,memo_,is_settlement_salary_,tenant_id_)
-        VALUES(#{id},#{organId},#{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{formalStaffDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportCourseScheduleRewardsRules},#{idcardFrontImg},#{idcardBackImg},#{idcardHandImg},#{memo},#{isSettlementSalary},#{tenantId})
+        (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,formal_staff_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_,is_support_course_schedule_rewards_rules_,idcard_front_img_,idcard_back_img_,idcard_hand_img_,memo_,is_settlement_salary_,tenant_id_,dept_id_,dept_ids_,post_dept_ids_)
+        VALUES(#{id},#{organId},#{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{formalStaffDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportCourseScheduleRewardsRules},#{idcardFrontImg},#{idcardBackImg},#{idcardHandImg},#{memo},#{isSettlementSalary},#{tenantId},#{deptId},#{deptIds},#{postDeptIds})
     </insert>
 
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
@@ -225,6 +228,15 @@
             <if test="isSettlementSalary != null">
                 is_settlement_salary_ = #{isSettlementSalary},
             </if>
+            <if test="deptId != null">
+                dept_id_ = #{deptId},
+            </if>
+            <if test="deptIds != null">
+                dept_ids_ = #{deptIds},
+            </if>
+            <if test="postDeptIds != null">
+                post_dept_ids_ = #{postDeptIds},
+            </if>
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
@@ -302,6 +314,15 @@
             <if test="isSettlementSalary != null">
                 is_settlement_salary_ = #{isSettlementSalary},
             </if>
+            <if test="deptId != null">
+                dept_id_ = #{deptId},
+            </if>
+            <if test="deptIds != null">
+                dept_ids_ = #{deptIds},
+            </if>
+            <if test="postDeptIds != null">
+                post_dept_ids_ = #{postDeptIds},
+            </if>
         </set>
         WHERE id_ = #{id} and tenant_id_ = #{tenantId}
     </update>
@@ -375,7 +396,7 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Teacher" parameterType="map">
-        SELECT t.id_,su.real_name_,su.lock_flag_,t.subject_id_,su.phone_,t.organ_id_ teacher_organ_id_,t.organ_id_,t.is_support_extra_practice_lesson_,
+        SELECT t.id_,su.real_name_,su.lock_flag_,t.subject_id_,su.phone_,t.organ_id_ teacher_organ_id_,t.organ_id_,t.is_support_extra_practice_lesson_,t.dept_id_,t.dept_ids_,t.post_dept_ids_,
         t.job_nature_,t.demission_date_,t.formal_staff_date_,t.is_probation_period_,t.memo_,GROUP_CONCAT(s.name_) subject_name_,su.del_flag_,t.is_settlement_salary_,tc.url_ contract_url_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
@@ -528,7 +549,8 @@
             su.username_ nickName,
             su.real_name_ userName,
             su.gender_ gender,
-            su.phone_ phone
+            su.phone_ phone,
+            su.avatar_ avatar
         FROM sys_user su
         <where>
                 su.id_ IN