From e7f6172072954bd066508826b438445671927e0e Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 17 May 2024 14:23:40 +0800 Subject: [PATCH] fix --- .../mem/WxLevelConfigController.java | 6 +- .../impl/WxLevelConfigServiceImpl.java | 66 +++++++++++-------- .../mapper/WxLevelConfigCouponMapper.xml | 4 +- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxLevelConfigController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxLevelConfigController.java index 11a99d610..406418bb2 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxLevelConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxLevelConfigController.java @@ -51,9 +51,9 @@ public class WxLevelConfigController extends BaseController { public ResultData add(@RequestBody List levelConfigs) { logger.debug("[" + getIpAddr() + "] WxLevelConfigController::add"); try { - if (StringUtils.isNotBlank(getTenantInfo().getParentTenantId())) { - return new ResultData(ErrorCode.USER_NO_PERMISSION.getCode(), "子广场用户无此权限"); - } + //if (StringUtils.isNotBlank(getTenantInfo().getParentTenantId())) { + // return new ResultData(ErrorCode.USER_NO_PERMISSION.getCode(), "子广场用户无此权限"); + //} wxLevelConfigService.batchSave(getTenantInfo(), levelConfigs); } catch (Exception e) { logger.error(e.getMessage()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java index 3ee170e05..9f21bf507 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java @@ -22,6 +22,8 @@ import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxLevelConfigService; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; + +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -160,7 +162,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { @Override public List getByTenantInfo(TenantEntity tenantEntity) { - String key = Constant.levelConfigPrev + tenantEntity.getFinalTenantId(); + String key = Constant.levelConfigPrev + tenantEntity.getFinalTenantId()+":"+tenantEntity.getTenantId(); List clist = RedisCacheUtils.getCacheListObject(wxLevelConfigListRedisTemplate, key, WxLevelConfig.class); if (null == clist || clist.size() <= 0) { WxLevelConfig wxLevelConfig = new WxLevelConfig(); @@ -196,12 +198,18 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { } else { wxLevelConfigMapper.updateById(record); } - this.deleteRedis(record.getTenantId()); + this.deleteRedis(record.getFinalTenantId(), record.getTenantId()); } @Transactional(rollbackFor = {Exception.class}) @Override public void batchSave(TenantEntity tenantEntity, List records) { + boolean isParent = true; + boolean isCreate = false; + if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { + isParent = false; + } + final IdWorker idWorker = IdWorker.get(); wxLevelConfigMapper.deleteAll(tenantEntity.getFinalTenantId()); List levelConfigs = new ArrayList<>(); @@ -210,6 +218,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { levelConfig.setId(idWorker.nextId()); levelConfig.setCreateDate(new Date()); levelConfig.setUpdateDate(new Date()); + isCreate = true; } else { levelConfig.setUpdateDate(new Date()); } @@ -217,27 +226,32 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { levelConfig.setTenantId(tenantEntity.getFinalTenantId()); levelConfigs.add(levelConfig); - WxLevelConfigCoupon lc = new WxLevelConfigCoupon(); - lc.updateTenantInfo(tenantEntity); - lc.setLevelId(levelConfig.getId()); - wxLevelConfigCouponMapper.deleteByConfig(lc); - if (null != levelConfig.getCoupons()) { - for (int i = 0 ; i < levelConfig.getCoupons().size(); i++) { - WxLevelConfigCoupon lcc = levelConfig.getCoupons().get(i); - WxLevelConfigCoupon wlcc = new WxLevelConfigCoupon(); - wlcc.updateTenantInfo(tenantEntity); - wlcc.setCouponId(lcc.getCouponId()); - wlcc.setId(idWorker.nextId()); - wlcc.setCreateDate(new Date()); - wlcc.setUpdateDate(new Date()); - wlcc.setLevelId(levelConfig.getId()); - wxLevelConfigCouponMapper.insert(wlcc); - } + //如果不是父级,点添加是不处理的 + if (!isParent && isCreate) { + }else { + WxLevelConfigCoupon lc = new WxLevelConfigCoupon(); + lc.updateTenantInfo(tenantEntity); + lc.setLevelId(levelConfig.getId()); + wxLevelConfigCouponMapper.deleteByConfig(lc); + if (null != levelConfig.getCoupons()) { + for (int i = 0 ; i < levelConfig.getCoupons().size(); i++) { + WxLevelConfigCoupon lcc = levelConfig.getCoupons().get(i); + WxLevelConfigCoupon wlcc = new WxLevelConfigCoupon(); + wlcc.updateTenantInfo(tenantEntity); + wlcc.setCouponId(lcc.getCouponId()); + wlcc.setId(idWorker.nextId()); + wlcc.setCreateDate(new Date()); + wlcc.setUpdateDate(new Date()); + wlcc.setLevelId(levelConfig.getId()); + wxLevelConfigCouponMapper.insert(wlcc); + } + } } } - wxLevelConfigMapper.insertBatch(levelConfigs); - - this.deleteRedis(tenantEntity.getFinalTenantId()); + if (isParent) { + wxLevelConfigMapper.insertBatch(levelConfigs); + } + this.deleteRedis(tenantEntity.getFinalTenantId(),tenantEntity.getTenantId()); } @Override @@ -258,7 +272,7 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { wxLevelConfigMapper.batchUpdate(config); } - this.deleteRedis(tenantEntity.getFinalTenantId()); + this.deleteRedis(tenantEntity.getFinalTenantId(),tenantEntity.getTenantId()); } @Override @@ -274,13 +288,13 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { lc.setLevelId(records.getId()); wxLevelConfigCouponMapper.deleteByConfig(lc); - this.deleteRedis(records.getTenantId()); + this.deleteRedis(records.getFinalTenantId(),records.getTenantId()); wxLevelConfigMapper.deleteById(id); } @Override public void deleteAll(TenantEntity tenantEntity) { - this.deleteRedis(tenantEntity.getFinalTenantId()); + this.deleteRedis(tenantEntity.getFinalTenantId(),tenantEntity.getTenantId()); wxLevelConfigMapper.deleteAll(tenantEntity.getFinalTenantId()); } @@ -295,8 +309,8 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { return wxLevelMerchantapper.findListCVo(record); } - private void deleteRedis(String tenantId){ - String key1 = Constant.levelConfigPrev + tenantId; + private void deleteRedis(String finalTenantId,String tenantId){ + String key1 = Constant.levelConfigPrev + finalTenantId+":"+tenantId; RedisCacheUtils.removeCache(wxLevelConfigListRedisTemplate, key1); } } diff --git a/mallinkService/src/main/resources/mapper/WxLevelConfigCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxLevelConfigCouponMapper.xml index d1b9de364..15280d7b0 100644 --- a/mallinkService/src/main/resources/mapper/WxLevelConfigCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxLevelConfigCouponMapper.xml @@ -15,7 +15,7 @@ - where `tenant_id` = #{finalTenantId} + where `tenant_id` = #{tenantId} and `id` = #{id} @@ -46,7 +46,7 @@ - delete from wx_level_config_coupon where `tenant_id` = #{finalTenantId} and level_id = #{levelId} + delete from wx_level_config_coupon where `tenant_id` = #{tenantId} and level_id = #{levelId}