diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java index 758574dc5..e8ec02083 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java @@ -15,7 +15,7 @@ public interface WxMerchantShopMapper extends CommonMapper shopIds); - void realDelByMerchantId(@Param("merchantId") Long merchantId); + void realDelByMerchantId(@Param("merchantId") Long merchantId,@Param("shopList") List shopIds); } 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 eb727a185..1092b922b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -463,26 +463,30 @@ public class WxMerchantServiceImpl implements WxMerchantService { List shopIds = wxMerchant.getShopids(); //如果原来店铺在商户里面有有效的合同,则不能操作 List oldShopIds = wxMerchantShopMapper.findShopIds(wxMerchant.getId()); + List coldShopIds = new ArrayList(); if (null != oldShopIds && oldShopIds.size() > 0) { - for (Long osid : oldShopIds) { - WxRentContract wrc = new WxRentContract(); - wrc.setMerchantId(wxMerchant.getId()); - wrc.setQueryShopId(osid); - wrc.setStatuss(EnumRentContractStatus.getValidStatus()); - wrc.updateTenantInfo(wxMerchant); - List clist = wxRentContractService.findList(wrc); - if (null != clist && clist.size() > 0 ) { - return new ResultData(ErrorCode.MERCHANT_HASRENTCONTRACT.getCode(),"店铺["+osid+"]存在有效的合同,不能解除绑定."); - } - } + coldShopIds.addAll(oldShopIds); + oldShopIds.removeAll(shopIds); + if (null != oldShopIds && oldShopIds.size() > 0 ) { + for (Long osid : oldShopIds) { + WxRentContract wrc = new WxRentContract(); + wrc.setMerchantId(wxMerchant.getId()); + wrc.setQueryShopId(osid); + wrc.setStatuss(EnumRentContractStatus.getValidStatus()); + wrc.updateTenantInfo(wxMerchant); + List clist = wxRentContractService.findList(wrc); + if (null != clist && clist.size() > 0 ) { + return new ResultData(ErrorCode.MERCHANT_HASRENTCONTRACT.getCode(),"店铺["+osid+"]存在有效的合同,不能解除绑定."); + } + } + //都验证过了之后,先把之前的商铺释放,删除关系 + wxShopMapper.updateUnRentByIds(oldShopIds); + wxMerchantShopMapper.realDelByMerchantId(wxMerchant.getId(),oldShopIds); + } } - //都验证过了之后,先把之前的商铺释放,删除关系 - if (null != oldShopIds && oldShopIds.size() > 0 ) { - wxShopMapper.updateUnRentByIds(oldShopIds); - } - wxMerchantShopMapper.realDelByMerchantId(wxMerchant.getId()); if (null != shopIds) { + shopIds.removeAll(coldShopIds); List currSIds = new ArrayList(); for (Long sid: shopIds) { if (!currSIds.contains(sid)) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 36ee5025e..a402a365a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2462,7 +2462,17 @@ public class WxRentContractServiceImpl implements WxRentContractService { wrq.setStatus(EnumRentContractStatus.PERFORMANCE.getCode()); List clist = wxRentContractMapper.findList(wrq); if (null != clist && clist.size() > 0 ) { - return new ResultData(Result.ERROR, "当前存在其他审批中的合同。请先作完成。"); + return new ResultData(Result.ERROR, "当前存在其他审批中的租金合同。请先作完成。"); + } + //如果该合同是租金+物业合同,则还要判断物业合同 + if(rentContract.getOperationType().intValue() == EnumContractOperationType.WHOLE.getCode().intValue()) { + WxPropertyContract wpc = new WxPropertyContract(); + wpc.updateTenantInfo(user); + wpc.setStatus(EnumRentContractStatus.PERFORMANCE.getCode()); + List plist = wxPropertyContractMapper.findList(wpc); + if (null != plist && plist.size() > 0 ) { + return new ResultData(Result.ERROR, "当前存在其他审批中的物业合同。请先作完成。"); + } } // Integer count = wxRentContractMapper.getCanApplyCount(rentContract.getId()); // if (null != count && count.intValue()>0) { diff --git a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml index ee54b4988..ddafc4978 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml @@ -83,8 +83,11 @@ - - delete from wx_merchant_shop where merchant_id = #{merchantId} + + delete from wx_merchant_shop where merchant_id = #{merchantId} and shop_id in + + #{shopItem} +