回收员站点绑定检测功能

wxpay
LI-CCONG\李聪聪 7 months ago
parent f9fac004a7
commit 2f593b9022

@ -1,8 +1,10 @@
package cc.yunxi.controller; package cc.yunxi.controller;
import cc.yunxi.aspect.UserTypeAnnotation;
import cc.yunxi.common.domain.CommonResult; import cc.yunxi.common.domain.CommonResult;
import cc.yunxi.domain.dto.UserDTO; import cc.yunxi.domain.dto.UserDTO;
import cc.yunxi.domain.dto.WxLoginDTO; import cc.yunxi.domain.dto.WxLoginDTO;
import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.impl.CommonService; import cc.yunxi.service.impl.CommonService;
import cc.yunxi.utils.UserContext; import cc.yunxi.utils.UserContext;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -46,10 +48,21 @@ public class CommonController {
} }
@ApiOperation("刷新绑定站点")
@GetMapping("/myStation")
@UserTypeAnnotation(UserTypeEnum.RECYCLER)
public CommonResult<UserDTO> checkStation(@RequestHeader("authorization") String token) {
UserDTO userDTO = commonService.checkStation(token);
return CommonResult.success(userDTO);
}
@ApiOperation("登录态检查") @ApiOperation("登录态检查")
@GetMapping("/check_token") @GetMapping("/check_token")
public CommonResult<UserDTO> checkToken() { public CommonResult<UserDTO> checkToken() {
UserDTO userDto = UserContext.getUser(); UserDTO userDto = UserContext.getUser();
return CommonResult.success(userDto); return CommonResult.success(userDto);
} }
} }

@ -56,8 +56,8 @@ public class RecycleOrderController {
public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) { public CommonResult<PageDTO<RecycleOrderRespVO>> queryOrderByPage(@RequestBody RecycleOrderQuery recycleOrderQuery) {
// 1.解析用户上下文 // 1.解析用户上下文
UserDTO userDTO = UserContext.getUser(); UserDTO userDTO = UserContext.getUser();
// recycleOrderQuery.setUserType(userDTO.getUserType()).setStationId(userDTO.getStationId()); recycleOrderQuery.setUserType(userDTO.getUserType()).setStationId(userDTO.getStationId());
recycleOrderQuery.setUserId(userDTO.getId()).setUserType(userDTO.getUserType()); // 默认先从前端获取回收站Id todo // recycleOrderQuery.setUserId(userDTO.getId()).setUserType(userDTO.getUserType()); // 测试时从前端获取回收站Id
// 2.分页查询 // 2.分页查询
Page<RecycleOrder> result = recycleOrderService.queryOrderByPage(recycleOrderQuery); Page<RecycleOrder> result = recycleOrderService.queryOrderByPage(recycleOrderQuery);
PageDTO<RecycleOrderRespVO> recycleOrderPageVO = PageDTO.of(result, RecycleOrderRespVO.class, (s, t) -> { PageDTO<RecycleOrderRespVO> recycleOrderPageVO = PageDTO.of(result, RecycleOrderRespVO.class, (s, t) -> {

@ -23,11 +23,9 @@ public class RecycleOrderQuery extends PageQuery<RecycleOrder> {
@ApiModelProperty(value = "订单状态", required = false, example = "PENDING") @ApiModelProperty(value = "订单状态", required = false, example = "PENDING")
private OrderStatusEnum status; private OrderStatusEnum status;
@ApiModelProperty(value = "回收员当前位置", required = false) @ApiModelProperty(value = "回收员当前位置", required = false)
private LocationDTO location; private LocationDTO location;
@ApiModelProperty(value = "用户类型", hidden = true, example = "CLIENT") @ApiModelProperty(value = "用户类型", hidden = true, example = "CLIENT")
private UserTypeEnum userType; private UserTypeEnum userType;

@ -33,4 +33,11 @@ public interface ICommonService {
* @param token * @param token
*/ */
void logout(String token); void logout(String token);
/**
*
* @param token
*/
UserDTO checkStation(String token);
} }

@ -13,6 +13,7 @@ import cc.yunxi.service.ICommonService;
import cc.yunxi.service.IRecyclerService; import cc.yunxi.service.IRecyclerService;
import cc.yunxi.utils.JwtTool; import cc.yunxi.utils.JwtTool;
import cc.yunxi.utils.RedisTool; import cc.yunxi.utils.RedisTool;
import cc.yunxi.utils.UserContext;
import cc.yunxi.utils.WeChatUtil; import cc.yunxi.utils.WeChatUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
@ -130,6 +131,20 @@ public class CommonService implements ICommonService {
removeToken(token); removeToken(token);
} }
@Override
public UserDTO checkStation(String token) {
UserDTO userDTO = UserContext.getUser();
Recycler recycler = recyclerService.getRecyclerById(userDTO.getId());
if (StrUtil.isEmpty(recycler.getStationId())) {
throw new BizIllegalException("暂未分配站点,请耐心等待管理员处理!");
}
userDTO.setStationId(recycler.getStationId());
this.removeToken(token);
String newToken = this.createToken(userDTO);
userDTO.setToken(newToken);
return userDTO;
}
/** /**
* token * token
@ -150,4 +165,5 @@ public class CommonService implements ICommonService {
public void removeToken(String token) { public void removeToken(String token) {
redisTool.expireKeyAt(TOKEN_KEY + token, new Date()); redisTool.expireKeyAt(TOKEN_KEY + token, new Date());
} }
} }

Loading…
Cancel
Save