From 711d752d71cb7c82fed518922727fbf8596bdcd5 Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 20 Apr 2024 14:45:59 +0800 Subject: [PATCH] fix bug --- .../controller/base/BaseController.java | 17 ++ .../basic/WxMallBuildingController.java | 9 +- .../basic/WxMerchantController.java | 13 +- .../basic/WxProjectConfigController.java | 2 +- .../controller/sys/WxBusinessController.java | 10 +- .../sys/WxUserDataRuleController.java | 9 + .../controller/WxBusinessController.java | 2 +- .../controller/WxMallBuildingController.java | 2 +- .../iformall/domain/po/WxUserDataRule.java | 20 +++ .../iformall/mapper/WxMallFloorMapper.java | 2 + .../iformall/service/WxBusinessService.java | 2 +- .../service/WxMallBuildingService.java | 3 +- .../service/impl/WxBusinessServiceImpl.java | 5 +- .../service/impl/WxChartServiceImpl.java | 2 +- .../impl/WxMallBuildingServiceImpl.java | 31 +++- .../service/impl/WxMerchantServiceImpl.java | 10 +- .../service/impl/WxScoreRulesServiceImpl.java | 2 +- .../service/util/UserDateRuleCacheUtils.java | 161 ++++++++++++++++++ .../resources/mapper/WxBusinessMapper.xml | 9 + .../resources/mapper/WxMallFloorMapper.xml | 11 ++ .../basic/WxMallBuildingController.java | 2 +- .../controller/sys/WxBusinessController.java | 3 +- .../controller/WxBusinessController.java | 2 +- 23 files changed, 300 insertions(+), 29 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/service/util/UserDateRuleCacheUtils.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index 27baef7c0..ccc7c0c8e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -1,11 +1,15 @@ package com.iformall.controller.base; import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumUserDataRuleType; +import com.iformall.service.WxUserDataRuleService; import com.iformall.shiro.UserSession; import com.iformall.utils.IPUtil; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RestController; @@ -17,9 +21,13 @@ import java.beans.PropertyEditorSupport; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; @RestController public class BaseController { + + @Autowired + private WxUserDataRuleService wxUserDataRuleService; @InitBinder public void InitBinder(WebDataBinder dataBinder) { @@ -83,4 +91,13 @@ public class BaseController { String ipaddress = IPUtil.getIpAddr(request); return ipaddress; } + + public WxUserDataRule getCurrentDataFloors() { + WxUserDataRule byUserId = wxUserDataRuleService.findByUserId(getUser().getId()); + //没有配置,默认是全部权限 + if (byUserId != null && EnumUserDataRuleType.ALL.getCode().intValue() == byUserId.getType().intValue()) { + return null; + } + return byUserId; + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java index 53f5030b6..32f87ba9c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java @@ -7,6 +7,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxMallBuilding; import com.iformall.domain.po.WxMallFloor; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.service.WxMallBuildingService; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; @@ -32,13 +33,17 @@ public class WxMallBuildingController extends BaseController { @Qualifier("objectCommonRedisTemplate") RedisTemplate objectCommonRedisTemplate; - @UserDataRuleAnnotation("") @ApiOperation("获取楼层楼座数据") @GetMapping("getbuildingfloorlist") @SystemControllerLog(description = "商城-楼座-获取楼层楼座数据") public ResultData getbuildingfloorlist(WxMallBuilding wxMallBuilding) { wxMallBuilding.updateTenantInfo(getTenantInfo()); - return wxMallBuildingService.getBuildingFloorList(wxMallBuilding); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxMallBuilding.setFloorForRule(dataRule.getFloorIds()); + wxMallBuilding.setBusinessForRule(dataRule.getBussinessIds()); + } + return wxMallBuildingService.getBuildingFloorList(wxMallBuilding,this.getUser()); } @ApiOperation("保存楼层楼座地图") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java index b410d3587..c0e97dbe1 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxMerchantController.java @@ -13,6 +13,7 @@ import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantRelation; import com.iformall.domain.po.WxPayAccount; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.WxMerchantTradeDetailVo; import com.iformall.domain.vo.WxMerchantTradeVo; @@ -62,7 +63,6 @@ public class WxMerchantController extends BaseController { @Autowired private WxMerchantRelationService wxMerchantRelationService; - @UserDataRuleAnnotation("merchant_list") @ApiOperation("分页列表接口") @GetMapping("listVo") @ApiImplicitParams({ @@ -75,12 +75,16 @@ public class WxMerchantController extends BaseController { wxMerchant.updateTenantInfo(getTenantInfo()); wxMerchant.setSortColumns(BaseEntity.SortField.TopTime_DESC); wxMerchant.setIsPrivate(EnumYesOrNo.NO.getCode()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxMerchant.setFloorForRule(dataRule.getFloorIds()); + wxMerchant.setBusinessForRule(dataRule.getBussinessIds()); + } final PageInfo page = wxMerchantService.listVoAsPage(wxMerchant, pageNum, pageSize,false); return new ResultData(page); } - @UserDataRuleAnnotation("merchant_list") @ApiOperation("分页列表接口") @GetMapping("listVo2") @ApiImplicitParams({ @@ -98,6 +102,11 @@ public class WxMerchantController extends BaseController { }else { wxMerchant.setNoCarVendor(1); } + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxMerchant.setFloorForRule(dataRule.getFloorIds()); + wxMerchant.setBusinessForRule(dataRule.getBussinessIds()); + } final PageInfo page = wxMerchantService.listVoAsPage(wxMerchant, pageNum, pageSize,false); return new ResultData(page); } 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 659079892..15fb3c336 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -675,7 +675,7 @@ public class WxProjectConfigController extends BaseController { WxMallBuilding b = new WxMallBuilding(); b.updateTenantInfo(tenantEntity); - ResultData wxMallBuildingFloorList = wxMallBuildingService.getBuildingFloorList(b); + ResultData wxMallBuildingFloorList = wxMallBuildingService.getBuildingFloorList(b,null); map.put("wxMallBuildingFloorList",wxMallBuildingFloorList.data); WxAppinfo wxAppinfo = new WxAppinfo(); wxAppinfo.setTenantId(wxMall.getTenantId()); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java index 83b296642..6f85668ef 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.WxBusiness; import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBusinessDataVo; import com.iformall.enums.EnumMerchantAdmin; @@ -45,13 +46,16 @@ public class WxBusinessController extends BaseController { private WxMerchantService wxMerchantService; - @ApiOperation("业态全列表接口") @GetMapping("listAll") @SystemControllerLog(description = "业态-全列表") public ResultData listAll() { - logger.debug("[" + getIpAddr() + "] WxBusinessController::getList"); - final List busList = wxBusinessService.findListAll(true,getTenantInfo(),null,null); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + String bussinessRule = null; + if (null != dataRule) { + bussinessRule = dataRule.getBussinessIds(); + } + final List busList = wxBusinessService.findListAll(bussinessRule,true,getTenantInfo(),null,null); return new ResultData(busList); } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java index eee9ec850..e09d4c252 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java @@ -9,12 +9,16 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxUserDataRule; import com.iformall.enums.EnumUserAdmin; import com.iformall.service.WxUserDataRuleService; +import com.iformall.service.util.UserDateRuleCacheUtils; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; 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.web.bind.annotation.*; /** @@ -28,6 +32,10 @@ public class WxUserDataRuleController extends BaseController { @Autowired private WxUserDataRuleService wxUserDataRuleService; + + @Autowired + @Qualifier("objectCommonRedisTemplate") + RedisTemplate objectCommonRedisTemplate; @ApiOperation("编辑") @PostMapping("/modify") @@ -40,6 +48,7 @@ public class WxUserDataRuleController extends BaseController { return new ResultData(ErrorCode.USER_NO_PERMISSION.getCode(), "系统管理员才能修改信息"); } wxUserDataRuleService.modify(wxUserDataRule); + UserDateRuleCacheUtils.removeMallBuildingCache(objectCommonRedisTemplate, wxUserDataRule.getUserId()); return new ResultData(); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java index beee53ec6..bb53aff23 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxBusinessController.java @@ -32,7 +32,7 @@ public class WxBusinessController extends BaseController { if(appPlat == null){ appPlat = EnumAppPlat.WX; } - return new ResultData(wxBusinessService.findListAll(true,getTenantInfo(),filter,appPlat.getCode())); + return new ResultData(wxBusinessService.findListAll(null,true,getTenantInfo(),filter,appPlat.getCode())); } } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallBuildingController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallBuildingController.java index b9e6a9bbd..0508ecf86 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallBuildingController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallBuildingController.java @@ -24,6 +24,6 @@ public class WxMallBuildingController extends BaseController { public ResultData getbuildingfloorlist() { WxMallBuilding b = new WxMallBuilding(); b.updateTenantInfo(getTenantInfo()); - return wxMallBuildingService.getBuildingFloorList(b); + return wxMallBuildingService.getBuildingFloorList(b,null); } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxUserDataRule.java b/mallinkService/src/main/java/com/iformall/domain/po/WxUserDataRule.java index c01c4b7be..14b252a96 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxUserDataRule.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxUserDataRule.java @@ -1,11 +1,15 @@ package com.iformall.domain.po; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; @TableName(value = "wx_user_data_rule") @Data @@ -28,5 +32,21 @@ public class WxUserDataRule extends TenantEntity { private Date createTime; @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updateTime") private Date updateTime; + + public String getFloorIds() { + if (StringUtils.isNotEmpty(buildingFloor)) { + Object[] data = JSONArray.parseArray(buildingFloor).toArray(); + return StringUtils.join(data, ","); + } + return null; + } + + public String getBussinessIds() { + if (StringUtils.isNotEmpty(businessForRule)) { + Object[] data = JSONArray.parseArray(businessForRule).toArray(); + return StringUtils.join(data, ","); + } + return null; + } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java index e3f577c30..cf787f51c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMallFloorMapper.java @@ -14,4 +14,6 @@ public interface WxMallFloorMapper extends CommonMapper { void deleteByTenantId(String tenantId); List findIdAndName(String tenantId); + + List getBuildindIds(WxMallFloor wxMallFloor); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java b/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java index 8ac1d1ce6..3b92b9f43 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBusinessService.java @@ -44,7 +44,7 @@ public interface WxBusinessService { * * @return */ - List findListAll(boolean isValid,TenantEntity tenantEntity, Integer filter,Integer platCode); + List findListAll(String bussinessRule,boolean isValid,TenantEntity tenantEntity, Integer filter,Integer platCode); /** * 根据Id获得实体 diff --git a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java index ba9ac3073..6af7fddf8 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMallBuildingService.java @@ -3,6 +3,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxMallBuildingFloorDto; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxMallBuilding; import com.iformall.domain.po.WxMallFloor; import com.iformall.domain.po.base.TenantEntity; @@ -54,7 +55,7 @@ public interface WxMallBuildingService { ResultData getBuildingList(TenantEntity tenantEntity); - ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding); + ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser); /** * 新增楼层楼座 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java index da205a943..a14601d40 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBusinessServiceImpl.java @@ -73,10 +73,13 @@ public class WxBusinessServiceImpl implements WxBusinessService { } @Override - public List findListAll(boolean isValid,TenantEntity tenantEntity, Integer filter,Integer paltCode) { + public List findListAll(String bussinessRule,boolean isValid,TenantEntity tenantEntity, Integer filter,Integer paltCode) { WxBusiness bq = new WxBusiness(); bq.setFinalTenantId(tenantEntity.getFinalTenantId()); bq.setIsRoot(EnumYesOrNo.YES.getCode()); + if (null != bussinessRule) { + bq.setBusinessForRule(bussinessRule); + } Integer isDel = null; if (isValid) { isDel = EnumYesOrNo.NO.getCode(); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 5ddd41cea..4c5d6f7d1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -734,7 +734,7 @@ public class WxChartServiceImpl implements WxChartDataService { kwMerchantMeterDataDto.setLimitCount(null); List businessPower = kwMerchantMeterService.findDataVoList(kwMerchantMeterDataDto); - List businessList = wxBusinessService.findListAll(true,tenantEntity,null,null); + List businessList = wxBusinessService.findListAll(null,true,tenantEntity,null,null); businessList.stream().forEach(b->{ Optional businessData = businessPower.stream().filter(bd->bd.getBusinessId().equals(b.getId())).findAny(); if (businessData.isPresent()) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java index d128345e3..12de8a62e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java @@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxMallBuildingFloorDto; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMallBuilding; import com.iformall.domain.po.WxMallFloor; @@ -15,6 +16,7 @@ import com.iformall.mapper.WxMallBuildingMapper; import com.iformall.mapper.WxMallFloorMapper; import com.iformall.service.WxMallBuildingService; import com.iformall.service.WxMallService; +import com.iformall.service.util.UserDateRuleCacheUtils; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; import org.slf4j.Logger; @@ -118,13 +120,28 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { } @Override - public ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding) { - String key = Constant.mallBuildingPrev + wxMallBuilding.getTenantId(); - List wxMallBuildings = RedisCacheUtils.getCacheListObject(objectCommonRedisTemplate, key, WxMallBuilding.class); - if(wxMallBuildings != null){ + public ResultData getBuildingFloorList(WxMallBuilding wxMallBuilding,MallUserInfo mallUser) { + List wxMallBuildings = null; + if (null != mallUser) { + wxMallBuildings = UserDateRuleCacheUtils.getMallBuildingCache(objectCommonRedisTemplate, mallUser.getId()); + }else { + wxMallBuildings = UserDateRuleCacheUtils.getMallBuildingCache(objectCommonRedisTemplate, Long.parseLong(wxMallBuilding.getTenantId())); + } + if(wxMallBuildings != null){ return new ResultData(wxMallBuildings); } wxMallBuildings = new ArrayList(); + if (null != mallUser && null != wxMallBuilding.getFloorForRule()) { + WxMallFloor wf = new WxMallFloor(); + wf.updateTenantInfo(mallUser); + wf.setFloorForRule(wxMallBuilding.getFloorForRule()); + List bids = wxMallFloorMapper.getBuildindIds(wf); + if (null == bids || bids.size() <= 0 ) { + wxMallBuilding.setId(-1L); + }else { + wxMallBuilding.setIds(bids); + } + } List buildings = wxMallBuildingMapper.findList(wxMallBuilding); wxMallBuildings = buildings.stream().map(b -> { WxMallBuilding tempb = new WxMallBuilding(); @@ -157,7 +174,11 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService { }).collect(Collectors.toList()); building.setFloors(wxMallFloors); } - RedisCacheUtils.cache(objectCommonRedisTemplate, key, wxMallBuildings, Constant.EXPIRE); + if (null != mallUser) { + UserDateRuleCacheUtils.setMallBuildingCache(objectCommonRedisTemplate, mallUser.getId(), wxMallBuildings); + }else { + UserDateRuleCacheUtils.setMallBuildingCache(objectCommonRedisTemplate, Long.parseLong(wxMallBuilding.getTenantId()), wxMallBuildings); + } return new ResultData(wxMallBuildings); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index 18a3becee..492f9ebaa 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -2178,16 +2178,16 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxMerchantMapper.findIdList(merchant); } - private WxShop initShopByPoiId(TenantEntity tenantEntity,String poiId) throws Exception { + private WxShop initShopByPoiId(MallUserInfo user,String poiId) throws Exception { String shopNumber = "DYPOI-"+poiId; - WxShop shop = wxShopService.getShopByShopNumber(tenantEntity, shopNumber); + WxShop shop = wxShopService.getShopByShopNumber(user, shopNumber); if (null == shop) { Long buildingId = null; Long floorId = null; try { WxMallBuilding b = new WxMallBuilding(); - b.updateTenantInfo(tenantEntity); - ResultData builds = wxMallBuildingService.getBuildingFloorList(b); + b.updateTenantInfo(user); + ResultData builds = wxMallBuildingService.getBuildingFloorList(b,null); if (null == builds || null == builds.data) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼层楼座未查询到."); } @@ -2207,7 +2207,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼层楼座查询错误."+e.getMessage()); } shop = new WxShop(); - shop.updateTenantInfo(tenantEntity); + shop.updateTenantInfo(user); shop.setBuildArea("0"); shop.setShopNumber(shopNumber); shop.setBuilding(buildingId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java index 3bca5f379..252913895 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxScoreRulesServiceImpl.java @@ -140,7 +140,7 @@ public class WxScoreRulesServiceImpl implements WxScoreRulesService { // logger.info("mysql >> data"+JSONObject.toJSONString(currentBusinessRuleMap)); //根据业态来匹配 Map businessRuleMap = new HashMap(); - List rootBusiness = wxBusinessService.findListAll(true,tenantEntity, null, null); + List rootBusiness = wxBusinessService.findListAll(null,true,tenantEntity, null, null); if (null != rootBusiness && rootBusiness.size() > 0 ) { for (int i = 0 ; i < rootBusiness.size(); i++){ WxBusiness bu = rootBusiness.get(i); diff --git a/mallinkService/src/main/java/com/iformall/service/util/UserDateRuleCacheUtils.java b/mallinkService/src/main/java/com/iformall/service/util/UserDateRuleCacheUtils.java new file mode 100644 index 000000000..6531cdf09 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/util/UserDateRuleCacheUtils.java @@ -0,0 +1,161 @@ +package com.iformall.service.util; + +import com.github.pagehelper.PageInfo; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.WxMallBuilding; +import com.iformall.domain.vo.WxCouponCVo; +import com.iformall.domain.vo.WxMerchantVo; +import com.iformall.enums.EnumCacheKey; +import com.iformall.utils.RedisCacheUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.RedisTemplate; + +import java.util.List; +import java.util.Map; + +public class UserDateRuleCacheUtils { + + public static void removeMallBuildingCache(RedisTemplate template,Long userId) { + String key = "udmallBuilding:"+userId; + RedisCacheUtils.removeCache(template, key); + } + + public static void setMallBuildingCache(RedisTemplate template,Long userId,List wxMallBuildings) { + String key = "udmallBuilding:"+userId; + RedisCacheUtils.cache(template, key, wxMallBuildings, 24*3600); + } + + public static List getMallBuildingCache(RedisTemplate template,Long userId) { + String key = "udmallBuilding:"+userId; + return RedisCacheUtils.getCacheListObject(template, key,WxMallBuilding.class); + } + + public static void removeOnlyCouponCache(RedisTemplate template,Long couponId) { + String key = "onlyCouponDetail:"+couponId; + RedisCacheUtils.removeCache(template, key); + } + + public static void setOnlyCouponCache(RedisTemplate template,Long couponId,WxCoupon coupon) { + String key = "onlyCouponDetail:"+couponId; + RedisCacheUtils.cache(template, key, coupon, 24*3600); + } + + public static WxCoupon getOnlyCouponCache(RedisTemplate template,Long couponId) { + String key = "onlyCouponDetail:"+couponId; + return RedisCacheUtils.getCacheObject(template, key,WxCoupon.class); + } + + public static void removeCouponCache(RedisTemplate template,Long couponId) { + String key = "couponDetail:"+couponId; + RedisCacheUtils.removeCache(template, key); + } + + public static void setCouponCache(RedisTemplate template,Long couponId,WxCoupon coupon) { + String key = "couponDetail:"+couponId; + RedisCacheUtils.cache(template, key, coupon, 24*3600); + } + + public static WxCoupon getCouponCache(RedisTemplate template,Long couponId) { + String key = "couponDetail:"+couponId; + return RedisCacheUtils.getCacheObject(template, key,WxCoupon.class); + } + + public static void removeCouponMerchantCache(RedisTemplate template,Long couponId,String city) { + String key = "couponMerchantNew:"+couponId; + if (StringUtils.isNotBlank(city)) { + key = key + ":"+city; + } + RedisCacheUtils.removeCache(template, key); + if (StringUtils.isBlank(city)) { + //删除下面所有的cityKey + RedisCacheUtils.removeCachePrefix(template, key+":"); + //删除labelMap + removeCouponMerchantLableMapCache(template,couponId); + } + } + + public static void setCouponMerchantCache(RedisTemplate template,Long couponId,String city,Map> merchantList) { + String key = "couponMerchantNew:"+couponId; + if (StringUtils.isNotBlank(city)) { + key = key + ":"+city; + } + RedisCacheUtils.cache(template, key, merchantList, 24*3600); + if (StringUtils.isBlank(city)) { + //删除下面所有的cityKey + RedisCacheUtils.removeCachePrefix(template, key+":"); + //删除labelMap + removeCouponMerchantLableMapCache(template,couponId); + } + } + + public static Map> getCouponMerchantCache(RedisTemplate template,Long couponId,String city) { + String key = "couponMerchantNew:"+couponId; + if (StringUtils.isNotBlank(city)) { + key = key + ":"+city; + } + return (Map>) RedisCacheUtils.getCacheMap(template, key); + } + + public static void removeCouponMerchantLableMapCache(RedisTemplate template,Long couponId) { + String key = "couponMerchantNewLableMap:"+couponId; + RedisCacheUtils.removeCache(template, key); + } + + public static void setCouponMerchantLableMapCache(RedisTemplate template,Long couponId,Map> labeCityList) { + String key = "couponMerchantNewLableMap:"+couponId; + RedisCacheUtils.cache(template, key, labeCityList, 24*3600); + } + + public static Map> getCouponMerchantLableMapCache(RedisTemplate template,Long couponId) { + String key = "couponMerchantNewLableMap:"+couponId; + return (Map>) RedisCacheUtils.getCacheMap(template, key); + } + + public static void removeDouyinLivePageCache(RedisTemplate template,String tenantId,Integer targetAd,Integer bussiness) { + String key = EnumCacheKey.DOUYIN_LIVE_PAGE_LIST.getMessage()+ tenantId+"_"; + if (null != targetAd) { + key = key + targetAd; + if ( null != bussiness) { + key = key + "_"+ bussiness; + } + } + RedisCacheUtils.removeCachePrefix(template, key); + } + + public static void setDouyinLivePageCache(RedisTemplate template,PageInfo pageList,String tenantId,Integer targetAd,Integer bussiness,Integer pageNum) { + String key = EnumCacheKey.DOUYIN_LIVE_PAGE_LIST.getMessage()+ tenantId + "_"+ targetAd + "_"+ bussiness+"_"+pageNum; + RedisCacheUtils.cache(template, key, pageList, 3*3600); + } + + public static PageInfo getDouyinLivePageCache(RedisTemplate template,String tenantId,Integer targetAd,Integer bussiness,Integer pageNum) { + String key = EnumCacheKey.DOUYIN_LIVE_PAGE_LIST.getMessage()+ tenantId + "_"+ targetAd + "_"+ bussiness+"_"+pageNum; + return RedisCacheUtils.getCacheObject(template, key,PageInfo.class); + } + + public static void removeOldDetailCache(RedisTemplate template) { + String key = EnumCacheKey.OLD_DETAIL.getMessage(); + RedisCacheUtils.removeCachePrefix(template, key); + } + + public static void setOldDetaileCache(RedisTemplate template,WxCouponCVo coupon,Long couponChannelIdL,Long couponIdL) { + String key = EnumCacheKey.OLD_DETAIL.getMessage(); + if(couponChannelIdL > 0){ + key = key + couponChannelIdL; + }else if(couponIdL > 0){ + key = key + couponIdL; + } + RedisCacheUtils.cache(template, key, coupon, 3600); + } + + public static WxCouponCVo getOldDetailCache(RedisTemplate template,Long couponChannelIdL,Long couponIdL) { + String key = EnumCacheKey.OLD_DETAIL.getMessage(); + if(couponChannelIdL > 0){ + key = key + couponChannelIdL; + }else if(couponIdL > 0){ + key = key + couponIdL; + } + return RedisCacheUtils.getCacheObject(template, key,WxCouponCVo.class); + } + +} diff --git a/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml b/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml index ebcb2d0c7..9bfa43395 100644 --- a/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBusinessMapper.xml @@ -98,6 +98,9 @@ and `is_del` = #{isDel} + + and `id` in (${businessForRule}) + order by create_date asc @@ -112,6 +115,9 @@ and b.`is_del` = #{isDel} + + and `id` in (${businessForRule}) + and (select count(*) from wx_merchant m where b.id = m.business_id @@ -137,6 +143,9 @@ and b.`is_del` = #{isDel} + + and `id` in (${businessForRule}) + and (select count(*) from wx_coupon_channel cc where b.id = cc.business diff --git a/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml b/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml index 9cc81b1b6..cb9b352fa 100644 --- a/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallFloorMapper.xml @@ -59,6 +59,11 @@ and `update_date` = #{updateDate} + + + and `id` in (${floorForRule}) + + and id in @@ -90,5 +95,11 @@ from wx_mall_floor where `tenant_id` = #{tenantId} + + diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java index 7c6f3a751..107634879 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/basic/WxMallBuildingController.java @@ -37,7 +37,7 @@ public class WxMallBuildingController extends BaseController { public ResultData getbuildingfloorlist() { WxMallBuilding b = new WxMallBuilding(); b.updateTenantInfo(getTenantInfo()); - return wxMallBuildingService.getBuildingFloorList(b); + return wxMallBuildingService.getBuildingFloorList(b,this.getUser()); } @ApiOperation("保存楼层楼座地图") diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java index 198289afc..c7cb271e2 100644 --- a/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/sys/WxBusinessController.java @@ -45,8 +45,7 @@ public class WxBusinessController extends BaseController { @GetMapping("listAll") @SystemControllerLog(description = "业态-全列表") public ResultData listAll() { - logger.debug("[" + getIpAddr() + "] WxBusinessController::getList"); - final List busList = wxBusinessService.findListAll(true,getTenantInfo(),null,null); + final List busList = wxBusinessService.findListAll(null,true,getTenantInfo(),null,null); return new ResultData(busList); } diff --git a/mallinkTTCApi/src/main/java/com/iformall/controller/WxBusinessController.java b/mallinkTTCApi/src/main/java/com/iformall/controller/WxBusinessController.java index 4c8aebc2a..2468c8d6d 100644 --- a/mallinkTTCApi/src/main/java/com/iformall/controller/WxBusinessController.java +++ b/mallinkTTCApi/src/main/java/com/iformall/controller/WxBusinessController.java @@ -25,7 +25,7 @@ public class WxBusinessController extends BaseController { @ApiOperation("业态全列表接口") @GetMapping("listAll") public ResultData listAll(Integer filter) { - return new ResultData(wxBusinessService.findListAll(true,getTenantInfo(),filter,null)); + return new ResultData(wxBusinessService.findListAll(null,true,getTenantInfo(),filter,null)); } }