package com.huaheng.framework.token; import com.huaheng.common.utils.StringUtils; import com.huaheng.framework.shiro.service.PasswordService; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.domain.Result; import com.huaheng.pc.system.user.domain.User; import com.huaheng.pc.system.user.service.IUserService; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Calendar; import java.util.Map; /** * Created by Enzo Cotter on 2020/6/11. */ @RestController @RequestMapping("/api") public class TokenController extends BaseController { @Resource private TokenService tokenService; @Resource private IUserService userService; @Resource private PasswordService passwordService; @PostMapping("/getToken") @ResponseBody public Result getToken(String username, String password, String warehouseCode) { if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { return Result.error("用户名和密码不能为空"); } if (StringUtils.isEmpty(warehouseCode)) { return Result.error("请选择仓库"); } User user = userService.selectUserByLoginName(username); if (!userService.checkWarehouseCodeAndUserName(warehouseCode, username)) { return Result.error("用户没有该仓库操作权限"); } if (user.getPassword().equals(passwordService.encryptPassword(user.getLoginName(), password, user.getSalt()))) { String token = tokenService.createToken(user); Result ajaxResult = Result.success("成功"); ajaxResult.put("token", token); ajaxResult.put("expireTime", Calendar.getInstance().getTime()); return ajaxResult; } else { return Result.error("密码错误"); } } @PostMapping("/getTokenForMobile") @ResponseBody public AjaxResult getTokenForMobile(@RequestBody @ApiParam(value="code和password的Map集合") Map<String, String> param) { String userName = param.get("userName"); String password = param.get("password"); if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)) { return AjaxResult.error("用户名和密码不能为空"); } User user = userService.selectUserByLoginName(userName); if (user.getPassword().equals(passwordService.encryptPassword(user.getLoginName(), password, user.getSalt()))) { String token = tokenService.createTokenForMobile(user); return AjaxResult.success("获取token成功").setData(token); } else { return AjaxResult.error("密码错误"); } } }