diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 24e523edc..aae83982c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -67,8 +67,9 @@ public interface WxMerchantService { PageInfo listAsPage(WxMerchant record, Integer pageIndex, Integer pageSize); List queryIdAndNames(WxMerchant record); - - + + Map getIdAndNamesMap(WxMerchant record); + PageInfo listAsPageCVo(WxMerchantDto wxMerchantDto, Integer pageIndex, Integer pageSize,boolean hasShop); /** * 根据code查询 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 9bbbf5e75..b0519c5e6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -161,6 +161,19 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxMerchantMapper.findIdNameList(record); } + @Override + public Map getIdAndNamesMap(WxMerchant record) { + Map merchantSimpleMap = new HashMap(); + List merchantList = wxMerchantMapper.findIdNameList(record); + if (null != merchantList && !merchantList.isEmpty()) { + for (int k = 0 ; k < merchantList.size() ; k++) { + WxMerchant m = merchantList.get(k); + merchantSimpleMap.put(m.getId(), m.getName()); + } + } + return merchantSimpleMap; + } + @Override public WxMerchantVo getMerchantInfo(HashMap params) { WxMerchant merchant = wxMerchantMapper.getMerchantByCode(params); @@ -328,6 +341,16 @@ public class WxMerchantServiceImpl implements WxMerchantService { otherQ.setOtherMerchantId(wxMerchant.getId().toString()); otherQ.setStatus(EnumMerchantBUserStatus.VALID.getCode()); List otherUserList = wxMerchantBUserMapper.findList(otherQ); + if(otherUserList != null && !otherUserList.isEmpty()){ + List ids = otherUserList.stream().map(u -> u.getMerchantId()).collect(Collectors.toList()); + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(wxMerchant); + merchantQ.setIds(ids); + Map idAndNamesMap = getIdAndNamesMap(merchantQ); + for (WxMerchantBUser buser: otherUserList) { + buser.setMerchantName(idAndNamesMap.get(buser.getMerchantId())); + } + } wxMerchant.setOtherMerchantUsers(otherUserList); } @@ -870,6 +893,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { if (wxMerchant.getId() == null) { return new ResultData(ErrorCode.MERCHANT_INFO_NOT_FOUND); } + if(EnumYesOrNo.NO.getCode().equals(wxMerchant.getIsAdmin())){ + //删除关联的其他门店用户 + wxMerchantBUserMapper.deleteOtherMerchant(wxMerchant.getTenantId(),wxMerchant.getId().toString()); + } wxMerchantMapper.updateById(wxMerchant); wxLevelConfigService.batchSaveByMerchantId(wxMerchant, wxMerchant.getId(), wxMerchant.getLevelConfigList()); } catch (Exception e) { diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index e122514fb..ba745d56e 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -180,7 +180,7 @@ and json_search(other_merchant, 'one', #{otherId}) IS NOT NULL; - + update wx_merchant_b_user set other_merchant = json_array_append(coalesce(other_merchant,'[]'), '$', #{otherId}) where `tenant_id` = #{tenantId} and id in