package com.ks.app.controller.admin; import com.google.gson.*; import com.google.gson.reflect.TypeToken; import com.ks.app.entity.admin.AdminRole; import com.ks.app.entity.admin.AdminUser; import com.ks.app.service.inter.AdminUserService; import com.ks.app.service.inter.admin.AdminUserRolesService; import com.ks.app.vo.AcceptAdminData; import com.ks.app.vo.AdminUserVO; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.StringUtil; import org.yeshi.utils.TimeUtil; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import javax.validation.constraints.NotEmpty; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Date; import java.util.List; @Controller @RequestMapping("/admin/api/adminuser") public class AdminUserController { @Resource private AdminUserService adminUserService; @Resource private AdminUserRolesService adminUserRolesService; @ResponseBody @RequestMapping("login") public String login(@NotEmpty(message = "账号不能为空") String account, @NotEmpty(message = "密码不能为空") String pwd, @NotEmpty(message = "验证码不能为空") String code, BindingResult bindingResult, HttpSession session) { if (bindingResult.hasErrors()) { String msg = bindingResult.getFieldError().getDefaultMessage(); return JsonUtil.loadFalseResult(msg); } String captcha = session.getAttribute("captcha") + ""; if (StringUtil.isNullOrEmpty(captcha) || !captcha.equalsIgnoreCase(code)) { return JsonUtil.loadFalseResult("验证码错误"); } AdminUser adminUser = adminUserService.selectByAccount(account); if (adminUser == null || !adminUser.getAccount().equals(account)) { return JsonUtil.loadFalseResult("账号不存在"); } if (!StringUtil.Md5(pwd).equalsIgnoreCase(adminUser.getPwd())) { return JsonUtil.loadFalseResult("密码错误"); } session.setAttribute("ADMIN_USER", adminUser); return JsonUtil.loadTrueResult("登录成功"); } @ResponseBody @RequestMapping("list") public String list(AcceptAdminData acceptAdminData, int page, int limit) { List list = adminUserService.list(page, limit); long count = adminUserService.count(); Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer() { @Override public JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) { return date == null ? new JsonPrimitive("") : new JsonPrimitive(TimeUtil.getGernalTime(date.getTime(), "yyyy.MM.dd HH:mm")); } }).registerTypeAdapter(AdminRole.class, new JsonSerializer() { @Override public JsonElement serialize(AdminRole role, Type type, JsonSerializationContext jsonSerializationContext) { return role == null ? new JsonPrimitive("") : new JsonPrimitive(role.getName()); } }).create(); List voList = new ArrayList<>(); //查询角色 for (AdminUser adminUser : list) { adminUser.setPwd(null); List roleList = adminUserRolesService.listRoleByAdminId(adminUser.getAccount()); voList.add(AdminUserVO.create(adminUser, roleList)); } JSONObject data = new JSONObject(); data.put("list", gson.toJson(voList)); data.put("count", count); return JsonUtil.loadTrueResult(data); } @ResponseBody @RequestMapping("getLoginAdminInfo") public String getLoginAdminInfo(AcceptAdminData acceptAdminData) { if (acceptAdminData.getAdminUser() == null) { return JsonUtil.loadFalseResult("尚未登录"); } return JsonUtil.loadTrueResult(AdminUserVO.create(acceptAdminData.getAdminUser())); } @ResponseBody @RequestMapping("get") public String get(AcceptAdminData acceptAdminData, String id) { AdminUser adminUser = adminUserService.selectByAccount(id); if (adminUser == null) { return JsonUtil.loadFalseResult("id不存在"); } adminUser.setPwd(null); List roleList = adminUserRolesService.listRoleByAdminId(adminUser.getAccount()); AdminUserVO vo = AdminUserVO.create(adminUser, roleList); Gson gson = new GsonBuilder().registerTypeAdapter(AdminRole.class, new JsonSerializer() { @Override public JsonElement serialize(AdminRole role, Type type, JsonSerializationContext jsonSerializationContext) { JSONObject json = new JSONObject(); json.put("key", role.name()); json.put("value", role.getName()); return role == null ? new JsonPrimitive("") : new JsonPrimitive(json.toString()); } }).create(); return JsonUtil.loadTrueResult(gson.toJson(vo)); } @ResponseBody @RequestMapping("add") public String add(@RequestBody AdminUserVO vo) { AdminUser adminUser = vo.toEntity(); try { adminUserService.add(adminUser); } catch (Exception e) { return JsonUtil.loadFalseResult(e.getMessage()); } //更新权限 adminUserRolesService.setRoles(adminUser.getAccount(), vo.getRoleList()); return JsonUtil.loadTrueResult(""); } @ResponseBody @RequestMapping("update") public String update(@RequestBody AdminUserVO vo) { AdminUser adminUser = vo.toEntity(); adminUserService.update(adminUser); //更新权限 adminUserRolesService.setRoles(adminUser.getAccount(), vo.getRoleList()); return JsonUtil.loadTrueResult(""); } @ResponseBody @RequestMapping("delete") public String delete(String ids) { Type type = new TypeToken>() { }.getType(); List idList = new Gson().fromJson(ids, type); adminUserService.delete(idList); return JsonUtil.loadTrueResult(""); } }