package com.chuanghai.video.controller; import com.chuanghai.video.core.ResponseResult; import com.chuanghai.video.entity.Admin; import com.chuanghai.video.mapper.AdminMapper; import com.chuanghai.video.util.JwtUtil; import com.chuanghai.video.util.PasswordEncryptionUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.sql.Timestamp; import java.util.HashMap; import java.util.List; import java.util.Map; @RestController @RequestMapping("/videoAdmin") public class AdminController { @Autowired private JwtUtil jwtUtil; @Autowired private AdminMapper adminMapper; /** * 登录 * * @param admin 用户对象 * @return 返回响应 */ @PostMapping("/login") public ResponseResult login(@RequestBody Admin admin) { try { String username = admin.getUsername(); String password = admin.getPassword(); if (username == null || password == null) return ResponseResult.failed("【用户名】或【密码】为空!"); Admin u = new Admin(); u.setUsername(username); List login = adminMapper.login(u); // 检验用户是否在数据库中 if (login.size() > 0) { String s = encryption(password); if (s.equals(login.get(0).getPassword())) { // 生成token String token = jwtUtil.generateToken(username); Map strMap = new HashMap<>(); strMap.put("token", token); return ResponseResult.success(strMap); } else { return ResponseResult.failed("【用户名】或【密码】错误!"); } } else { return ResponseResult.failed("【用户名】或【密码】错误!"); } } catch (Exception e) { return ResponseResult.failed("登录失败:" + e.getMessage()); } } /** * 管理员用户分页列表,查询分页等 * * @param pageNum 当前页 * @param pageSize 每页记录数 * @param name 姓名 * @param phone 手机 * @param adminType 用户类型 * @param startTime 开始时间 * @param endTime 结束时间 * @return 响应结果 */ @GetMapping("/list") public ResponseResult list(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, @RequestParam(value = "name", required = false) String name, @RequestParam(value = "phone", required = false) String phone, @RequestParam(value = "adminType", required = false) String adminType, @RequestParam(value = "startTime", required = false) Timestamp startTime, @RequestParam(value = "endTime", required = false) Timestamp endTime) { if (pageSize < 1) return ResponseResult.failed("每页显示记录数必须大于0!"); Admin admin = new Admin(); admin.setPageNum(pageNum); admin.setPageSize(pageSize); if (!"null".equals(name)) admin.setName(name); if (!"null".equals(phone)) admin.setPhone(phone); if (adminType != null) admin.setAdminType(adminType); if (startTime != null) admin.setStartTime(startTime); if (endTime != null) admin.setEndTime(endTime); try { PageHelper.startPage(admin.getPageNum(), admin.getPageSize()); List admins = adminMapper.list(admin); PageInfo adminPageInfo = new PageInfo<>(admins); return ResponseResult.success(adminPageInfo); } catch (Exception e) { return ResponseResult.failed("列表失败:" + e.getMessage()); } } /** * 增加用户 * * @param admin 用户对象 * @return 响应对象 */ @PostMapping("/add") public ResponseResult add(@RequestBody Admin admin) { try { Boolean aBoolean = checkColumn(admin); if (aBoolean) return ResponseResult.failed("【用户名】、【密码】、【手机】和【用户类型】为空!"); List admins = adminMapper.queryByUsernameOrPhone(admin); if (admins.size() > 0) return ResponseResult.failed("【用户名】或【手机】已被注册!"); admin.setPassword(encryption(admin.getPassword())); int i = adminMapper.add(admin); if (i == 1) return ResponseResult.success("添加用户成功!"); else return ResponseResult.failed("添加用户失败!"); } catch (Exception e) { return ResponseResult.failed("添加用户失败:" + e.getMessage()); } } private Boolean checkColumn(Admin admin) { String username = admin.getUsername(); String password = admin.getPassword(); String phone = admin.getPhone(); String adminType = admin.getAdminType(); return username == null || password == null || phone == null || adminType == null; } /** * 修改用户 * * @param admin 用户对象 * @return 响应对象 */ @PostMapping("/update") public ResponseResult update(@RequestBody Admin admin) { try { Boolean aBoolean = checkColumn(admin); if (aBoolean) return ResponseResult.failed("【用户名】、【密码】、【手机】和【用户类型】为空!"); List admins = adminMapper.queryByUsernameOrPhoneOrOthers(admin); if (admins.size() > 0) return ResponseResult.failed("用户未修改任何内容!"); admin.setPassword(encryption(admin.getPassword())); int i = adminMapper.update(admin); if (i == 1) return ResponseResult.success("修改用户成功!"); else return ResponseResult.failed("修改用户失败!"); } catch (Exception e) { return ResponseResult.failed("修改用户失败:" + e.getMessage()); } } /** * 删除用户 * * @param id 记录id * @return 响应对象 */ @GetMapping("/delete") public ResponseResult delete(@RequestParam(value = "id") String id) { try { if (id == null) { return ResponseResult.failed("【id】为空!"); } else { int i = adminMapper.delete(id); if (i == 1) return ResponseResult.success("删除用户成功!"); else return ResponseResult.failed("可能没有对应的id,删除用户失败!"); } } catch (Exception e) { return ResponseResult.failed("删除用户失败:" + e.getMessage()); } } /** * 修改密码 * * @param admin * @return */ @PostMapping("/updatePassword") public ResponseResult updatePassword(@RequestBody Admin admin) { try { String id = admin.getId(); String password = admin.getPassword(); if (id == null || password == null) return ResponseResult.failed("【id】或【密码】为空!"); // 加密处理 admin.setPassword(encryption(admin.getPassword())); int i = adminMapper.update(admin); if (i == 1) return ResponseResult.success("修改密码成功!"); else return ResponseResult.failed("修改密码失败!"); } catch (Exception e) { return ResponseResult.failed("修改密码失败:" + e.getMessage()); } } /** * 加密 * * @param password * @return */ private String encryption(String password) { return PasswordEncryptionUtil.md5Hash(PasswordEncryptionUtil.sha2Hash(password)); } }