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 602e357d1..79cbd3d64 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxProjectConfigController.java @@ -628,17 +628,20 @@ public class WxProjectConfigController extends BaseController { @PostMapping("/init/submall") @SystemControllerLog(description = "子广场-更新") @TenantIgnore - public ResultData initSubmall(@RequestBody WxMall wxMall) { + public ResultData initSubmall(@RequestBody Map map) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::initSubmall"); try { - if(StringUtils.isBlank(wxMall.getTenantId())){ + String tenantId = (String) map.get("tenantId"); + String[] subTenantIds = (String[]) map.get("subTenantIds"); + + if(StringUtils.isBlank(tenantId)){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - if(StringUtils.isBlank(wxMall.getParentTenantId())){ + if(subTenantIds == null || subTenantIds.length == 0){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } TenantEntity TenantEntity = new TenantEntity(){{ - setTenantId(wxMall.getParentTenantId()); + setTenantId(tenantId); }}; WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); if(parentWxMall == null || parentWxMall.getSaleType() != 100 @@ -646,8 +649,7 @@ public class WxProjectConfigController extends BaseController { || StringUtils.isNotBlank(parentWxMall.getParentTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } - String[] tenantIds = wxMall.getTenantId().split(","); - wxProjectConfigService.initSubmall(wxMall.getParentTenantId(),tenantIds); + wxProjectConfigService.initSubmall(tenantId,subTenantIds); return new ResultData(); }catch (Exception e){ @@ -660,17 +662,20 @@ public class WxProjectConfigController extends BaseController { @PostMapping("/init/after/group") @SystemControllerLog(description = "商场-数据更新") @TenantIgnore - public ResultData initAfterGroup(@RequestBody WxMall wxMall) { + public ResultData initAfterGroup(@RequestBody Map map) { logger.debug("[" + getIpAddr() + "] WxProjectConfigController::initAfterGroup"); try { - if(StringUtils.isBlank(wxMall.getTenantId())){ + String tenantId = (String) map.get("tenantId"); + String[] subTenantIds = (String[]) map.get("subTenantIds"); + + if(StringUtils.isBlank(tenantId)){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } - if(StringUtils.isBlank(wxMall.getParentTenantId())){ + if(subTenantIds == null || subTenantIds.length == 0){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); } TenantEntity TenantEntity = new TenantEntity(){{ - setTenantId(wxMall.getParentTenantId()); + setTenantId(tenantId); }}; WxMall parentWxMall = wxMallService.getByTenantInfo(TenantEntity); if(parentWxMall == null || parentWxMall.getSaleType() != 100 @@ -687,7 +692,9 @@ public class WxProjectConfigController extends BaseController { }else{ openRedisTemplate.opsForValue().set(key,"1",3000, TimeUnit.SECONDS); } - wxProjectConfigService.initAfterGroup(wxMall.getParentTenantId(),wxMall.getTenantId()); + + String join = StringUtils.join(subTenantIds, ','); + wxProjectConfigService.initAfterGroup(tenantId,join); return new ResultData(); }catch (Exception e){ diff --git a/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql b/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql index a1cd281d3..de6258eb1 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202007311142__GROUP__ADD_002.sql @@ -20,10 +20,12 @@ BEGIN PREPARE stmt_old FROM @old_data_sql; EXECUTE stmt_old; DEALLOCATE PREPARE stmt_old; - SET @new_data_sql = CONCAT("UPDATE ",tableName," SET parent_tenant_id = '",tenantId,"' WHERE FIND_IN_SET(tenant_id ,'",subTenantIds,"');"); - PREPARE stmt_new FROM @new_data_sql; - EXECUTE stmt_new; - DEALLOCATE PREPARE stmt_new; + IF ISNULL(subTenantIds)=0 and LENGTH(trim(subTenantIds))>0 THEN + SET @new_data_sql = CONCAT("UPDATE ",tableName," SET parent_tenant_id = '",tenantId,"' WHERE FIND_IN_SET(tenant_id ,'",subTenantIds,"');"); + PREPARE stmt_new FROM @new_data_sql; + EXECUTE stmt_new; + DEALLOCATE PREPARE stmt_new; + END IF; END LOOP; CLOSE table_cursor; IF err_flag THEN diff --git a/mallinkService/src/main/resources/mapper/WxMallMapper.xml b/mallinkService/src/main/resources/mapper/WxMallMapper.xml index fce078461..8dad444e5 100644 --- a/mallinkService/src/main/resources/mapper/WxMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallMapper.xml @@ -193,11 +193,13 @@ update wx_mall set parent_tenant_id = null where parent_tenant_id = #{parentTenantId} ; + update wx_mall set parent_tenant_id = #{parentTenantId} where tenant_id in #{item} +