From 987717fc55567bc27f2c717c74c3f139bfb878f7 Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Thu, 13 Jul 2023 17:26:04 +0800 Subject: [PATCH] fix poi --- .../iformall/controller/mem/AsyncTask.java | 9 +- .../iformall/service/WxMerchantService.java | 3 +- .../com/iformall/service/WxShopService.java | 2 + .../service/impl/WxMerchantServiceImpl.java | 106 +++++++++++++++++- .../service/impl/WxShopServiceImpl.java | 12 ++ 5 files changed, 126 insertions(+), 6 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java index 6aab4b446..aed348921 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/AsyncTask.java @@ -492,7 +492,14 @@ public class AsyncTask { } } if (create) { - wxMerchantService.initMerchantByPoi(poiBase.getPoiName(), poiBase.getPoiId()); + try { + WxMerchant merchant = wxMerchantService.initMerchantByPoi(user,poiBase.getPoiName(), poiBase.getPoiId(),poiBase.getPhone()); + poiBase.setMerchantId(String.valueOf(merchant.getId())); + poiBase.setMerchantName(merchant.getName()); + poiBase.setInitMerchantRemark("初始化商户成功."); + }catch(Exception e) { + poiBase.setInitMerchantRemark("初始化商户失败."+e.getMessage()); + } } } catch (UnknownSessionException ue) { logger.error("session :"+ue.getMessage(),ue); diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 69e8ce9cd..010911baa 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -3,6 +3,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxMerchantDto; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBusinessCircleOrder; import com.iformall.domain.po.WxMerchantCorp; import com.iformall.domain.po.WxPark; @@ -225,5 +226,5 @@ public interface WxMerchantService { List selectByMerchantIds(String merchantName); - void initMerchantByPoi(String poiName,String poiId); + WxMerchant initMerchantByPoi(MallUserInfo user,String poiName,String poiId,String phone) throws Exception; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxShopService.java b/mallinkService/src/main/java/com/iformall/service/WxShopService.java index edb466c26..76df4fba5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxShopService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxShopService.java @@ -103,5 +103,7 @@ public interface WxShopService { */ Map> findMerchantShopVoListMap(TenantEntity tenantEntity, List merchantIds); List findMerchantShopVoList(TenantEntity tenantEntity,Long merchantId); + + WxShop getShopByShopNumber(TenantEntity tenantEntity,String shopNumber); } 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 d5f72fc50..ee22ba610 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -156,6 +156,10 @@ public class WxMerchantServiceImpl implements WxMerchantService { @Autowired WxMerchantRelationService wxMerchantRelationService; + @Lazy + @Autowired + private WxMallBuildingService wxMallBuildingService; + @Autowired @Qualifier("objectCommonRedisTemplate") RedisTemplate redisTemplate; @@ -2167,8 +2171,102 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxMerchantMapper.findIdList(merchant); } + private WxShop initShopByPoiId(TenantEntity tenantEntity,String poiId) throws Exception { + String shopNumber = "DYPOI-"+poiId; + WxShop shop = wxShopService.getShopByShopNumber(tenantEntity, shopNumber); + if (null == shop) { + Long buildingId = null; + Long floorId = null; + try { + ResultData builds = wxMallBuildingService.getBuildingFloorList(tenantEntity); + if (null == builds || null == builds.data) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼层楼座未查询到."); + } + List wxMallBuildings = (List) builds.data; + if (null == wxMallBuildings || wxMallBuildings.size() <= 0 ){ + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼层楼座未查询到."); + } + WxMallBuilding building = wxMallBuildings.get(0); + buildingId = building.getId() ; + List floors = building.getFloors(); + if (null == floors || floors.size() <= 0 ){ + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼座"+building.getBuildingName()+"没有楼层"); + } + floorId = floors.get(0).getId(); + } catch(Exception e) { + logger.error("initMerchantByPoi error.",e); + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"楼层楼座查询错误."+e.getMessage()); + } + shop = new WxShop(); + shop.updateTenantInfo(tenantEntity); + shop.setBuildArea("0"); + shop.setShopNumber(shopNumber); + shop.setBuilding(buildingId); + shop.setFloor(floorId); + shop.setOperationArea("0"); + shop.setBusinessId(0); + shop.setRentUnit(2); + wxShopService.saveOrUpdate(shop); + } + return shop; + } + + private WxMerchant initMerchantByPoiId(WxShop shop,MallUserInfo user,String poiName, String poiId,String phone) { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(user); + merchantQ.setCreateFrom(EnumMerchantCreateFrom.DOUYIN_LAIKE.getCode()); + merchantQ.setCreateFromId(poiId); + Map poiCreateMerchant = this.findMerchantMapByCreateFromId(merchantQ); + WxMerchant merchant = null; + if (null != poiCreateMerchant) { + merchant = poiCreateMerchant.get(poiId); + } + if (null == merchant) { + merchant = new WxMerchant(); + merchant.setIsAdmin(EnumMerchantAdmin.PUBLIC_COMMON.getCode()); + merchant.setCarVendorType(0); + merchant.setImgUrl("https://formall.oss-accelerate.aliyuncs.com/234/WechatIMG5071.png"); + merchant.setName(poiName); + if (StringUtils.isBlank(phone)) { + merchant.setLinkPhone("11111111111"); + }else { + merchant.setLinkPhone(phone); + } + merchant.setLinkPerson("default"); + List shopIds = new ArrayList(); + shopIds.add(shop.getId()); + merchant.setShopids(shopIds); + merchant.setBusinessId(shop.getBusinessId()); + merchant.setType(1); + merchant.setCreateFrom(EnumMerchantCreateFrom.DOUYIN_LAIKE.getCode()); + merchant.setCreateFromId(poiId); + this.addMerchant(merchant, user.getId()); + } + return merchant; + } + @Override - public void initMerchantByPoi(String poiName, String poiId) { - - } -} + public WxMerchant initMerchantByPoi(MallUserInfo user,String poiName, String poiId,String phone) throws Exception{ + WxShop shop = initShopByPoiId(user,poiId); + if (null == shop) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"商铺信息初始化失败"); + } + WxMerchant merchant = initMerchantByPoiId(shop, user, poiName, poiId, phone); + if (null == merchant) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"商户信息初始化失败"); + } + //加管理员 + if (StringUtils.isNotBlank(phone)) { + List users = new ArrayList(); + WxMerchantBUser buser = new WxMerchantBUser(); + buser.setName("管理员"); + buser.setPhone(phone); + buser.setUserPwd("123456Abc"); + buser.setIsAdmin(merchant.getIsAdmin()); + users.add(buser); + merchant.setUsers(users); + this.updateMerchantAdmin(merchant) ; + } + return merchant; + } +} \ No newline at end of file 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 8ad3bd5dd..03758d5c7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -709,4 +709,16 @@ public class WxShopServiceImpl implements WxShopService { Map> map = findMerchantShopVoListMap(tenantEntity, merchantIds); return map.get(merchantId); } + + @Override + public WxShop getShopByShopNumber(TenantEntity tenantEntity,String shopNumber) { + WxShop shopQ = new WxShop(); + shopQ.updateTenantInfo(tenantEntity); + shopQ.setShopNumber(shopNumber); + List shopList = wxShopMapper.findList(shopQ); + if (null != shopList && shopList.size() > 0 ) { + return shopList.get(0); + } + return null; + } }