mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
Merge branch 'dev-zza' into dev
This commit is contained in:
@@ -6,10 +6,12 @@ import com.jsowell.common.UserAgentUtils;
|
||||
import com.jsowell.common.annotation.Anonymous;
|
||||
import com.jsowell.common.core.controller.BaseController;
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||
import com.jsowell.common.exception.BusinessException;
|
||||
import com.jsowell.common.response.RestApiResponse;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.id.IdUtils;
|
||||
import com.jsowell.pile.dto.*;
|
||||
import com.jsowell.pile.service.PileBasicInfoService;
|
||||
import com.jsowell.pile.service.PileFirmwareInfoService;
|
||||
@@ -56,6 +58,9 @@ public class PersonPileController extends BaseController {
|
||||
@Autowired
|
||||
private PileFirmwareInfoService pileFirmwareInfoService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
|
||||
/**
|
||||
* 用户绑定个人桩
|
||||
@@ -69,11 +74,18 @@ public class PersonPileController extends BaseController {
|
||||
public RestApiResponse<?> pileMemberBinding(HttpServletRequest request, @RequestBody PileMemberBindingDTO dto) {
|
||||
logger.info("绑定个人桩信息 params:{}", JSON.toJSONString(dto));
|
||||
RestApiResponse<?> response = null;
|
||||
String memberId = getMemberIdByAuthorization(request);
|
||||
dto.setMemberId(memberId);
|
||||
// 2025.03.29发现有同一人同时绑定两次桩,因此需要加锁
|
||||
String lockKey = "bind_pile_" + dto.getPileSn() + memberId;
|
||||
String uuid = IdUtils.fastUUID();
|
||||
try {
|
||||
String memberId = getMemberIdByAuthorization(request);
|
||||
dto.setMemberId(memberId);
|
||||
int i = pileService.pileMemberBinding(dto);
|
||||
response = new RestApiResponse<>(i);
|
||||
Boolean lockStatus = redisCache.lock(lockKey, uuid, 60);
|
||||
if (lockStatus) {
|
||||
int i = pileService.pileMemberBinding(dto);
|
||||
response = new RestApiResponse<>(i);
|
||||
}
|
||||
|
||||
} catch (BusinessException e) {
|
||||
logger.error("绑定个人桩信息 error,", e);
|
||||
response = new RestApiResponse<>(e.getCode(), e.getMessage());
|
||||
@@ -81,6 +93,8 @@ public class PersonPileController extends BaseController {
|
||||
logger.error("绑定个人桩信息 error,", exception);
|
||||
response = new RestApiResponse<>(ReturnCodeEnum.CODE_BINDING_PERSONAL_PILE_ERROR);
|
||||
}
|
||||
// 解锁
|
||||
redisCache.unLock(lockKey);
|
||||
logger.info("绑定个人桩信息 result:{}", response);
|
||||
return response;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user