From 3adbcc42d5f84c3c83d220543189361add81e04d Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 11 九月 2023 15:22:19 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java |  485 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 355 insertions(+), 130 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 15d93e7..bac11cf 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -2,9 +2,15 @@
 
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsResult;
+import com.github.binarywang.wxpay.bean.ecommerce.ApplymentsStatusResult;
+import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverRequest;
+import com.github.binarywang.wxpay.bean.ecommerce.ProfitSharingReceiverResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
@@ -16,14 +22,17 @@
 import com.ruoyi.shop.domain.dto.*;
 import com.ruoyi.shop.domain.pojo.shop.*;
 import com.ruoyi.shop.domain.pojo.task.ShopFile;
+import com.ruoyi.shop.domain.pojo.task.ShopTask;
 import com.ruoyi.shop.domain.vo.*;
+import com.ruoyi.shop.enums.WxApplyMentStateEnum;
 import com.ruoyi.shop.mapper.shop.ShopMapper;
 import com.ruoyi.shop.service.shop.*;
 import com.ruoyi.shop.service.task.MemberTaskService;
 import com.ruoyi.shop.service.task.ShopFileService;
 import com.ruoyi.shop.service.task.ShopTaskService;
-import com.ruoyi.shop.util.dto.*;
+import com.ruoyi.shop.util.WechatPayUtils;
 import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.constant.SecurityConstant;
 import com.ruoyi.system.api.domain.dto.*;
 import com.ruoyi.system.api.domain.poji.config.SysTag;
 import com.ruoyi.system.api.domain.poji.member.Member;
@@ -31,6 +40,7 @@
 import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.*;
 import com.ruoyi.system.api.service.*;
+import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -50,6 +60,7 @@
  * @since 2023-04-25
  */
 @Service
+@Log4j2
 public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements ShopService {
 
     @Resource
@@ -115,8 +126,20 @@
     @Resource
     private RedisService redisService;
 
+    @Resource
+    private WechatPayUtils wechatPayUtils;
+
+    @Resource
+    private ShopDetailService shopDetailService;
+
+    @Resource
+    private RemoteUserService remoteUserService;
+
+
+
     /**
      * 获取商户详情
+     *
      * @param shopId
      * @return
      */
@@ -162,6 +185,9 @@
         //验证关联账号唯一
         String relUserIds = mgtEditShopDto.getRelUserIds();
         if(StringUtils.isNotBlank(relUserIds)) {
+            if(relUserIds.startsWith(",")){
+                relUserIds = relUserIds.substring(1);
+            }
             String[] relUserIdArray = relUserIds.split(",");
             ShopRelUser shopRelUser;
             Long userId;
@@ -185,11 +211,12 @@
 
         }
         //验证商户名唯一
-        Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
+        //Shop shopSame = this.getOne(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag,0).eq(Shop::getShopName,mgtEditShopDto.getShopName()));
         if(mgtEditShopDto.getShopId()!=null){
-            if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
+            //取消验重
+            /*if(shopSame!=null&&!Objects.equals(shopSame.getShopId(),mgtEditShopDto.getShopId())){
                 throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
-            }
+            }*/
             shop = this.getById(mgtEditShopDto.getShopId());
             shop.setUpdateTime(new Date());
             shop.setUpdateUserId(mgtEditShopDto.getUserId());
@@ -208,16 +235,18 @@
                 remoteMemberService.updateMemberShopName(mgtMemberShopNameDto);
             }
         }else{
-            if(shopSame!=null){
+            //取消验重
+            /*if(shopSame!=null){
                 throw new ServiceException(AppErrorConstant.SHOP_DOUBLE);
-            }
+            }*/
             shop.setDelFlag(0);
             shop.setShopStatus(3);
             shop.setCreateTime(new Date());
             shop.setCreateUserId(mgtEditShopDto.getUserId());
             shop.setFrozenFlag(0);
-            shop.setCooperativeFlag(0);
+            shop.setCooperativeFlag(1);
             shop.setAuthFlag(0);
+            shop.setAccountFlag(0);
             newShop = true;
         }
         BeanUtils.copyProperties(mgtEditShopDto,shop);
@@ -304,7 +333,7 @@
             //生成商户关联记录
             initNewShop(shop,mgtEditShopDto.getUserId());
             CodeGetDto codeGetDto = new CodeGetDto();
-            String url = "https://wxapp.hhhrt.cn/mini/activity?activityId="+shop.getShopId();
+            String url = "https://wxapp.hhhrt.cn/mini/shop?id="+shop.getShopId();
             codeGetDto.setUrl(url);
             codeGetDto.setFileName("shop-"+shop.getShopId());
             String codeUrl = remoteFileService.getAppOrderTotal(codeGetDto).getData();
@@ -339,13 +368,19 @@
         shopAuthentication.setAuthId(authId);
         shopAuthentication.setDelFlag(0);
         shopAuthentication.setShopId(shop.getShopId());
+        shopAuthentication.setAuditStatus(0);
+        shopAuthentication.setSignState(1);
         shopAuthenticationService.save(shopAuthentication);
         //商户分成信息初始化
         ShopProportion shopProportion = new ShopProportion();
         shopProportion.setDelFlag(0);
         shopProportion.setShopId(shop.getShopId());
         shopProportion.setShopType(shop.getShopType());
-        shopProportion.setProportionPercent(new BigDecimal("100.00"));
+        BigDecimal proportionPercent = redisService.getCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION);
+        if(proportionPercent==null){
+            proportionPercent = new BigDecimal("30");
+        }
+        shopProportion.setProportionPercent(proportionPercent);
         shopProportion.setUpdateTime(new Date());
         shopProportion.setUpdateUserId(userId);
         shopProportionService.save(shopProportion);
@@ -408,7 +443,7 @@
         }else{
             shop.setCooperativeFlag(0);
         }
-        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
+        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag()));
         shop.setUpdateTime(new Date());
         shop.setUpdateUserId(mgtTerminateCooperationDto.getUserId());
         this.saveOrUpdate(shop);
@@ -429,7 +464,7 @@
         }else{
             shop.setFrozenFlag(0);
         }
-        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag()));
+        shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),shop.getAccountFlag()));
         this.saveOrUpdate(shop);
     }
 
@@ -440,13 +475,13 @@
      * @param
      * @return  Integer
      */
-    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag){
+    private Integer handelShopStatus(Integer frozenFlag, Integer cooperativeFlag, Integer authFlag,Integer accountFlag){
         Integer shopStatus = 1;
         if(frozenFlag == 1){
             shopStatus = 0;
             return shopStatus;
         }
-        if(authFlag == 0){
+        if(authFlag == 0 || accountFlag==0){
             shopStatus = 3;
             return shopStatus;
         }
@@ -580,13 +615,19 @@
             }
             mgtShopInfoVo.setShopTagIds(shopTagJs.toString());
         }
+        //归属员工
         if(mgtShopInfoVo.getBelongUserId()!=null){
             SysUser sysUser = sysUserService.getSysUser(mgtShopInfoVo.getBelongUserId()).getData();
-            mgtShopInfoVo.setBelongUserName(sysUser.getNickName());
+            if(sysUser!=null){
+                mgtShopInfoVo.setBelongUserName(sysUser.getNickName());
+            }
         }
+        //归属商户
         if(mgtShopInfoVo.getBelongShopId()!=null){
             Shop belongShop = this.getByShopId(mgtShopInfoVo.getBelongShopId());
-            mgtShopInfoVo.setBelongShopName(belongShop.getShopName());
+            if(belongShop!=null){
+                mgtShopInfoVo.setBelongShopName(belongShop.getShopName());
+            }
         }
         //商户关联用户
         List<ShopRelUser> shopRelUserList = shopRelUserService.listByShopId(shopId);
@@ -717,6 +758,20 @@
             appMemberBindingDto.setBindingFlag(0);
             remoteMemberService.updateMemberBinding(appMemberBindingDto);
         }
+        //商品图片
+        List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shop.getShopId());
+        String shopPicture = null;
+        StringJoiner shopBanners = new StringJoiner(",");
+        if(shopFileList!=null&&!shopFileList.isEmpty()){
+            for(ShopFile shopFile : shopFileList){
+                if(shopFile.getFileType()==1){
+                    shopPicture = shopFile.getFileUrl();
+                }else{
+                    shopBanners.add(shopFile.getFileUrl());
+                }
+            }
+        }
+        appNearbyShopVo.setShopPicture(shopPicture);
         appNearbyShopVo.setShopId(shop.getShopId());
         appNearbyShopVo.setShopName(shop.getShopName());
         appNearbyShopVo.setShopAddress(shop.getShopAreaName()+shop.getShopAddress());
@@ -745,8 +800,8 @@
      */
     @Override
     public StaffHomeShopTotalVo getStaffHomeTotal(Long userId){
-        List<Long> userIds = null;
-        List<Long> shopIds = null;
+        List<Long> userIds = new ArrayList<>();
+        List<Long> shopIds = new ArrayList<>();
         //如果是leader 查询leader下面所有的员工下的所有shopId
         if(remoteSysStaffService.isLeader()){
             userIds = sysUserService.getUserIdsByDept(userId).getData();
@@ -754,16 +809,36 @@
             MgtBasePlatformDto mgtBasePlatformDto = new MgtBasePlatformDto();
             mgtBasePlatformDto.setUserIdList(userIds);
             shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
-            Shop shop = this.getShopByBelongUserId(userId);
-            shopIds.add(shop.getShopId());
+            List<Shop> shopList = this.getShopByBelongUserId(userId);
+            if(shopList!=null&&!shopList.isEmpty()){
+                for(Shop shop : shopList){
+                    shopIds.add(shop.getShopId());
+                }
+                userIds.add(userId);
+            }
         }else {
             //普通员工查询商户归属的shopId
-            Shop shop = this.getShopByBelongUserId(userId);
-            shopIds.add(shop.getShopId());
+            List<Shop> shopList = this.getShopByBelongUserId(userId);
+            if(shopList!=null&&!shopList.isEmpty()){
+                for(Shop shop : shopList){
+                    shopIds.add(shop.getShopId());
+                }
+                userIds.add(userId);
+            }
         }
         //分别查询
-        StaffHomeShopTotalVo staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(shopIds);
-        Integer shopTaskCount = shopTaskService.getShopIngTotal(shopIds);
+        StaffHomeShopTotalVo staffHomeShopTotalVo = new StaffHomeShopTotalVo();
+        if(userIds!=null&&!userIds.isEmpty()){
+            staffHomeShopTotalVo = shopMapper.getStaffHomeTotal(userIds);
+        }else{
+            staffHomeShopTotalVo.setShopTotal(0);
+            staffHomeShopTotalVo.setAgencyTotal(0);
+            staffHomeShopTotalVo.setDealerTotal(0);
+        }
+        Integer shopTaskCount = 0;
+        if(shopIds!=null&&!shopIds.isEmpty()){
+            shopTaskService.getShopIngTotal(shopIds);
+        }
         staffHomeShopTotalVo.setFollowMember(0);
         staffHomeShopTotalVo.setNewMember(0);
         staffHomeShopTotalVo.setShopTask(shopTaskCount);
@@ -788,11 +863,13 @@
         }
         merHomeShopTotalVo.setShopId(shopId);
         Shop shop = this.getById(shopId);
+        if(shop.getFrozenFlag()==1){
+            String userKey = SecurityUtils.getUserKey();
+            redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY+userKey);
+            throw new ServiceException("商户已被冻结,请联系管理员",401);
+        }
         merHomeShopTotalVo.setShopType(shop.getShopType());
-        merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
-        merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
         MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
-        ShopTotal shopTotal = shopTotalService.getById(shopId);
         merHomeShopTotalVo.setShopId(shopId);
         merHomeShopTotalVo.setShopType(shop.getShopType());
         merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
@@ -800,8 +877,10 @@
         Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
         merHomeShopTotalVo.setTask(taskCount);
         merHomeShopTotalVo.setShopTurnover(orderVo.getShopTurnover());
-        merHomeShopTotalVo.setCycleSurp(shopTotal.getUseableCyclePerson());
-        merHomeShopTotalVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
+        merHomeShopTotalVo.setCycleSurp(orderVo.getCycleSurp());
+        merHomeShopTotalVo.setExplorationSurp(orderVo.getExplorationSurp());
+        merHomeShopTotalVo.setPlatformBirthdayFlag(shop.getPlatformBirthdayFlag());
+        merHomeShopTotalVo.setPlatformCouponFlag(shop.getPlatformCouponFlag());
         return merHomeShopTotalVo;
     }
 
@@ -957,98 +1036,32 @@
      * @return  void
      */
     @Override
-    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto){
+    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) {
         ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
         Shop shop = this.getByShopId(shopAuthentication.getShopId());
-        String applyNumber = IdUtils.simpleUUID();
-        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
-        shopAuthentication.setApplyNumber(applyNumber);
-        shopAuthentication.setAuditStatus(3);
-        shopAuthenticationService.saveOrUpdate(shopAuthentication);
-        //生成提交类
-        SubmitInfo submitInfo = new SubmitInfo();
-        submitInfo.setOut_request_no(applyNumber);
-        if(shopAuthentication.getMainType()==2){
-            submitInfo.setOrganization_type("2");
-        }else{
-            submitInfo.setOrganization_type("4");
-        }
-        //营业执照
-        BusinessLicenseInfo business_license_info = new BusinessLicenseInfo();
-        business_license_info.setBusiness_license_copy(shopAuthentication.getBlImage());
-        business_license_info.setBusiness_license_number(shopAuthentication.getBlNumber());
-        business_license_info.setMerchant_name(shopAuthentication.getBlShopName());
-        business_license_info.setLegal_person(shopAuthentication.getBlCorporateName());
-        business_license_info.setCompany_address(shopAuthentication.getBlRegisteredAddress());
-        business_license_info.setBusiness_time(shopAuthentication.getBlBusinessDeanline());
-        submitInfo.setBusiness_license_info(business_license_info);
-        //法人证件
-        submitInfo.setId_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
-        IdCardInfo id_card_info = new IdCardInfo();
-        id_card_info.setId_card_copy(shopAuthentication.getLpIcFront());
-        id_card_info.setId_card_national(shopAuthentication.getLpIcBack());
-        id_card_info.setId_card_name(shopAuthentication.getLpCorporateName());
-        id_card_info.setId_card_number(shopAuthentication.getLpIdCard());
-        id_card_info.setId_card_valid_time_begin(shopAuthentication.getLpIcStartDate());
-        id_card_info.setId_card_valid_time(shopAuthentication.getLpIcEndDate());
-        submitInfo.setId_card_info(id_card_info);
-        //企业填写
-        if(shopAuthentication.getMainType()==2){
-            //受益人
-            if(shopAuthentication.getOwner()==1){
-                submitInfo.setOwner(true);
-            }else{
-                submitInfo.setOwner(false);
-                List<UboInfo> ubo_info_list = new ArrayList<>();
-                UboInfo uboInfo = new UboInfo();
-                uboInfo.setUbo_id_doc_type("IDENTIFICATION_TYPE_MAINLAND_IDCARD");
-                uboInfo.setUbo_id_doc_copy(shopAuthentication.getUboIcFront());
-                uboInfo.setUbo_id_doc_copy_back(shopAuthentication.getUboIcBack());
-                uboInfo.setUbo_id_doc_name(shopAuthentication.getUboName());
-                uboInfo.setUbo_id_doc_number(shopAuthentication.getUboIdCard());
-                uboInfo.setUbo_id_doc_address(shopAuthentication.getUboIcAddress());
-                uboInfo.setUbo_id_doc_period_begin(shopAuthentication.getUboIcStartDate());
-                uboInfo.setUbo_id_doc_period_end(shopAuthentication.getUboIcEndDate());
-                ubo_info_list.add(uboInfo);
-                submitInfo.setUbo_info_list(ubo_info_list);
-            }
-        }
-        //结算账户信息
-        AccountInfo accountInfo = new AccountInfo();
-        if(shopAuthentication.getSettlementAccountType().equals("1")){
-            accountInfo.setBank_account_type("74");
-        }else{
-            accountInfo.setBank_account_type("75");
-        }
-        accountInfo.setAccount_bank(shopAuthentication.getSaBank());
-        accountInfo.setAccount_name(shopAuthentication.getSaAccountName());
-        accountInfo.setBank_address_code(shopAuthentication.getSaBankCityCode());
-        accountInfo.setBank_name(shopAuthentication.getSaBankName());
-        accountInfo.setAccount_number(shopAuthentication.getSaNumber());
-        submitInfo.setAccount_info(accountInfo);
-        ContactInfo contactInfo = new ContactInfo();
-        contactInfo.setContact_type("65");
-        contactInfo.setContact_name(shopAuthentication.getLpCorporateName());
-        contactInfo.setContact_id_card_number(shopAuthentication.getLpIdCard());
-        contactInfo.setMobile_phone(shopAuthentication.getLpMobilePhone());
-        contactInfo.setContact_email(shopAuthentication.getLpContactEmail());
-        submitInfo.setContact_info(contactInfo);
-        //店铺信息
-        SalesSceneInfo salesSceneInfo = new SalesSceneInfo();
-        salesSceneInfo.setStore_name(shop.getShopName());
-        salesSceneInfo.setStore_url("");
-        salesSceneInfo.setStore_qr_code("");
-        submitInfo.setSales_scene_info(salesSceneInfo);
-        submitInfo.setMerchant_shortname(shop.getShopName());
-        submitInfo.setBusiness_addition_pics(shopAuthentication.getBaPics());
-        submitInfo.setBusiness_addition_desc(shopAuthentication.getBaDesc());
-        //提交审核
-        /*try {
-            WxShopUtils.ApplymentSubMch(submitInfo);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }*/
 
+        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
+            mgtShopAuthDto.setBlBusinessDeanline("长期");
+        }
+        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
+            mgtShopAuthDto.setLpIcEndDate("长期");
+        }
+        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
+        String applyNumber = shopAuthentication.getApplyNumber();
+        if(StringUtils.isBlank(applyNumber)){
+            applyNumber = IdUtils.simpleUUID();
+            shopAuthentication.setApplyNumber(applyNumber);
+        }
+        ApplymentsResult applymentsResult;
+        try {
+            applymentsResult = wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
+        } catch (Exception e) {
+            log.debug("-----"+shop.getShopId()+":进件异常-----");
+            throw new ServiceException(e.getMessage());
+        }
+        shopAuthentication.setAuditStatus(3);
+        shopAuthentication.setApplymentId(applymentsResult.getApplymentId());
+        shopAuthenticationService.saveOrUpdate(shopAuthentication);
     }
 
     /**
@@ -1105,13 +1118,17 @@
             plTotalShopTotalVo.setAreaRankVos(shopAreaRank);
         }
         //获取销售排名
-        List<MgtMapIntTotalVo> shopSalesRank = shopMapper.listShopSalesRank(mgtBasePlatformDto);
+        List<MgtMapBigTotalVo> shopSalesRank = remoteOrderService.shopSalesRank(shopIdList).getData();
         if (shopSalesRank != null && shopSalesRank.size() > 0) {
             String[] shopSalesKey = new String[shopSalesRank.size()];
-            Integer[] shopSalesValue = new Integer[shopSalesRank.size()];
+            BigDecimal[] shopSalesValue = new BigDecimal[shopSalesRank.size()];
             // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组
+            Long shopId;
+            Shop shop;
             for (int i = 0; i < shopSalesRank.size(); i++) {
-                shopSalesKey[i] = shopSalesRank.get(i).getMapKey();
+                shopId = Long.valueOf(shopSalesRank.get(i).getMapKey());
+                shop = this.getByShopId(shopId);
+                shopSalesKey[i] = shop.getShopName();
                 shopSalesValue[i] = shopSalesRank.get(i).getMapValue();
             }
             plTotalShopTotalVo.setShopSalesRankKey(shopSalesKey);
@@ -1168,6 +1185,20 @@
         MgtShopAuthGetVo shopAuthGetVo = new MgtShopAuthGetVo();
         ShopAuthentication shopAuthentication = shopAuthenticationService.getById(authId);
         BeanUtils.copyProperties(shopAuthentication, shopAuthGetVo);
+        if(shopAuthGetVo.getBlBusinessDeanline()!=null){
+            if(shopAuthGetVo.getBlBusinessDeanline().equals("长期")){
+                shopAuthGetVo.setBlBusinessFoeverFlag(1);
+            }else{
+                shopAuthGetVo.setBlBusinessFoeverFlag(0);
+            }
+        }
+        if(shopAuthGetVo.getLpIcEndDate()!=null){
+            if(shopAuthGetVo.getLpIcEndDate().equals("长期")){
+                shopAuthGetVo.setLpIcForeverFlag(1);
+            }else{
+                shopAuthGetVo.setLpIcForeverFlag(0);
+            }
+        }
         return shopAuthGetVo;
     }
 
@@ -1231,11 +1262,11 @@
      * @return  Shop
      */
     @Override
-    public Shop getShopByBelongUserId(Long userId){
+    public List<Shop> getShopByBelongUserId(Long userId){
         LambdaQueryWrapper<Shop> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Shop::getDelFlag,0);
         queryWrapper.eq(Shop::getBelongUserId,userId);
-        return this.getOne(queryWrapper,false);
+        return this.list(queryWrapper);
     }
 
     /**
@@ -1261,14 +1292,19 @@
      */
     @Override
     public StaffShopSimpleTotalVo getStaffSimpleTotal(Long userId){
-        List<Long> userIdList = null;
+        List<Long> userIdList = new ArrayList<>();
         if(remoteSysStaffService.isLeader()){
             userIdList = sysUserService.getUserIdsByDept(userId).getData();
             userIdList.add(userId);
         }else {
             userIdList.add(userId);
         }
-        return shopMapper.getStaffSimpleTotal(userIdList);
+        StaffShopSimpleTotalVo shopTotal = shopMapper.getStaffSimpleTotal(1,userIdList);
+        StaffShopSimpleTotalVo agencyTotal = shopMapper.getStaffSimpleTotal(2,userIdList);
+        shopTotal.setAgencyTotal(agencyTotal.getShopTotal());
+        shopTotal.setOpenAgencyTotal(agencyTotal.getOpenShopTotal());
+        shopTotal.setCloseAgencyTotal(agencyTotal.getCloseAgencyTotal());
+        return shopTotal;
     }
 
     /**
@@ -1302,8 +1338,6 @@
         merHomeShopTotalVo.setShopId(shopId);
         // 通过远程订单服务获取商店总览信息
         MerHomeShopTotalVo orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
-        // 获取商店总计信息
-        ShopTotal shopTotal = shopTotalService.getById(shopId);
         // 获取商店任务计数
         Integer taskCount = memberTaskService.getMemberIngTotal(shopId);
         // 设置员工商店信息对象的属性
@@ -1311,10 +1345,11 @@
         staffShopInfoGetVo.setUnHandleOrder(orderVo.getUnHandleOrder());
         staffShopInfoGetVo.setShopTask(taskCount);
         staffShopInfoGetVo.setShopTurnover(orderVo.getShopTurnover());
-        staffShopInfoGetVo.setCycleSurp(shopTotal.getUseableCyclePerson());
-        staffShopInfoGetVo.setExplorationSurp(shopTotal.getUseableExperiencePerson());
+        staffShopInfoGetVo.setCycleSurp(orderVo.getCycleSurp());
+        staffShopInfoGetVo.setExplorationSurp(orderVo.getExplorationSurp());
         staffShopInfoGetVo.setShopId(shopId);
         staffShopInfoGetVo.setShopName(shop.getShopName());
+        staffShopInfoGetVo.setShopType(shop.getShopType());
         staffShopInfoGetVo.setShopPicture(shopPicture);
         staffShopInfoGetVo.setBusinessStartTime(shop.getBusinessStartTime());
         staffShopInfoGetVo.setBusinessEndTime(shop.getBusinessEndTime());
@@ -1340,8 +1375,8 @@
             if (shopIdList != null && !shopIdList.isEmpty()) {
                 Integer count = remoteMemberService.getAreaNewMember(shopIdList).getData();
                 staffShopInfoGetVo.setNewAreaMember(count);
-                ShopTotal shopTotalAll = shopTotalService.shopsTotalByIds(shopIdList);
-                staffShopInfoGetVo.setAreaTurnover(shopTotalAll.getTotalOrderMoney());
+                AgencyTotalVo agencyTotalVo = remoteOrderService.getAgencyTotalVo(shopIdList).getData();
+                staffShopInfoGetVo.setAreaTurnover(agencyTotalVo.getAreaTurnover());
             }
         }
         // 如果商店的扩展联系方式不为空,则设置员工商店信息对象的扩展联系方式列表
@@ -1392,6 +1427,8 @@
         List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
         if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
             extendContacts = JSON.toJSONString(extendContactsVoList);
+        }else{
+            extendContacts = "";
         }
         shop.setExtendContacts(extendContacts);
         shop.setShopId(staffShopECEditDto.getShopId());
@@ -1416,4 +1453,192 @@
         shop.setUpdateTime(new Date());
         shopMapper.updateShop(shop);
     }
+
+    @Override
+    public void queryEcommerceApplyMentsStatus() {
+        log.info("开始获取微信二级商户待检查列表");
+        List<ShopAuthentication> list = shopAuthenticationService.getShopAuthNeedUpdateStatus();
+        log.info("定时检查微信二级商户"+list.toString());
+        list.forEach(item -> queryApplyStatusByApplymentId(item.getApplymentId(), item.getShopId()));
+    }
+
+    /**
+     * 调用微信接口查询申请审核状态
+     * @param applymentId
+     */
+    private void queryApplyStatusByApplymentId(String applymentId, Long shopId) {
+        try {
+            log.debug("定时检查微信二级商户applymentId"+applymentId);
+            if (StringUtils.isNotBlank(applymentId)) {
+                ApplymentsStatusResult result = wechatPayUtils.queryApplyStatusByApplymentId(applymentId);
+                shopAuthenticationService.updateAuditStatusByApplymentId(applymentId, result);
+                String applymentState = result.getApplymentState();
+                if(WxApplyMentStateEnum.FINISH.getText().equals(applymentState)){
+                    applySuccessUpdateShopStatus(shopId);
+                }
+            }
+        } catch (WxPayException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 商户进件审核完成,更新商户状态
+     * @param shopId
+     */
+    private void applySuccessUpdateShopStatus(Long shopId){
+        // 更新商户状态为正常
+        Shop shop = this.getById(shopId);
+        Integer shopStatus = handelShopStatus(shop.getFrozenFlag(), shop.getCooperativeFlag(), 1,shop.getAccountFlag());
+        LambdaUpdateWrapper<Shop> updateWrapper = Wrappers.lambdaUpdate();
+        updateWrapper.eq(Shop::getShopId, shopId)
+                .set(Shop::getShopStatus, shopStatus)
+                .set(Shop::getAuthFlag, 1);
+        this.update(updateWrapper);
+    }
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/8/10 22:53
+     * @param cityCodes
+     * @return  List<Long>
+     */
+    @Override
+    public List<Long> listShopIdByCityCode(List<String> cityCodes){
+        return shopMapper.listShopIdByCityCode(cityCodes);
+    }
+
+    @Override
+    public void authShop(){
+        ShopAuthentication shopAuthentication = shopAuthenticationService.getById("8c23fa423beb4673a0edc641a1ca0c23");
+        Shop shop = this.getByShopId(shopAuthentication.getShopId());
+        try {
+            wechatPayUtils.ecommerceApply(shopAuthentication,shopAuthentication.getApplyNumber(),shop);
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * @description  修改店铺详细资料
+     * @author  jqs
+     * @date    2023/8/22 14:51
+     * @param staffShopDetailDto
+     * @return  void
+     */
+    @Override
+    public void editShopDetail(StaffShopDetailDto staffShopDetailDto){
+        ShopDetail shopDetail = shopDetailService.getById(staffShopDetailDto.getShopId());
+        if(shopDetail == null){
+            shopDetail = new ShopDetail();
+            shopDetail.setDelFlag(0);
+        }
+        BeanUtils.copyProperties(staffShopDetailDto, shopDetail);
+        List<StaffCustomerDto> staffCustomerDtoList = staffShopDetailDto.getStaffCustomerDtoList();
+        if(staffCustomerDtoList!=null&&!staffCustomerDtoList.isEmpty()){
+            StringJoiner customerNameSJ = new StringJoiner(",");
+            StringJoiner customerMobileSJ = new StringJoiner(",");
+            for(StaffCustomerDto staffCustomerDto : staffCustomerDtoList){
+                customerNameSJ.add(staffCustomerDto.getCustomerName());
+                customerMobileSJ.add(staffCustomerDto.getCustomerMobile());
+            }
+            shopDetail.setCustomerName(customerNameSJ.toString());
+            shopDetail.setCustomerMobile(customerMobileSJ.toString());
+        }
+        shopDetailService.saveOrUpdate(shopDetail);
+    }
+
+    /**
+     * @description  获取店铺详细资料
+     * @author  jqs
+     * @date    2023/8/22 16:15
+     * @param shopId
+     * @return  StaffShopDetailVo
+     */
+    @Override
+    public StaffShopDetailVo getShopDetail(Long shopId){
+        ShopDetail shopDetail = shopDetailService.getById(shopId);
+        StaffShopDetailVo staffShopDetailVo = new StaffShopDetailVo();
+        if(shopDetail!=null){
+            BeanUtils.copyProperties(shopDetail, staffShopDetailVo);
+            //处理联系人
+            String customerName = shopDetail.getCustomerName();
+            String customerMobile = shopDetail.getCustomerMobile();
+            List<StaffCustomerDto> staffCustomerDtoList = new ArrayList<>();
+            String[] customerNameArr = customerName.split(",");
+            String[] customerMobileArr = customerMobile.split(",");
+            staffShopDetailVo.setContactName(customerNameArr[0]);
+            StaffCustomerDto staffCustomerDto;
+            for(int i=0;i<customerNameArr.length;i++){
+                staffCustomerDto = new StaffCustomerDto();
+                staffCustomerDto.setCustomerName(customerNameArr[i]);
+                staffCustomerDto.setCustomerMobile(customerMobileArr[i]);
+                staffCustomerDtoList.add(staffCustomerDto);
+            }
+            staffShopDetailVo.setStaffCustomerDtoList(staffCustomerDtoList);
+        }
+        //归属客户
+        Shop shop = this.getByShopId(shopId);
+        Long belongUserId = shop.getBelongUserId();
+        if(belongUserId!=null){
+            SysUser sysUser = remoteUserService.getSysUser(belongUserId).getData();
+            if(sysUser!=null){
+                staffShopDetailVo.setBelongUser(sysUser.getNickName());
+            }
+        }
+        //最近任务时间
+        ShopTask shopTask = shopTaskService.getLastTask(shopId);
+        if(shopTask!=null){
+            staffShopDetailVo.setNextTaskDate(shopTask.getTaskDate());
+        }
+        staffShopDetailVo.setShopId(shopId);
+        return staffShopDetailVo;
+    }
+
+
+    /**
+     * @description  添加分账方
+     * @author  jqs
+     * @date    2023/8/23 9:44
+     * @param
+     * @return  void
+     */
+    @Override
+    public void addProfitSharingReceiver(MgtShopAuthGetDto mgtShopAuthGetDto){
+        try {
+            ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthGetDto.getAuthId());
+            Shop shop = this.getByShopId(shopAuthentication.getShopId());
+            if(shopAuthentication!=null&&shopAuthentication.getAuditStatus()==6){
+                ProfitSharingReceiverRequest request = new ProfitSharingReceiverRequest();
+                request.setAccount(shopAuthentication.getSubMchid());
+                request.setName(shopAuthentication.getBlShopName());
+                ProfitSharingReceiverResult result = wechatPayUtils.addProfitSharingReceiver(request);
+                if(StringUtils.isNotBlank(result.getAccount())){
+                    shop.setAccountFlag(1);
+                    shop.setShopStatus(handelShopStatus(shop.getFrozenFlag(),shop.getCooperativeFlag(),shop.getAuthFlag(),1));
+                    this.saveOrUpdate(shop);
+                }
+            }
+
+        } catch (WxPayException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/8/29 14:33
+     * @param
+     * @return  List<MgtUserTaskMsgVo>
+     */
+    @Override
+    public List<MgtUserTaskMsgVo> getTaskMsgList(){
+        return shopMapper.getTaskMsgList();
+    }
+
 }

--
Gitblit v1.7.1