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