diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java index d7e18695f..1a2e79462 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantShop.java @@ -18,6 +18,8 @@ public class WxMerchantShop extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId") private Long merchantId; + @TableField(exist = false) + private List merchantIds; @io.swagger.annotations.ApiModelProperty(value="商铺ID",name="shopId") private Long shopId; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java index 6e3030259..49e3ace63 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantMapper.java @@ -64,5 +64,4 @@ public interface WxMerchantMapper extends CommonMapper { List> detailByShopId(@Param("tenantInfo")TenantEntity tenantInfo,@Param("shopId") Long shopId); - List newFindListCVo(@Param("tenantId")String tenantId, @Param("merchantIds")List merchantIds); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java index e5680673a..56142a0b9 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantShopMapper.java @@ -13,7 +13,7 @@ public interface WxMerchantShopMapper extends CommonMapper findMerchantIdList(WxMerchantShop wxMerchantShop); - List findShopIds(@Param("merchantId") Long merchantId); + List findShopIds(@Param("merchantIds") List merchantIds); void delShops(@Param("merchantId") Long merchantId,@Param("shopList") List shopIds); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 222f29a80..8d3aa9d8a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -155,8 +155,8 @@ public interface WxMerchantService { PageInfo listVoAsPage(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); - List findMerchantVoList(Long couponId,String tenantId); - Map> findCouponMerchantVoList(List couponIds,String tenantId); + List findMerchantVoList(Long couponId,TenantEntity tenantEntity,boolean hasShop); + Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop); PageInfo listVoAsPage2(WxMerchant wxMerchant, Integer pageNum, Integer pageSize); @@ -189,7 +189,4 @@ public interface WxMerchantService { Map detailByShopId(TenantEntity tenantInfo, Long shopId); - List newFindWithShopByCouponId(TenantEntity tenantInfo, Long couponId); - - List newFindByCouponId(TenantEntity tenantInfo, Long couponId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxShopService.java b/mallinkService/src/main/java/com/iformall/service/WxShopService.java index 8e41a24a1..ec4877f8c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxShopService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxShopService.java @@ -93,5 +93,5 @@ public interface WxShopService { * @param merchantId * @return */ - List newFindByMerchantId(String tenantId, Long merchantId); + Map> findMerchantShopVoList(TenantEntity tenantEntity, List merchantIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index e9e5a1752..207d5a3b9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -622,10 +622,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { couponQ.updateTenantInfo(co); couponQ.setId(co.getCouponId()); WxCoupon coupon = wxCouponMapper.findSimpleDetail(couponQ); - return getCouponOrderCDetailVo(co,coupon); + List couponIds = new ArrayList(); + couponIds.add(co.getCouponId()); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIds, co, true); + return getCouponOrderCDetailVo(co,coupon,couponMerchantVoMap); } - private WxCouponOrderCVo getCouponOrderCDetailVo(WxCouponOrder co,WxCoupon coupon) { + private WxCouponOrderCVo getCouponOrderCDetailVo(WxCouponOrder co,WxCoupon coupon,Map> couponMerchantVoMap) { try { WxCouponOrderCVo cvo = new WxCouponOrderCVo(); BeanUtils.copyProperties(cvo, co); @@ -648,7 +651,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { cvo.setPickStartDate(coupon.getPickStartDate()); cvo.setPickEndDate(coupon.getPickEndDate()); cvo.setAutoRefund(coupon.getAutoRefund()); - cvo.setMerchantVoList(wxMerchantService.newFindWithShopByCouponId(cvo,coupon.getId())); + cvo.setMerchantVoList(couponMerchantVoMap.get(cvo.getCouponId())); } return cvo; } catch (IllegalAccessException | InvocationTargetException e) { @@ -657,6 +660,13 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { return null; } + private WxCouponOrderCVo getCouponOrderCDetailVo(WxCouponOrder co,WxCoupon coupon) { + List couponIds = new ArrayList(); + couponIds.add(co.getCouponId()); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(null, co, true); + return getCouponOrderCDetailVo(co,coupon,couponMerchantVoMap); + } + @Override public WxCouponOrderCVo detailCUserVo(String couponOrderId,TenantEntity tenantinfo) { WxCouponOrder couponOrder = wxCouponOrderMapper.findDetailOfCUser(Long.valueOf(couponOrderId),tenantinfo.getTenantId()); @@ -751,7 +761,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } } - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIds, tenantEntity.getTenantId()); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIds, tenantEntity,false); List volist = new ArrayList(); for (int i = 0 ; i < couponOrderList.size(); i++){ @@ -787,7 +797,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { cvo.setValidStartDate(coupon.getValidStartDate()); cvo.setValidEndDate(coupon.getValidEndDate()); cvo.setAutoRefund(coupon.getAutoRefund()); - cvo.setMerchantVoList(wxMerchantService.newFindByCouponId(cvo,coupon.getId())); } WxCouponCar couponCar= couponCarMap.get(cvo.getCouponId()); if (null != couponCar) { 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 48ee9fc09..2b578d058 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -116,11 +116,6 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Autowired TtUserFollowMapper ttUserFollowMapper; - @Autowired - WxMallFloorService wxMallFloorService; - @Autowired - WxMallBuildingService wxMallBuildingService; - @Autowired private QrCodeService qrCodeService; @@ -517,7 +512,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { List shopIds = wxMerchant.getShopids(); if(null != shopIds && shopIds.size() > 0){ //如果原来店铺在商户里面有有效的合同,则不能操作 - List oldShopIds = wxMerchantShopMapper.findShopIds(wxMerchant.getId()); + List merchantIds = new ArrayList(); + merchantIds.add(wxMerchant.getId()); + List oldShopIds = wxMerchantShopMapper.findShopIds(merchantIds); List coldShopIds = new ArrayList(); if (null != oldShopIds && oldShopIds.size() > 0) { coldShopIds.addAll(oldShopIds); @@ -925,11 +922,11 @@ public class WxMerchantServiceImpl implements WxMerchantService { } @Override - public Map> findCouponMerchantVoList(List couponIds,String tenantId) { - List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantId, couponIds); + public Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop) { + List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantEntity.getTenantId(), couponIds); if(null != merchantIds && merchantIds.size() > 0 ) { WxMerchant merchantQ = new WxMerchant(); - merchantQ.setTenantId(tenantId); + merchantQ.updateTenantInfo(tenantEntity); merchantQ.setIds(merchantIds); List merchantList = wxMerchantMapper.findList(merchantQ); Map merchantMap = new HashMap(); @@ -943,13 +940,19 @@ public class WxMerchantServiceImpl implements WxMerchantService { } WxCouponMerchant couponMerchantQ = new WxCouponMerchant(); - couponMerchantQ.setTenantId(tenantId); + couponMerchantQ.updateTenantInfo(tenantEntity); couponMerchantQ.setStatus(0); couponMerchantQ.setProductIds(couponIds); List couponMerchantList = wxCouponMerchantMapper.findList(couponMerchantQ); if (null == couponMerchantList) { return null; } + + Map> merchantShopVoList = null; + if (hasShop) { + merchantShopVoList = wxShopService.findMerchantShopVoList(tenantEntity,merchantIds); + } + Map> retMap = new HashMap>(); for (int i = 0 ; i < couponMerchantList.size() ; i ++) { WxCouponMerchant cm = couponMerchantList.get(i); @@ -961,7 +964,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { volist = new ArrayList(); } retMap.put(couponId, volist); - WxMerchantVo vo = merchantToVo(cm,merchantMap.get(merchantId)); + WxMerchantVo vo = merchantToVo(cm,merchantMap.get(merchantId),hasShop,merchantShopVoList); if (null != vo) { volist.add(vo); } @@ -972,7 +975,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { return null; } - private WxMerchantVo merchantToVo(WxCouponMerchant cm,WxMerchant m) { + private WxMerchantVo merchantToVo(WxCouponMerchant cm,WxMerchant m,boolean hasShop,Map> merchantShopVoList) { if (null == cm) { return null; } @@ -991,14 +994,17 @@ public class WxMerchantServiceImpl implements WxMerchantService { vo.setSubBusinessId(m.getSubBusinessId()); vo.setParameter(cm.getParameter()); vo.setLinkLinePhone(m.getLinkLinePhone()); + if (hasShop) { + vo.setShopVoList(merchantShopVoList.get(vo.getId())); + } return vo; } @Override - public List findMerchantVoList(Long couponId,String tenantId) { + public List findMerchantVoList(Long couponId,TenantEntity tenantEntity,boolean hasShop) { List couponIds = new ArrayList(); couponIds.add(couponId); - Map> couponMerchantVoList = findCouponMerchantVoList(couponIds,tenantId); + Map> couponMerchantVoList = findCouponMerchantVoList(couponIds,tenantEntity,hasShop); if (null != couponMerchantVoList) { return couponMerchantVoList.get(couponId); } @@ -1063,7 +1069,9 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Override public List getMerchantShopIds(Long merchantId) { - return wxMerchantShopMapper.findShopIds(merchantId); + List merchantIds = new ArrayList(); + merchantIds.add(merchantId); + return wxMerchantShopMapper.findShopIds(merchantIds); } @Override @@ -1271,35 +1279,6 @@ public class WxMerchantServiceImpl implements WxMerchantService { return null; } - @Override - public List newFindWithShopByCouponId(TenantEntity tenantInfo, Long couponId) { - List wxMerchantVoList = this.newFindByCouponId(tenantInfo, couponId); - handleShopVo(tenantInfo,wxMerchantVoList); - return wxMerchantVoList; - } - - @Override - public List newFindByCouponId(TenantEntity tenantInfo, Long couponId) { - List merchantIds = wxCouponMerchantMapper.findMerchantByProductId(tenantInfo.getTenantId(), couponId); - List wxMerchantVoList = wxMerchantMapper.newFindListCVo(tenantInfo.getTenantId(),merchantIds); - return wxMerchantVoList; - } - - private void handleShopVo(TenantEntity tenantInfo,List wxMerchantVoList){ - if(wxMerchantVoList != null && wxMerchantVoList.size() > 0){ - Map floorMap = wxMallFloorService.getFloorMap(tenantInfo); - Map buildingMap = wxMallBuildingService.getBuildingMap(tenantInfo); - for (WxMerchantVo wv:wxMerchantVoList) { - List shopVoList = wxShopService.newFindByMerchantId(tenantInfo.getTenantId(),wv.getId()); - if(shopVoList != null && shopVoList.size() > 0){ - for (WxShopVo sv:shopVoList) { - sv.setBuildingName(buildingMap.get(sv.getBuilding())); - sv.setFloorName(floorMap.get(sv.getFloor())); - } - } - wv.setShopVoList(shopVoList); - } - } - } + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index 72e25c258..620cd4eda 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -18,12 +18,15 @@ import com.iformall.mapper.WxMerchantShopMapper; import com.iformall.mapper.WxRentContractMapper; import com.iformall.mapper.WxShopMapper; import com.iformall.service.ExcelService; +import com.iformall.service.WxMallBuildingService; +import com.iformall.service.WxMallFloorService; import com.iformall.service.WxShopService; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; @@ -46,6 +49,14 @@ public class WxShopServiceImpl implements WxShopService { @Autowired WxRentContractMapper wxRentContractMapper; + + @Lazy + @Autowired + WxMallFloorService wxMallFloorService; + + @Lazy + @Autowired + WxMallBuildingService wxMallBuildingService; @Override public List selectList(QueryWrapper queryWrapper) { @@ -262,9 +273,40 @@ public class WxShopServiceImpl implements WxShopService { } @Override - public List newFindByMerchantId(String tenantId, Long merchantId) { - List shopIds = wxMerchantShopMapper.findShopIds(merchantId); - List shopVoList = wxShopMapper.newFindShopVoList(tenantId,shopIds); - return shopVoList; + public Map> findMerchantShopVoList(TenantEntity tenantEntity, List merchantIds) { + Map floorMap = wxMallFloorService.getFloorMap(tenantEntity); + Map buildingMap = wxMallBuildingService.getBuildingMap(tenantEntity); + List shopIds = wxMerchantShopMapper.findShopIds(merchantIds); + + List shopVoList = wxShopMapper.newFindShopVoList(tenantEntity.getTenantId(),shopIds); + Map shopVoMap = new HashMap(); + if(shopVoList != null && shopVoList.size() > 0){ + for (WxShopVo sv:shopVoList) { + sv.setBuildingName(buildingMap.get(sv.getBuilding())); + sv.setFloorName(floorMap.get(sv.getFloor())); + shopVoMap.put(sv.getId(), sv); + } + } + + Map> retMap = new HashMap>(); + WxMerchantShop merchantShopQ = new WxMerchantShop(); + merchantShopQ.updateTenantInfo(tenantEntity); + merchantShopQ.setMerchantIds(merchantIds); + List merchantShops = wxMerchantShopMapper.findList(merchantShopQ); + if (null == merchantShops) { + return null; + } + for (int i = 0 ; i < merchantShops.size(); i ++) { + WxMerchantShop ms = merchantShops.get(i); + if (null != ms.getShopId() && null != ms.getMerchantId()) { + List mShopIds = retMap.get(ms.getMerchantId()); + if (null == mShopIds) { + mShopIds = new ArrayList(); + } + mShopIds.add(shopVoMap.get(ms.getShopId())); + retMap.put(ms.getMerchantId(), mShopIds); + } + } + return retMap; } } diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index 545bd6c3b..b9651a4b6 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -753,22 +753,4 @@ and s.`id` = #{shopId} - - - diff --git a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml index d3d7a713f..cafcd1872 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantShopMapper.xml @@ -68,6 +68,13 @@ #{shopIdItem} + + + and merchant_id in + + #{merchantIdItem} + + order by ${sortColumns} @@ -87,7 +94,14 @@