该系统有以下主要角色:省厅负责人,地市负责人,评估组,学校负责人。其中学校分为高校和中小学。省厅负责人制定和管理相应的指标,高校由省厅直接管理,中小学由地市管理,对应负责人开启考评,组织评估组,统计相应结果。高校部分流程为:省厅负责人设置指标并启动年度评估高校负责人数据填报与自评省厅负责人创建评估组并分配评估任务评估组进校评估后打分省厅负责人统计评估结果并分析高校负责人查看结果。
中小学部分流程为:省厅负责人设置指标地市负责人启动评估学校负责人填报数据与自评地市负责人创建评估组并分配任务评估组进校评估并打分地市负责人统计分析评估结果省厅负责人审核分析结果学校负责人查看结果。
系统分为基础数据管理、评估指标管理、过程控制与专家管理、评估、评估结果查询五个模块。其中基础数据管理分为:高校信息管理、中小学信息管理、地市负责人账号管理、省厅负责人账号管理等功能;评估指标管理分为:高校评估指标模板管理、中小学评估指标模板管理、高校年度评估指标管理、中小学年度评估指标管理;过程控制与专家管理分为:高校评估过程控制、中小学评估过程控制、高校评估专家管理、中小学评估专家管理、高校评估专家任务分配、中小学专家任务分配等功能;评估分为:中小学自评及数据填报、高校自评及数据填报、高校评估专家打分、中小学评估专家打分等功能;评估结果查询分为:中小学评估结果统计、高校评估结果统计、中小学评估结果查看、高校评估结果查看等功能。
关键代码:
/**
- 用户账户:用于保存用户登录信息(User)表控制层 / @Slf4j @RestController @RequestMapping("user") public class UserController extends BaseController<User, UserService> { /*
- 服务对象 */ @Autowired public UserController(UserService service) { setService(service); }
@Autowired private UserGroupService userGroupService;
@Autowired private RedisTemplate redisTemplate;
/**
- 注册
- @param user
- @return */ @PostMapping("register") public Map<String, Object> signUp(@RequestBody User user) { // 查询用户 Map<String, String> query = new HashMap<>(); Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user)); query.put("username",user.getUsername()); List list = service.selectBaseList(service.select(query, new HashMap<>())); if (list.size()>0){ return error(30000, "用户已存在"); } map.put("password",service.encryption(String.valueOf(map.get("password")))); service.insert(map); return success(1); }
/**
- 找回密码
- @param form
- @return */ @PostMapping("forget_password") public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) { JSONObject ret = new JSONObject(); String username = form.getUsername(); String code = form.getCode(); String password = form.getPassword(); // 判断条件 if(code == null || code.length() == 0){ return error(30000, "验证码不能为空"); } if(username == null || username.length() == 0){ return error(30000, "用户名不能为空"); } if(password == null || password.length() == 0){ return error(30000, "密码不能为空"); }
// 查询用户 Map<String, String> query = new HashMap<>(); query.put("username",username); List list = service.selectBaseList(service.select(query, service.readConfig(request))); if (list.size() > 0) { User o = (User) list.get(0); JSONObject query2 = new JSONObject(); JSONObject form2 = new JSONObject(); // 修改用户密码 query2.put("user_id",o.getUserId()); form2.put("password",service.encryption(password)); service.update(query, service.readConfig(request), form2); return success(1); } return error(70000,"用户不存在"); }
/**
- 登录
- @param data
- @param httpServletRequest
- @return */ @PostMapping("login") public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) { log.info("[执行登录接口]");
String username = data.get("username"); String email = data.get("email"); String phone = data.get("phone"); String password = data.get("password");
try { password = RsaUtils.decryptByPrivateKey(password); }catch (Exception e){ return error(30000,"解密失败"); }
List resultList = null; Map<String, String> map = new HashMap<>(); if(username != null && "".equals(username) == false){ map.put("username", username); resultList = service.selectBaseList(service.select(map, new HashMap<>())); } else if(email != null && "".equals(email) == false){ map.put("email", email); resultList = service.selectBaseList(service.select(map, new HashMap<>())); } else if(phone != null && "".equals(phone) == false){ map.put("phone", phone); resultList = service.selectBaseList(service.select(map, new HashMap<>())); }else{ return error(30000, "账号或密码不能为空"); } if (resultList == null || password == null) { return error(30000, "账号或密码不能为空"); } //判断是否有这个用户 if (resultList.size()<=0){ return error(30000,"用户不存在"); }
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>(); groupMap.put("name",byUsername.getUserGroup()); List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>())); if (groupList.size()<1){ return error(30000,"用户组不存在"); }
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态 if (!StringUtils.isEmpty(userGroup.getSourceTable())){ String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId()); if (res==null){ return error(30000,"用户不存在"); } if (!res.equals("已通过")){ return error(30000,"该用户审核未通过"); } }
//查询用户状态 if (byUsername.getState()!=1){ return error(30000,"用户非可用状态,不能登录"); }
String face = data.get("is_face"); String md5password = service.encryption(password); if (!StringUtils.isEmpty(face) && face.equals("face")){ if (byUsername.getPassword().equals(md5password)) { // 返回用户信息 JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername)); JSONObject ret = new JSONObject(); ret.put("obj",user); return success(ret); } else { return error(30000, "账号或密码不正确"); } }else { if (byUsername.getPassword().equals(md5password)) { // 存储Token到数据库 AccessToken accessToken = new AccessToken(); accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", "")); accessToken.setUser_id(byUsername.getUserId());
} }