package com.moral.api.controller; import com.moral.api.pojo.dto.AccountDTO; import com.moral.api.pojo.dto.LoginDTO; import com.moral.api.pojo.request.AccountAddRequest; import com.moral.api.pojo.request.LoginRequest; import com.moral.api.pojo.request.LogoutRequest; import com.moral.api.pojo.vo.AccountVO; import com.moral.api.pojo.vo.LoginVO; import com.moral.api.service.ManageAccountService; import com.moral.constant.Constants; import com.moral.constant.ResultMessage; 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; @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("add") public ResultMessage add(@RequestBody AccountAddRequest accountAddRequest){ if(!accountAddRequest.valid()) return ResultMessage.fail(Constants.CODE_PARAMETER_IS_MISSING,Constants.MSG_PARAMETER_IS_MISSING); AccountDTO accountDTO = accountService.addAccount(accountAddRequest); AccountVO accountVO = AccountVO.convertToInsertPage(accountDTO); if(accountVO.getCode().equals(accountVO.SUCCESS)) return ResultMessage.ok(accountVO); return ResultMessage.fail(accountVO); } }