bug
jiangqs
2023-08-23 db3c1f464e80458a1b6ccbe31b0355775df8e574
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -8,6 +8,7 @@
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.profitsharingV3.ProfitSharingReceiver;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.exception.ServiceException;
@@ -20,6 +21,7 @@
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;
@@ -28,8 +30,6 @@
import com.ruoyi.shop.service.task.ShopFileService;
import com.ruoyi.shop.service.task.ShopTaskService;
import com.ruoyi.shop.util.WechatPayUtils;
import com.ruoyi.shop.util.WxShopUtils;
import com.ruoyi.shop.util.dto.*;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.config.SysTag;
@@ -125,6 +125,14 @@
    @Resource
    private WechatPayUtils wechatPayUtils;
    @Resource
    private ShopDetailService shopDetailService;
    @Resource
    private RemoteUserService remoteUserService;
    /**
     * 获取商户详情
     *
@@ -173,6 +181,9 @@
        //验证关联账号唯一
        String relUserIds = mgtEditShopDto.getRelUserIds();
        if(StringUtils.isNotBlank(relUserIds)) {
            if(relUserIds.startsWith(",")){
                relUserIds = relUserIds.substring(1);
            }
            String[] relUserIdArray = relUserIds.split(",");
            ShopRelUser shopRelUser;
            Long userId;
@@ -198,9 +209,10 @@
        //验证商户名唯一
        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());
@@ -219,9 +231,10 @@
                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());
@@ -315,7 +328,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();
@@ -350,6 +363,8 @@
        shopAuthentication.setAuthId(authId);
        shopAuthentication.setDelFlag(0);
        shopAuthentication.setShopId(shop.getShopId());
        shopAuthentication.setAuditStatus(0);
        shopAuthentication.setSignState(1);
        shopAuthenticationService.save(shopAuthentication);
        //商户分成信息初始化
        ShopProportion shopProportion = new ShopProportion();
@@ -591,13 +606,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);
@@ -728,6 +749,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());
@@ -766,15 +801,28 @@
            mgtBasePlatformDto.setUserIdList(userIds);
            shopIds = shopMapper.listShopIdByTotal(mgtBasePlatformDto);
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
            if(shop!=null){
                shopIds.add(shop.getShopId());
                userIds.add(userId);
            }
        }else {
            //普通员工查询商户归属的shopId
            Shop shop = this.getShopByBelongUserId(userId);
            shopIds.add(shop.getShopId());
        }
        //分别查询
        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);
@@ -799,9 +847,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 orderVo = remoteOrderService.getMerHomeTotal(merHomeShopTotalVo).getData();
        ShopTotal shopTotal = shopTotalService.getById(shopId);
        merHomeShopTotalVo.setShopId(shopId);
        merHomeShopTotalVo.setShopType(shop.getShopType());
        merHomeShopTotalVo.setTodayShop(orderVo.getTodayShop());
@@ -809,8 +861,8 @@
        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;
@@ -971,12 +1023,28 @@
    public void mgtShopAuth(MgtShopAuthDto mgtShopAuthDto) throws WxPayException {
        ShopAuthentication shopAuthentication = shopAuthenticationService.getById(mgtShopAuthDto.getAuthId());
        Shop shop = this.getByShopId(shopAuthentication.getShopId());
        String applyNumber = IdUtils.simpleUUID();
        if(mgtShopAuthDto.getBlBusinessFoeverFlag()!=null&&mgtShopAuthDto.getBlBusinessFoeverFlag()==1){
            mgtShopAuthDto.setBlBusinessDeanline("长期");
        }
        if(mgtShopAuthDto.getLpIcForeverFlag()!=null&&mgtShopAuthDto.getLpIcForeverFlag()==1){
            mgtShopAuthDto.setLpIcEndDate("长期");
        }
        BeanUtils.copyProperties(mgtShopAuthDto , shopAuthentication);
        shopAuthentication.setApplyNumber(applyNumber);
        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);
        shopAuthenticationService.saveOrUpdate(shopAuthentication);
        wechatPayUtils.ecommerceApply(shopAuthentication,applyNumber,shop);
    }
    /**
@@ -1096,6 +1164,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;
    }
@@ -1196,7 +1278,12 @@
        }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;
    }
    /**
@@ -1320,6 +1407,8 @@
        List<ExtendContactsVo> extendContactsVoList = staffShopECEditDto.getExtendContactsVoList();
        if(extendContactsVoList!=null&&!extendContactsVoList.isEmpty()){
            extendContacts = JSON.toJSONString(extendContactsVoList);
        }else{
            extendContacts = "";
        }
        shop.setExtendContacts(extendContacts);
        shop.setShopId(staffShopECEditDto.getShopId());
@@ -1384,4 +1473,120 @@
                .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());
        }
        return staffShopDetailVo;
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/8/23 9:44
     * @param
     * @return  void
     */
    @Override
    public void addProfitSharingReceiver(ProfitSharingReceiver profitSharingReceiver){
        try {
            ProfitSharingReceiver result = wechatPayUtils.addProfitSharingReceiver(profitSharingReceiver);
        } catch (WxPayException e) {
            throw new RuntimeException(e);
        }
    }
}