Merge #140 into master from cc_20260513_minor_req
闭店H5新增闭店接口&私域二维码缓存时间延长 * cc_20260513_minor_req: (2 commits squashed) - fix:私域二维码新增SN反向映射关系 - fix:新增pc闭店申请发起接口 Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com> Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com> CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/140
This commit is contained in:
@@ -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->门店私域二维码地址
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -31,13 +31,6 @@ public interface CloseStoreService {
|
||||
*/
|
||||
Boolean reApplyCloseStore(ReCloseStoreApplyRequest request);
|
||||
|
||||
/**
|
||||
* 第三方申请闭店
|
||||
* @param request 三方闭店申请Request
|
||||
* @return 是否成功
|
||||
*/
|
||||
Boolean thirdApplyCloseStore(ThirdCloseStoreApplyRequest request);
|
||||
|
||||
/**
|
||||
* 审批通过
|
||||
* @param request 闭店申请审批Request
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Boolean> suspendApply(@RequestBody @Valid CloseStoreCancelRequest request) {
|
||||
return ResponseResult.success(closeStoreService.suspendApply(request.getCloseStoreId()));
|
||||
}
|
||||
|
||||
@ApiOperation("申请闭店")
|
||||
@PostMapping("/apply")
|
||||
public ResponseResult<Boolean> 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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Boolean> 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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Boolean> 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<Boolean> 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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user