diff --git a/servers/modify-user/src/main/java/com/xboe/basic/dao/UserRemoveLogDao.java b/servers/modify-user/src/main/java/com/xboe/basic/dao/UserRemoveLogDao.java new file mode 100644 index 00000000..0262b603 --- /dev/null +++ b/servers/modify-user/src/main/java/com/xboe/basic/dao/UserRemoveLogDao.java @@ -0,0 +1,9 @@ +package com.xboe.basic.dao; + +import com.xboe.basic.entity.UserRemoveLog; +import com.xboe.core.orm.BaseDao; +import org.springframework.stereotype.Repository; + +@Repository +public class UserRemoveLogDao extends BaseDao { +} diff --git a/servers/modify-user/src/main/java/com/xboe/basic/entity/UserRemoveLog.java b/servers/modify-user/src/main/java/com/xboe/basic/entity/UserRemoveLog.java new file mode 100644 index 00000000..6f896292 --- /dev/null +++ b/servers/modify-user/src/main/java/com/xboe/basic/entity/UserRemoveLog.java @@ -0,0 +1,59 @@ +package com.xboe.basic.entity; + +import com.xboe.core.SysConstant; +import com.xboe.core.orm.IdEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * 删除记录表 + * 1.对于已删除的记录做个备份 以防删除错误数据丢失 + * 2.对于未删除的记录,做一个说明 + * */ +@Data +@EqualsAndHashCode(callSuper = false) +@Entity +@Table(name = SysConstant.TABLE_PRE + "user_remove_log") +public class UserRemoveLog extends IdEntity { + + + /** + * 用户id + * */ + @Column(name = "user_id") + private String userId; + + /** + * 用户的sysId + * */ + @Column(name = "sys_id") + private String sysId; + + /** + * 已删除的为true + * 未删除的为false + * */ + @Column(name = "removed") + private Boolean removed; + + /** + * 未删除的原因 + * */ + @Column(name = "message") + private String message; + + + public UserRemoveLog() { + } + + public UserRemoveLog(String userId, String sysId, Boolean removed, String message) { + this.userId = userId; + this.sysId = sysId; + this.removed = removed; + this.message = message; + } +} diff --git a/servers/modify-user/src/main/java/com/xboe/basic/service/IModifyService.java b/servers/modify-user/src/main/java/com/xboe/basic/service/IModifyService.java index 36df2dcf..9d8fd838 100644 --- a/servers/modify-user/src/main/java/com/xboe/basic/service/IModifyService.java +++ b/servers/modify-user/src/main/java/com/xboe/basic/service/IModifyService.java @@ -1,6 +1,38 @@ package com.xboe.basic.service; +import com.xboe.basic.entity.Account; +import com.xboe.basic.entity.User; + +import java.util.List; +import java.util.Map; + public interface IModifyService { - - + + + /** + * 1.取出重复的数据 + * */ + List get(); + + + /** + * 2.取出之后查出 老师身份的用户是不能删的,sysId不同工号相同的不能删 待确认 + * 无关联的用户或者少关联的用户,少关联的用户的数据记录下来,移到多的中 + * */ + Map> find(List list); + + + + + /** + * 在删除前记录下来删除的用户,以防多删误删 + * */ + void saveUserRemove(List userList); + + /** + * 标记删除和删除用户信息 + * */ + void remove(List user, List accounts); + + } diff --git a/servers/modify-user/src/main/java/com/xboe/basic/service/impl/ModifyServiceImpl.java b/servers/modify-user/src/main/java/com/xboe/basic/service/impl/ModifyServiceImpl.java index 9b957f40..9b2ba6f7 100644 --- a/servers/modify-user/src/main/java/com/xboe/basic/service/impl/ModifyServiceImpl.java +++ b/servers/modify-user/src/main/java/com/xboe/basic/service/impl/ModifyServiceImpl.java @@ -1,16 +1,134 @@ package com.xboe.basic.service.impl; +import com.xboe.basic.dao.AccountDao; +import com.xboe.basic.dao.TeacherDao; +import com.xboe.basic.dao.UserDao; +import com.xboe.basic.dao.UserRemoveLogDao; +import com.xboe.basic.entity.Account; +import com.xboe.basic.entity.Teacher; +import com.xboe.basic.entity.User; +import com.xboe.basic.entity.UserRemoveLog; +import com.xboe.core.orm.FieldFilters; +import com.xboe.core.orm.QueryBuilder; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xboe.basic.service.IModifyService; +import org.springframework.transaction.annotation.Transactional; + +import java.sql.Array; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** - * 老系统的机构 + * * */ @Service +@Transactional public class ModifyServiceImpl implements IModifyService { + @Autowired + UserDao userDao; + @Autowired + AccountDao accountDao; + + @Autowired + TeacherDao teacherDao; + + @Autowired + UserRemoveLogDao removeLogDao; + + + + /** + * 1.取出重复的数据 + * + * */ + @Override + public List get() { + //查出用户所有重复的数据,只能采用sql查询 + String sql="select id,user_no,sys_id from boe_user where user_no in(select user_no from boe_user group by user_no having count(user_no)>1)"; + List list = userDao.sqlFindList(sql); + + return list; + } + + /** + * 2.取出之后查出 老师身份的用户是不能删的, 待确认 sysId不同工号相同的不能删 + * 无关联的用户或者少关联的用户,少关联的用户的数据记录下来,移到多的中 + * */ + @Override + public Map> find(List list) { + //过滤掉已经是教师的,sysId不同的,同时记录下来 +// List notDeleteIds = new ArrayList<>(); + Map> map = new HashMap<>(); + //要删除的 + List deleteIds=new ArrayList<>(); + + //同时记录日志 要删的和不删的同时记录 + List userRemoveLogs = new ArrayList<>(); + + //sysId不同工号相同的不能删 + + for (Object[] o:list) { + for (Object[] o1:list) { + if(o[1].equals(o1[1])){ + if(!o[2].equals(o1[2])){ +// notDeleteIds.add((String) o[0]); +// notDeleteIds.add((String) o1[0]); + this.log(o[0].toString(),o[2].toString(),false,"同工号sysId不同,不能删除"); + this.log(o1[0].toString(),o1[2].toString(),false,"同工号sysId不同,不能删除"); + } + } + } + } + + //教师 + List teacherList = teacherDao.getAll(); + for (Teacher t:teacherList) { + for (Object[] o:list) { + if(t.getId().equals(o[0])){ +// notDeleteIds.add((String) o[0]); + this.log(o[0].toString(),o[2].toString(),false,"该id已是教师身份,不能删除"); + } + } + } + return map; + + } + + /** + *日志记录 + * */ + private UserRemoveLog log(String userId,String sysId,Boolean removed,String message){ + UserRemoveLog userRemoveLog = new UserRemoveLog(userId,sysId,removed,message); + return userRemoveLog; + } + + + /** + * 在删除前记录下来删除的用户,以防多删误删 + * */ + @Override + public void saveUserRemove(List userList) { + + } + + /** + * 标记删除和删除用户信息 + * */ + @Override + public void remove(List user, List accounts) { + + } + + /** + * 查询 + * + */ }