From 9e61d2bcbfecfe436736f4f58a6790970147e81a Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 30 Jul 2020 18:54:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/WxProjectConfigController.java | 47 +++++++++++++++++++ .../mapper/WxProjectConfigMapper.java | 2 + .../service/WxProjectConfigService.java | 2 + .../impl/MemCouponFromDspServiceImpl.java | 6 --- .../impl/WxProjectConfigServiceImpl.java | 9 ++-- .../java/com/iformall/utils/Constant.java | 3 ++ .../mapper/WxProjectConfigMapper.xml | 5 ++ 7 files changed, 65 insertions(+), 9 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java index 7ae3bf899..fb6f06f2f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -14,16 +14,20 @@ import com.iformall.enums.EnumUserAdmin; import com.iformall.service.*; import com.iformall.shiro.PasswordHelper; import com.iformall.sms.EnumSMSChannel; +import com.iformall.utils.Constant; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import java.util.*; +import java.util.concurrent.TimeUnit; @RestController @Api(description = "初始化相关接口") @@ -85,6 +89,10 @@ public class WxProjectConfigController extends BaseController { @Autowired MallUserInfoService mallUserInfoService; + @Autowired + @Qualifier("openRedisTemplate") + RedisTemplate openRedisTemplate; + @ApiOperation("添加商场基础数据") @GetMapping(value = "/init/{id}") @@ -577,5 +585,44 @@ public class WxProjectConfigController extends BaseController { } } + @ApiOperation("刷集团商场历史数据(五分钟内只能掉一次)") + @PostMapping("/init/after/group") + @SystemControllerLog(description = "商场-数据更新") + public ResultData initAfterGroup(@RequestBody WxMall wxMall) { + logger.debug("[" + getIpAddr() + "] WxProjectConfigController::initAfterGroup"); + try { + if(StringUtils.isBlank(wxMall.getTenantId())){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + if(StringUtils.isBlank(wxMall.getParentTenantId())){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + TenantEntity TenantEntity = new TenantEntity(){{ + setTenantId(wxMall.getParentTenantId()); + }}; + WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); + if(parentWxMall == null || parentWxMall.getSaleType() != 100 + || !parentWxMall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) + || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } + StringBuilder sb = new StringBuilder(); + sb.append(Constant.INTERFACE_VISIT_LIMIT_KEY).append("initAfterGroup"); + String key = sb.toString(); + boolean hasKey = openRedisTemplate.hasKey(key); + if(hasKey){ + return new ResultData(ErrorCode.TOO_MANY_REQUEST); + }else{ + openRedisTemplate.opsForValue().set(key,"1",3000, TimeUnit.SECONDS); + } + wxProjectConfigService.initAfterGroup(wxMall.getParentTenantId(),wxMall.getTenantId()); + + return new ResultData(); + }catch (Exception e){ + logger.error(e.getMessage(),e); + return new ResultData(ErrorCode.SYS_SERVER_ERROR); + } + } + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxProjectConfigMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxProjectConfigMapper.java index ca8b44c76..12113664c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxProjectConfigMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxProjectConfigMapper.java @@ -3,8 +3,10 @@ package com.iformall.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.iformall.domain.po.WxProjectConfig; +import org.apache.ibatis.annotations.Param; public interface WxProjectConfigMapper extends BaseMapper { + void initAfterGroup(@Param(value = "tenantId")String tenantId, @Param(value = "subTenantIds")String subTenantIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxProjectConfigService.java b/mallinkService/src/main/java/com/iformall/service/WxProjectConfigService.java index 3f879fbad..c7b1493c4 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProjectConfigService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProjectConfigService.java @@ -40,4 +40,6 @@ public interface WxProjectConfigService { void initSubmall(String parentTenantId, String[] tenantIds); + void initAfterGroup(String tenantId, String tenantIds); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MemCouponFromDspServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MemCouponFromDspServiceImpl.java index c1f40065c..dcdc85529 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MemCouponFromDspServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MemCouponFromDspServiceImpl.java @@ -88,12 +88,6 @@ public class MemCouponFromDspServiceImpl implements MemCouponFromDspService { WxCUserBasicInfo user = wxCUserBasicInfoService.findInfoByPhone(record, record.getPhone()); - -// // 获取C端用户 -// WxCUser user = wxCUserService.getByObject(new WxCUser() {{ -// updateTenantInfo(record); -// setPhone(record.getPhone()); -// }}); if (user == null) { return -1; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java index c395ed8e8..55f16c3d1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.utils.PasswordHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -242,10 +243,12 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { @Override public void initSubmall(String parentTenantId, String[] tenantIds) { wxMallService.undateSubmall(parentTenantId,tenantIds); - /** - * 初始化数据 - */ + } + @Async + @Override + public void initAfterGroup(String tenantId, String subTenantIds) { + wxProjectConfigMapper.initAfterGroup(tenantId,subTenantIds); } diff --git a/mallinkService/src/main/java/com/iformall/utils/Constant.java b/mallinkService/src/main/java/com/iformall/utils/Constant.java index 879e2650b..deca082d9 100644 --- a/mallinkService/src/main/java/com/iformall/utils/Constant.java +++ b/mallinkService/src/main/java/com/iformall/utils/Constant.java @@ -49,4 +49,7 @@ public class Constant { // 导入会员 public static final String importMemPrev = "importmem:"; public static final String importInvestCustomerPrev = "importinvestcustomer:"; + + //限制接口访问次数 + public static final String INTERFACE_VISIT_LIMIT_KEY = "INTERFACE:LIMIT:"; } diff --git a/mallinkService/src/main/resources/mapper/WxProjectConfigMapper.xml b/mallinkService/src/main/resources/mapper/WxProjectConfigMapper.xml index b3dcd6315..be7f11b70 100644 --- a/mallinkService/src/main/resources/mapper/WxProjectConfigMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProjectConfigMapper.xml @@ -2,4 +2,9 @@ + + + {call init_after_group(#{tenantId},#{subTenantIds})} + +