diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java index db3ac1326..b70f54904 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java @@ -424,6 +424,11 @@ public class RedisConstant { */ public static final String PRIVATE_STORE_SN_BIND = "private_sphere_store_sn"; + /** + * 私域门店id->设备SN + */ + public static final String PRIVATE_STORE_SN_REVERSE = "private_store_sn_reverse"; + /** * 私域设备SN->门店私域二维码地址 */ diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreApplyRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreApplyRequest.java index 0185e93b8..1f0484c4c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreApplyRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreApplyRequest.java @@ -39,4 +39,9 @@ public class CloseStoreApplyRequest { @NotBlank(message = "门店id不能为空") private String storeId; + @ApiModelProperty(value = "用户id", hidden = true) + private String userId; + + @ApiModelProperty(value = "用户名称",hidden = true) + private String userName; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/ReCloseStoreApplyRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/ReCloseStoreApplyRequest.java index 31352da5d..ca796bd16 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/ReCloseStoreApplyRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/ReCloseStoreApplyRequest.java @@ -14,5 +14,9 @@ public class ReCloseStoreApplyRequest { @ApiModelProperty("闭店信息ID") private Long closeStoreId; + @ApiModelProperty(value = "用户id", hidden = true) + private String userId; + @ApiModelProperty(value = "用户名称",hidden = true) + private String userName; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/close/CloseStoreService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/close/CloseStoreService.java index a5e378d75..b7561f591 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/close/CloseStoreService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/close/CloseStoreService.java @@ -31,13 +31,6 @@ public interface CloseStoreService { */ Boolean reApplyCloseStore(ReCloseStoreApplyRequest request); - /** - * 第三方申请闭店 - * @param request 三方闭店申请Request - * @return 是否成功 - */ - Boolean thirdApplyCloseStore(ThirdCloseStoreApplyRequest request); - /** * 审批通过 * @param request 闭店申请审批Request diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/close/impl/CloseStoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/close/impl/CloseStoreServiceImpl.java index c0a3ae506..5cb1d4a20 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/close/impl/CloseStoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/close/impl/CloseStoreServiceImpl.java @@ -98,13 +98,8 @@ public class CloseStoreServiceImpl implements CloseStoreService { } String userId, userName; if (CloseTypeEnum.INITIATE.getCloseType().equals(request.getCloseType())) { - // 主动发起的申请人为加盟商,从C端登录用户信息中获取 - PartnerUserInfoVO user = PartnerUserHolder.getUser(); - userId = user.getPartnerId(); - userName = user.getUsername(); - if (StringUtils.isBlank(userName)) { - userName = user.getMobile(); - } + userId = request.getUserId(); + userName = request.getUserName(); } else { userId = AIEnum.AI_ID.getCode(); userName = AIEnum.AI_NAME.getCode(); @@ -139,21 +134,12 @@ public class CloseStoreServiceImpl implements CloseStoreService { .reasonDescription(closeStoreInfoDO.getReasonDescription()) .closeType(closeStoreInfoDO.getCloseType()) .storeId(closeStoreInfoDO.getStoreId()) + .userId(request.getUserId()) + .userName(request.getUserName()) .build(); return applyCloseStore(applyRequest); } - @Override - @Transactional - public Boolean thirdApplyCloseStore(ThirdCloseStoreApplyRequest request) { - StoreDO storeDO = storeDao.getByStoreNum(request.getStoreNum()); - if (Objects.isNull(storeDO)) { - throw new ServiceException(ErrorCodeEnum.STORE_NOT_EXIST); - } - CloseStoreApplyRequest closeRequest = request.convert(storeDO.getStoreId()); - return applyCloseStore(closeRequest); - } - @Override @Transactional public Boolean auditPass(CloseStoreAuditRequest request) { diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/privatesphere/impl/PrivateSphereQrServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/privatesphere/impl/PrivateSphereQrServiceImpl.java index 3b02e3b8f..48f1c28e6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/privatesphere/impl/PrivateSphereQrServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/privatesphere/impl/PrivateSphereQrServiceImpl.java @@ -42,9 +42,13 @@ public class PrivateSphereQrServiceImpl implements PrivateSphereQrService { */ private static final int QR_CODE_SIZE = 1280; /** - * sn缓存时间 + * sn和门店绑定关系缓存时间 */ - private static final int SN_CACHE_TIME = 86400 * 7; + private static final int SN_CACHE_TIME = 86400 * 30; + /** + * sn二维码缓存时间 + */ + private static final int SN_RQ_LIMIT_TIME = 86400; /** * IP限制时间(1小时) */ @@ -66,7 +70,7 @@ public class PrivateSphereQrServiceImpl implements PrivateSphereQrService { try { String qrCodeUrl = generateAndUploadQrCode(request.getSn()); // 存储到Redis - redisUtilPool.hashSet(RedisConstant.PRIVATE_SN_QR_CODE, request.getSn(), qrCodeUrl, SN_CACHE_TIME); + redisUtilPool.hashSet(RedisConstant.PRIVATE_SN_QR_CODE, request.getSn(), qrCodeUrl, SN_RQ_LIMIT_TIME); log.info("生成二维码并上传成功,sn: {}, url: {}", request.getSn(), qrCodeUrl); return new PrivateSphereVO(qrCodeUrl); } catch (Exception e) { @@ -91,7 +95,12 @@ public class PrivateSphereQrServiceImpl implements PrivateSphereQrService { @Override public Boolean bindStoreSn(PrivateSphereBindRequest request) { + String oldSn = redisUtilPool.hashGet(RedisConstant.PRIVATE_STORE_SN_REVERSE, request.getStoreId()); + if (StringUtils.isNotBlank(oldSn)) { + redisUtilPool.hashDel(RedisConstant.PRIVATE_STORE_SN_BIND, oldSn); + } redisUtilPool.hashSet(RedisConstant.PRIVATE_STORE_SN_BIND, request.getSn(), request.getStoreId(), SN_CACHE_TIME); + redisUtilPool.hashSet(RedisConstant.PRIVATE_STORE_SN_REVERSE, request.getStoreId(), request.getSn(), SN_CACHE_TIME); return true; } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseStoreController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseStoreController.java index 91354b1fc..83c454c73 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseStoreController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/CloseStoreController.java @@ -1,11 +1,16 @@ package com.cool.store.controller.webb; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.enums.close.CloseTypeEnum; +import com.cool.store.request.close.store.CloseStoreApplyRequest; import com.cool.store.request.close.store.CloseStoreCancelRequest; import com.cool.store.request.close.store.CloseStoreQueryRequest; import com.cool.store.request.close.store.CloseStoreAuditRequest; import com.cool.store.response.AuditInfoResponse; import com.cool.store.response.ResponseResult; import com.cool.store.service.close.CloseStoreService; +import com.cool.store.utils.poi.StringUtils; import com.cool.store.vo.close.store.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; @@ -105,4 +110,14 @@ public class CloseStoreController { public ResponseResult suspendApply(@RequestBody @Valid CloseStoreCancelRequest request) { return ResponseResult.success(closeStoreService.suspendApply(request.getCloseStoreId())); } + + @ApiOperation("申请闭店") + @PostMapping("/apply") + public ResponseResult applyCloseStore(@RequestBody @Valid CloseStoreApplyRequest request) { + request.setCloseType(CloseTypeEnum.INITIATE.getCloseType()); + LoginUserInfo user = CurrentUserHolder.getUser(); + request.setUserId(user.getUserId()); + request.setUserName(StringUtils.isNotBlank(user.getName()) ? user.getName() : user.getMobile()); + return ResponseResult.success(closeStoreService.applyCloseStore(request)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java index 53bd18e0d..dbf63ceab 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java @@ -3,6 +3,8 @@ package com.cool.store.controller.webb; import com.alibaba.fastjson.JSONObject; import com.cool.store.annotation.Debounce; import com.cool.store.constants.CommonConstants; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; import com.cool.store.dao.closeup.CloseUpApplyFormDAO; import com.cool.store.dao.closeup.CloseUpPlatformDAO; @@ -22,6 +24,7 @@ import com.cool.store.entity.closeup.CloseUpPlatformDO; import com.cool.store.entity.bonus.BonusDistributionRuleDO; import com.cool.store.entity.fees.WalletPayInfoDO; import com.cool.store.enums.*; +import com.cool.store.enums.close.CloseTypeEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.enums.wechat.WechatTemplateEnum; import com.cool.store.handler.WeChatHandler; @@ -254,6 +257,10 @@ public class PCTestController { @PostMapping("/applyCloseStore") public ResponseResult applyCloseStore(@RequestBody @Valid CloseStoreApplyRequest request) { + request.setCloseType(CloseTypeEnum.INITIATE.getCloseType()); + LoginUserInfo user = CurrentUserHolder.getUser(); + request.setUserId(user.getUserId()); + request.setUserName(StringUtils.isNotBlank(user.getName()) ? user.getName() : user.getMobile()); return ResponseResult.success(closeStoreService.applyCloseStore(request)); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniCloseStoreController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniCloseStoreController.java index 70e7609d0..a2e5c093e 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniCloseStoreController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniCloseStoreController.java @@ -1,5 +1,6 @@ package com.cool.store.controller.webc; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.enums.close.CloseTypeEnum; import com.cool.store.request.close.store.CloseStoreApplyRequest; import com.cool.store.request.close.store.CloseStoreCancelRequest; @@ -8,12 +9,14 @@ import com.cool.store.request.close.store.ReCloseStoreApplyRequest; import com.cool.store.response.AuditInfoResponse; import com.cool.store.response.ResponseResult; import com.cool.store.service.close.CloseStoreService; +import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.close.store.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -41,12 +44,18 @@ public class MiniCloseStoreController { @PostMapping("/apply") public ResponseResult applyCloseStore(@RequestBody @Valid CloseStoreApplyRequest request) { request.setCloseType(CloseTypeEnum.INITIATE.getCloseType()); + PartnerUserInfoVO user = PartnerUserHolder.getUser(); + request.setUserId(user.getPartnerId()); + request.setUserName(StringUtils.isNotBlank(user.getUsername()) ? user.getUsername() : user.getMobile()); return ResponseResult.success(closeStoreService.applyCloseStore(request)); } @ApiOperation("拒绝后重新提交申请闭店") @PostMapping("/reapply") public ResponseResult reApplyCloseStore(@RequestBody @Valid ReCloseStoreApplyRequest request) { + PartnerUserInfoVO user = PartnerUserHolder.getUser(); + request.setUserId(user.getPartnerId()); + request.setUserName(StringUtils.isNotBlank(user.getUsername()) ? user.getUsername() : user.getMobile()); return ResponseResult.success(closeStoreService.reApplyCloseStore(request)); }