package com.moral.api.controller; import com.google.code.kaptcha.impl.DefaultKaptcha; import com.moral.api.pojo.dto.account.AccountDeleteDTO; import com.moral.api.pojo.dto.account.AccountInsertDTO; import com.moral.api.pojo.dto.account.AccountQueryDTO; import com.moral.api.pojo.dto.account.AccountUpdateDTO; import com.moral.api.pojo.dto.login.LoginDTO; import com.moral.api.pojo.request.*; import com.moral.api.pojo.vo.account.AccountDeleteVO; import com.moral.api.pojo.vo.account.AccountInsertVO; import com.moral.api.pojo.vo.account.AccountQueryVO; import com.moral.api.pojo.vo.account.AccountUpdateVO; import com.moral.api.pojo.vo.login.LoginVO; import com.moral.api.service.ManageAccountService; import com.moral.constant.Constants; import com.moral.constant.ResultMessage; import com.moral.util.KaptchaUtils; import com.moral.util.TokenUtils; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Slf4j @Api(tags = {"后台账户管理"}) @RestController @RequestMapping("/account") public class AccountController { @Resource ManageAccountService accountService; @Autowired @Qualifier("tokenRedisTemplate") RedisTemplate redisTemplate; @PostMapping("login") public ResultMessage login(@RequestBody LoginRequest loginRequest) { if (!loginRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); LoginDTO loginDTO = accountService.login(loginRequest); LoginVO loginVO = LoginVO.convert(loginDTO); if(loginVO.getCode().equals(loginVO.SUCCESS)) return ResultMessage.ok(loginVO); return ResultMessage.fail(loginVO); } @PostMapping("logout") public ResultMessage logout(@RequestBody LogoutRequest logoutRequest, HttpServletRequest request) { if(!logoutRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); String token = request.getHeader("token"); logoutRequest.setToken(token); if(accountService.logout(logoutRequest)) return ResultMessage.ok("注销成功"); return ResultMessage.fail("注销异常"); } @PostMapping("insert") public ResultMessage insert(@RequestBody AccountInsertRequest accountInsertRequest){ if(!accountInsertRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); AccountInsertDTO accountInsertDTO = accountService.insertAccount(accountInsertRequest); AccountInsertVO accountInsertVO = AccountInsertVO.convert(accountInsertDTO); if(accountInsertVO.getCode().equals(accountInsertVO.SUCCESS)) return ResultMessage.ok(accountInsertVO); return ResultMessage.fail(accountInsertVO); } @GetMapping("query") public ResultMessage query(AccountQueryRequest accountQueryRequest){ if(!accountQueryRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); AccountQueryDTO accountQueryDTO = accountService.queryAccount(accountQueryRequest); AccountQueryVO accountQueryVO = AccountQueryVO.convert(accountQueryDTO); return ResultMessage.ok(accountQueryVO); } @PostMapping("update") public ResultMessage update(@RequestBody AccountUpdateRequest accountQeuryRequest){ if(!accountQeuryRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); AccountUpdateDTO accountUpdateDTO = accountService.updateAccount(accountQeuryRequest); AccountUpdateVO accountUpdateVO = AccountUpdateVO.convert(accountUpdateDTO); if(accountUpdateVO.getCode().equals(accountUpdateVO.SUCCESS)) return ResultMessage.ok(accountUpdateVO); return ResultMessage.fail(accountUpdateVO); } @PostMapping("delete") public ResultMessage delete(@RequestBody AccountDeleteRequest accountDeleteRequest){ if(!accountDeleteRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); AccountDeleteDTO accountDeleteDTO = accountService.deleteAccount(accountDeleteRequest); AccountDeleteVO accountDeleteVO = AccountDeleteVO.convert(accountDeleteDTO); if(accountDeleteVO.getCode().equals(accountDeleteVO.SUCCESS)) return ResultMessage.ok(accountDeleteVO); return ResultMessage.fail(accountDeleteVO); } @PostMapping("yanzhengma") public String yanzhengma(HttpServletResponse response) throws IOException { KaptchaUtils.createVerificationCode(); TokenUtils.getToken("1",1); return null; } }