mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -16,10 +16,15 @@
import com.github.binarywang.wxpay.service.WxPayService;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.UserStatus;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.ip.IpUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.CodeFactoryUtil;
@@ -60,6 +65,8 @@
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.*;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import com.ruoyi.system.api.service.*;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.extern.log4j.Log4j2;
@@ -156,6 +163,7 @@
    @Value("${wx.pay.callbackPath}")
    private String callbackPath;
    /**
@@ -196,7 +204,7 @@
        String goodsId;
        Integer buyNum;
        BigDecimal buyNumBig;
        String memberCouponId;
        Long memberCouponId;
        Goods goods;
        BigDecimal goodsPrice;
        BigDecimal goodsTotalPrice;
@@ -226,7 +234,7 @@
        BigDecimal orderPayDeposit = new BigDecimal("0.00");
        BigDecimal orderPayMoney = new BigDecimal("0.00");
        // 遍历购买商品列表
        HashSet<String> userCouponIdSet = new HashSet<>();
        HashSet<Long> userCouponIdSet = new HashSet<>();
        for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) {
            appSureOrderGoodsVo = new AppSureOrderGoodsVo();
            discountMoney = BigDecimal.ZERO;
@@ -263,8 +271,11 @@
            goodsTotalPrice = goodsPrice.multiply(buyNumBig);
            goodsRealPrice = goodsTotalPrice;
            // 处理优惠券
            if (StringUtils.isNotBlank(memberCouponId)) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
            if (null != memberCouponId) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId.toString());
                System.err.println(JSON.toJSONString(appMemberCouponVoMap));
                System.err.println(memberCouponId);
                System.err.println(JSON.toJSONString(appMemberCouponVo));
                if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) {
                    couponType = appMemberCouponVo.getCouponType();
                    if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) {
@@ -274,7 +285,7 @@
                            goodsRealPrice = goodsTotalPrice.subtract(discountMoney);
                            useCoupon = 1;
                            userCouponIdSet.add(memberCouponId);
                            appSureOrderGoodsVo.setMemberCouponId(memberCouponId);
                            appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString());
                        }
                    } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) {
                        discountPercent = appMemberCouponVo.getDiscountPercent();
@@ -282,7 +293,7 @@
                        discountMoney = goodsTotalPrice.subtract(goodsRealPrice);
                        useCoupon = 1;
                        userCouponIdSet.add(memberCouponId);
                        appSureOrderGoodsVo.setMemberCouponId(memberCouponId);
                        appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString());
                    } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) {
                        discountMoney = appMemberCouponVo.getDiscountMoney();
                        if (goodsTotalPrice.compareTo(discountMoney) > 0) {
@@ -292,7 +303,7 @@
                            }
                            useCoupon = 1;
                            userCouponIdSet.add(memberCouponId);
                            appSureOrderGoodsVo.setMemberCouponId(memberCouponId);
                            appSureOrderGoodsVo.setMemberCouponId(memberCouponId.toString());
                        }
                    }
                }
@@ -356,58 +367,6 @@
                sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList);
            }
        }
        /*if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) {
            // 获取商品关联优惠券
            appGoodsMemberCouponVoList = new ArrayList<>();
            for(AppSureOrderGoodsVo sureOrderGoodsVo : appSureOrderGoodsVoList){
                for (AppMemberCouponVo entity : appMemberCouponVoList) {
                    if (StringUtils.isBlank(entity.getRelGoodsIds())) {
                        if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) {
                            moneyThreshold = entity.getMoneyThreshold();
                            if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) {
                                if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
                                    appGoodsMemberCouponVoList.add(entity);
                                }else{
                                    if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
                                        appGoodsMemberCouponVoList.add(entity);
                                    }
                                }
                            }
                        }else{
                            if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
                                appGoodsMemberCouponVoList.add(entity);
                            }else{
                                if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
                                    appGoodsMemberCouponVoList.add(entity);
                                }
                            }
                        }
                    } else if (entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())) {
                        if (entity.getCouponType() == 1 && entity.getMoneyThreshold() != null && entity.getDiscountMoney() != null) {
                            moneyThreshold = entity.getMoneyThreshold();
                            if (sureOrderGoodsVo.getGoodsTotalPrice().compareTo(moneyThreshold) >= 0) {
                                if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
                                    appGoodsMemberCouponVoList.add(entity);
                                }else{
                                    if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
                                        appGoodsMemberCouponVoList.add(entity);
                                    }
                                }
                            }
                        }else{
                            if(userCouponIdSet==null||!userCouponIdSet.contains(entity.getMemberCouponId())){
                                appGoodsMemberCouponVoList.add(entity);
                            }else{
                                if(sureOrderGoodsVo.getMemberCouponId()!=null&&sureOrderGoodsVo.getMemberCouponId().equals(entity.getMemberCouponId())){
                                    appGoodsMemberCouponVoList.add(entity);
                                }
                            }
                        }
                    }
                }
                sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList);
            }
        }*/
        // 设置订单相关金额
        appSureOrderVo.setOrderGoodsMoney(orderGoodsMoney);
        appSureOrderVo.setCouponDiscount(couponDiscount);
@@ -559,7 +518,7 @@
        BigDecimal buyNumBig;
        Integer serviceNum;
        Integer goodsNum = 0;
        String memberCouponId;
        Long memberCouponId;
        Goods goods = null;
        GoodsFile goodsFile;
        BigDecimal goodsPrice;
@@ -636,7 +595,10 @@
            goodsRealPrice = goodsTotalPrice;
            // 如果使用了优惠券,计算优惠后的价格
            if (memberCouponId != null) {
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId.toString());
                if(null == appMemberCouponVo){
                    throw new ServiceException("优惠券已使用");
                }
                // 如果优惠券适用于该商品
                if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) {
                    couponType = appMemberCouponVo.getCouponType();
@@ -663,7 +625,7 @@
                        discountMoney = goodsTotalPrice;
                    }
                }
                memberCouponSJ.add(memberCouponId);
                memberCouponSJ.add(memberCouponId + "");
            }
            appSureOrderGoodsVo.setUseCoupon(useCoupon);
            appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice);
@@ -1613,7 +1575,64 @@
     */
    @Override
    public MerHomeShopTotalVo getMerHomeTotal(MerHomeShopTotalVo merHomeShopTotalVo) {
        Long shopId = merHomeShopTotalVo.getShopId();
        // 查询用户信息
        QwUserDetailDto qwUserDetail = new QwUserDetailDto();
        Long userId = SecurityUtils.getUserId();
        qwUserDetail.setUserid(userId.toString());
        // 查询用户信息
        R<QwH5LoginVo> userResult = remoteShopService.qwH5Login(qwUserDetail);
        if(userResult==null){
            throw new ServiceException(AppErrorConstant.USER_NO_SHOP);
        }
        if (R.FAIL == userResult.getCode())
        {
            throw new ServiceException(userResult.getMsg());
        }
        if (401 == userResult.getCode())
        {
            throw new ServiceException("商户已被冻结,请联系管理员",401);
        }
        QwH5LoginVo userInfo = userResult.getData();
        SysUser user = userInfo.getSysUser();
        String username = user.getUserName();
        // IP黑名单校验
        String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
        if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
        {
            throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
        }
        if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
        {
            throw new ServiceException("对不起,您的账号:" + username + " 已被删除");
        }
        if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
        {
            throw new ServiceException("对不起,您的账号:" + username + " 已停用");
        }
        // 查询用户商户
        R<ShopRelUserVo> shopResult = remoteShopService.getShopByUserId(user.getUserId());
        if (R.FAIL == userResult.getCode()) {
            throw new ServiceException(userResult.getMsg());
        }
        ShopRelUserVo shopInfo = shopResult.getData();
        if(null == shopInfo){
            throw new ServiceException("未查询到商户信息");
        }
        Long shopId = shopInfo.getShopId();
        Shop shop = remoteShopService.getShop(shopId).getData();
        if(-1 == shop.getShopStatus()){
            throw new ServiceException("对应商户已删除,请联系管理员");
        }
        if(0 == shop.getShopStatus()){
            throw new ServiceException("对应商户已冻结,请联系管理员");
        }
        if(2 == shop.getShopStatus()){
            throw new ServiceException("对应商户已终止合作,请联系管理员");
        }
        shopId = merHomeShopTotalVo.getShopId();
        //获取今日到店
        Integer todayShop = userServiceRecordService.countShopServicePerson(shopId);
        //获取待处理订单和营业额
@@ -1829,53 +1848,6 @@
                    throw new ServiceException(AppErrorConstant.SHOP_NO_ACTIVITY);
                }
            }
            //未绑定用户需判断核销商城订单判断商品单价和优惠券
            /*StringJoiner goodsIdSJ = new StringJoiner(",");
            for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
                goodsIdSJ.add(appUserOrderGoodsPageVo.getGoodsId());
            }
            //获取商品列表
            List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIdSJ.toString()).getData();
            Map<String, Goods> goodsMap = goodsList.stream()
                    .collect(Collectors.toMap(Goods::getGoodsId, Function.identity()));
            Goods goods;
            ShopGoods shopGoods;
            AppShopGoodsGetDto appShopGoodsGetDto;
            for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) {
                appShopGoodsGetDto= new AppShopGoodsGetDto();
                appShopGoodsGetDto.setShopId(shopId);
                appShopGoodsGetDto.setGoodsId(appUserOrderGoodsPageVo.getGoodsId());
                shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
                goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId());
                //当商户定制价格不为空时判断商品定制价格否则判断商品价格是否一致
                if(shopGoods!=null){
                    if(shopGoods.getSalesPrice().compareTo(appUserOrderGoodsPageVo.getGoodsPrice())!=0){
                        throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                    }
                    if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
                        if(shopGoods.getServiceNum()!=null){
                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                        }
                    }else{
                        if(shopGoods.getServiceNum()!=appUserOrderGoodsPageVo.getServiceNum()){
                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                        }
                    }
                }else{
                    if(goods.getSalesPrice().compareTo(appUserOrderGoodsPageVo.getGoodsPrice())!=0){
                        throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                    }
                    if(appUserOrderGoodsPageVo.getCycleNumFlag()==0){
                        if(goods.getServiceNum()!=null){
                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                        }
                    }else{
                        if(goods.getServiceNum()!=appUserOrderGoodsPageVo.getServiceNum()){
                            throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                        }
                    }
                }
            }*/
        }
        order.setShopId(shopId);
        order.setOrderStatus(3);
@@ -2284,7 +2256,11 @@
    @Transactional
    @GlobalTransactional(rollbackFor = Exception.class)
    public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) {
        MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData();
        R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId());
        if(verifyCoupon.getCode() != 200){
            throw new ServiceException(verifyCoupon.getMsg());
        }
        MerVerifyCouponGetVo verifyCouponGetVo = verifyCoupon.getData();
        MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon();
        ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyCouponDto.getUserId()).getData();
        Long userId = verifyCouponGetVo.getUserId();
@@ -2638,7 +2614,7 @@
        BigDecimal buyNumBig;
        Integer serviceNum;
        Integer goodsNum = 0;
        String memberCouponId;
        Long memberCouponId;
        Goods goods;
        BigDecimal goodsPrice;
        BigDecimal goodsTotalPrice;
@@ -2715,7 +2691,7 @@
                        goodsRealPrice = BigDecimal.ZERO;
                        discountMoney = goodsTotalPrice.subtract(goodsRealPrice);
                    }
                    memberCouponSJ.add(memberCouponId);
                    memberCouponSJ.add(memberCouponId + ",");
                }
            }
            goodsDeposit = goods.getSubscription();
@@ -3076,6 +3052,24 @@
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        //数据权限
        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userId);
        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        if (!shops.isEmpty()) {
            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
            String shopIds = mgtShopOrderPageDto.getShopIds();
            if(StringUtils.isNotEmpty(shopIds)){
                shopIds = shopIds + "," + join;
            }else{
                shopIds = join;
            }
            mgtShopOrderPageDto.setShopIds(shopIds);
        }
        // 从数据库中获取活动订单列表
        List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto);
        // 如果列表不为空
@@ -3155,6 +3149,22 @@
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        //数据权限
        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userId);
        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        if (!shops.isEmpty()) {
            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
            String shopIds = mgtShopOrderPageDto.getShopIds();
            if(StringUtils.isNotEmpty(shopIds)){
                shopIds = shopIds + "," + join;
            }else{
                shopIds = join;
            }
            mgtShopOrderPageDto.setShopIds(shopIds);
        }
        MgtOrderTotal mgtOrderTotal = new MgtOrderTotal();
        MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(mgtShopOrderPageDto);
        MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto);
@@ -3201,6 +3211,22 @@
            if (StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())) {
                mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        //数据权限
        List<Long> userId = remoteUserService.getScopeOfAuthorityUserId();
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userId);
        List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        if (!shops.isEmpty()) {
            List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList());
            String join = collect.stream().map(Object::toString).collect(Collectors.joining(","));
            String shopIds = mgtShopOrderPageDto.getShopIds();
            if(StringUtils.isNotEmpty(shopIds)){
                shopIds = shopIds + "," + join;
            }else{
                shopIds = join;
            }
            mgtShopOrderPageDto.setShopIds(shopIds);
        }
        List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto);
        // 如果列表不为空
@@ -3362,9 +3388,13 @@
     * @date 2023/6/18 17:20
     */
    @Override
    public MgtBulletinBoardVo boardOrderTotal() {
        MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal();
        Integer activityUserTotal = orderMapper.activityUserTotal();
    public MgtBulletinBoardVo boardOrderTotal(List<Long> userIds) {
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userIds);
        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
        MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(collect);
        Integer activityUserTotal = orderMapper.activityUserTotal(collect);
        mgtBulletinBoardVo.setActivityUserTotal(activityUserTotal);
        return mgtBulletinBoardVo;
    }
@@ -3863,7 +3893,7 @@
                userIdList.add(mgtBasePlatformDto.getUserId());
            } else {
                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                userIdList = mgtUserIdByDept.getUserIdList();
            }
@@ -3871,6 +3901,19 @@
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }
        //数据权限
        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
        if(null != userIds){
            List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
            if(null != userIdList){
                userIdList.addAll(userIds);
            }else{
                userIdList = userIds;
            }
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        List<Long> shopIdList = new ArrayList<>();
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList.add(mgtBasePlatformDto.getShopId());
@@ -3883,8 +3926,10 @@
        MgtSimpleShopVo simpleShopVo;
        HashSet<String> set = new HashSet<>();
        // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
        for (Long entity : shopIdList) {
            set.add(entity.toString());
        if(null != shopIdList){
            for (Long entity : shopIdList) {
                set.add(entity.toString());
            }
        }
        String joinedString = String.join(",", set);
        MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
@@ -3924,54 +3969,27 @@
            List<Long> userIdList = new ArrayList<>();
            if (mgtBasePlatformDto.getUserId() != null) {
                userIdList.add(mgtBasePlatformDto.getUserId());
            }
            else {
                // 如果当前登陆人的可视权限是仅个人 只选择了部门也只能看自己的数据
                SysUser sysUser = SecurityUtils.getSysUser();
                if (sysUser.getDataScope().equals("5")){
                    userIdList.add(sysUser.getUserId());
                }else{
                    MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
                    mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getDeptId());
                    mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                    userIdList = mgtUserIdByDept.getUserIdList();
                }
            } else {
                List<SysUser> data = remoteUserService.getUsersByDeptId(mgtBasePlatformDto.getDeptId()).getData();
                userIdList.addAll(data.stream().map(SysUser::getUserId).collect(Collectors.toList()));
            }
            if (!userIdList.isEmpty()) {
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }else{
            // 没有选择筛选部门和员工 获取当前登陆人的可视权限
            SysUser sysUser = SecurityUtils.getSysUser();
            // 如果当前登陆人是查看个人数据
            Long userId1  = null;
            // 如果当前登陆人权限是查看部门数据
            List<Long> userList = new ArrayList<>();
            if (sysUser!=null){
                String dataScope = sysUser.getDataScope();
                if (!sysUser.getUserName().equals("admin")){
                    if (org.springframework.util.StringUtils.hasLength(dataScope)){
                        switch (dataScope){
                            case "3":
                                // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
                                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
                                mgtUserIdByDept.setDeptId(sysUser.getDeptId());
                                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                                userList = mgtUserIdByDept.getUserIdList();
                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
                                mgtBasePlatformDto.setUserIdList(userList);
                            case "5":
                                // 仅个人数据 查询当前登陆人关联店铺下的用户
                                userId1 = sysUser.getUserId();
                                userList.add(userId1);
                                mgtBasePlatformDto.setDeptId(sysUser.getDeptId());
                                mgtBasePlatformDto.setUserIdList(userList);
                                break;
                        }
                    }
                }
            }
        }
        //数据权限
        List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
        if(null != userIds){
            if(null != userIdList){
                userIdList.addAll(userIds);
            }else{
                userIdList = userIds;
            }
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        MgtTotalOrderTotalVo mgtTotalOrderTotalVo = new MgtTotalOrderTotalVo();
        mgtTotalOrderTotalVo.setOrderTotal(0);
        mgtTotalOrderTotalVo.setOnlineTotal(0);
@@ -4200,6 +4218,18 @@
        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
            return totalActivityTotalVo;
        }
        //数据权限
        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
        if(null != userIds){
            List<Long> userIdList = mgtBasePlatformDto.getUserIdList();
            if(null == userIdList){
                userIdList = new ArrayList<>();
            }
            userIdList.addAll(userIds);
            mgtBasePlatformDto.setUserIdList(userIdList);
        }
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
            if(shopIdList==null||shopIdList.isEmpty()){
@@ -4211,6 +4241,7 @@
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        //获取基础统计
        MgtPlTotalActivityTotalVo mgtTotalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
        totalActivityTotalVo.setOrderTotal(mgtTotalActivityTotalVo.getOrderTotal());
@@ -4317,8 +4348,10 @@
        }
        HashSet<String> set = new HashSet<>();
        // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中
        for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
            set.add(shopId.toString());
        if(null != mgtBasePlatformDto.getShopIdList()){
            for (Long shopId : mgtBasePlatformDto.getShopIdList()) {
                set.add(shopId.toString());
            }
        }
        // 将set中的shopId转换为逗号分隔的字符串
        String joinedString = String.join(",", set);
@@ -4387,52 +4420,6 @@
            totalActivityTotalVo.setOrderTotalValue(orderTotalValue);
            totalActivityTotalVo.setOrderMoneyValue(orderMoneyValue);
        }
        //参与人数  2023-09-06 另开接口
        /*List<MgtMapIntTotalVo> joinList = orderMapper.getMgtActivityMemberTotal(mgtBasePlatformDto);
        // 将查询结果转为Map
        Map<String, Integer> mgtMapIntTotalVoMap = new HashMap<>();
        if (joinList != null && !joinList.isEmpty()) {
            mgtMapIntTotalVoMap = joinList.stream()
                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
        }
        // 获取日期范围
        List<String> dateList = getDateRange(mgtBasePlatformDto.getStartDate(), mgtBasePlatformDto.getEndDate());
        int size = dateList.size();
        // 创建日期和成员总数的数组
        String[] joinMemberTotalKey = new String[size];
        Integer[] joinMemberTotalValue = new Integer[size];
        // 遍历日期列表,设置日期和成员总数的数组
        String str;
        Integer value;
        for (int i = 0; i < size; i++) {
            str = dateList.get(i);
            joinMemberTotalKey[i] = str;
            value = mgtMapIntTotalVoMap.get(str);
            joinMemberTotalValue[i] = (value != null) ? value : 0;
        }
        totalActivityTotalVo.setJoinMemberTotalKey(joinMemberTotalKey);
        totalActivityTotalVo.setJoinMemberTotalValue(joinMemberTotalValue);
        //获客人数
        List<MgtMapIntTotalVo> getList = orderMapper.getMgtActivityGetMemberTotal(mgtBasePlatformDto);
        // 将查询结果转为Map
        Map<String, Integer> getMemberMap = new HashMap<>();
        if (getList != null && !getList.isEmpty()) {
            getMemberMap = getList.stream()
                    .collect(Collectors.toMap(MgtMapIntTotalVo::getMapKey, MgtMapIntTotalVo::getMapValue));
        }
        // 创建日期和成员总数的数组
        String[] getMemberTotalKey = new String[size];
        Integer[] getMemberTotalValue = new Integer[size];
        // 遍历日期列表,设置日期和成员总数的数组
        for (int i = 0; i < size; i++) {
            str = dateList.get(i);
            getMemberTotalKey[i] = str;
            value = getMemberMap.get(str);
            getMemberTotalValue[i] = (value != null) ? value : 0;
        }
        totalActivityTotalVo.setGetMemberTotalKey(getMemberTotalKey);
        totalActivityTotalVo.setGetMemberTotalValue(getMemberTotalValue);*/
        return totalActivityTotalVo;
    }
@@ -4448,24 +4435,6 @@
        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
            return totalActivityTotalVo;
        }
        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
            return new MgtPlTotalActivityTotalVo();
        }*/
        //获取需要关联的用户id集合
        /*if (mgtBasePlatformDto.getDeptId() != null) {
            List<Long> userIdList = new ArrayList<>();
            if (mgtBasePlatformDto.getUserId() != null) {
                userIdList.add(mgtBasePlatformDto.getUserId());
            } else {
                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                userIdList = mgtUserIdByDept.getUserIdList();
            }
            if (!userIdList.isEmpty()) {
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }*/
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        log.info("shopIdList1-----"+shopIdList.toString());
@@ -4480,6 +4449,17 @@
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userIds);
        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
        if(null != shopIdList){
            shopIdList.addAll(collect);
        }else{
            shopIdList = collect;
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        if(mgtBasePlatformDto.getAgeType()!=null){
@@ -4533,24 +4513,6 @@
        if(mgtBasePlatformDto.getActivityFrom()!=null&&mgtBasePlatformDto.getActivityFrom()==2){
            return totalActivityTotalVo;
        }
        /*if(mgtBasePlatformDto.getActivityType()!=null&&mgtBasePlatformDto.getActivityType()!=1){
            return new MgtPlTotalActivityTotalVo();
        }*/
        //获取需要关联的用户id集合
        /*if (mgtBasePlatformDto.getDeptId() != null) {
            List<Long> userIdList = new ArrayList<>();
            if (mgtBasePlatformDto.getUserId() != null) {
                userIdList.add(mgtBasePlatformDto.getUserId());
            } else {
                MgtUserIdByDept mgtUserIdByDept = new MgtUserIdByDept();
                mgtUserIdByDept.setDeptId(mgtBasePlatformDto.getUserId());
                mgtUserIdByDept = remoteConfigService.getUserIdByDept(mgtUserIdByDept).getData();
                userIdList = mgtUserIdByDept.getUserIdList();
            }
            if (!userIdList.isEmpty()) {
                mgtBasePlatformDto.setUserIdList(userIdList);
            }
        }*/
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) {
            if(shopIdList==null||shopIdList.isEmpty()){
@@ -4560,6 +4522,17 @@
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        //数据权限
        List<Long> userIds = remoteUserService.getScopeOfAuthorityUserId();
        BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
        boardMemberTotalDto.setUserIds(userIds);
        List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
        List<Long> collect = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
        if(null != shopIdList){
            shopIdList.addAll(collect);
        }else{
            shopIdList = collect;
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        if(mgtBasePlatformDto.getAgeType()!=null){
@@ -4649,7 +4622,11 @@
        // 创建MerVerifyCouponVo对象
        MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo();
        // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象
        MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData();
        R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(Long.valueOf(verifyCode));
        if(verifyCoupon.getCode() != 200){
            throw new ServiceException(verifyCoupon.getMsg());
        }
        MerVerifyCouponGetVo verifyCouponGetVo = verifyCoupon.getData();
        MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon();
        // 检查优惠券状态
        int couponStatus = memberCoupon.getCouponStatus();
@@ -5267,7 +5244,6 @@
    @GlobalTransactional(rollbackFor = Exception.class)
    public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
        log.info("订单支付回调---"+transaction.toString());
        // Order order = this.getById(orderId);
        // 更新订单状态 outTradeNo
        String outTradeNo = transaction.getOutTradeNo();
        Order order = this.getByOutTradeNo(outTradeNo);
@@ -5325,31 +5301,9 @@
        }
        //更新商品统计
        remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
        // 更新商户统计信息
        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setShopId(order.getShopId());
        shopTotalChangeDto.setOrderType(1);
        shopTotalChangeDto.setCycleMoney(cycleMoney);
        shopTotalChangeDto.setServiceMoney(serviceMoney);
        shopTotalChangeDto.setExperienceMoney(experienceMoney);
        shopTotalChangeDto.setGoodsMoney(goodsMoney);
        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
        // 初始化会员统计信息
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
        memberTotalChangeDto.setUserId(order.getUserId());
        // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分
        /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) {
            Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL);
            BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue);
            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney()).setScale(0,BigDecimal.ROUND_HALF_UP);
            Integer integral = Integer.valueOf(integralBig.toString());
            if(integral>0){
                memberTotalChangeDto.setChangeIntegral(integral);
                memberTotalChangeDto.setTypeIntegral(1);
                memberTotalChangeDto.setOrderId(orderId);
                memberTotalChangeDto.setOrderNo(order.getOrderNo());
            }
        }*/
        // 设置会员支付金额和支付时间
        memberTotalChangeDto.setPayMoney(order.getPayMoney());
        memberTotalChangeDto.setPayTime(new Date());
@@ -5539,27 +5493,9 @@
                remoteCouponService.backMemberCoupon(memberCouponSJ.toString());
            }
        }
        // 更新商户统计信息
        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setOrderType(2);
        shopTotalChangeDto.setShopId(order.getShopId());
        shopTotalChangeDto.setCycleMoney(cycleMoney);
        shopTotalChangeDto.setServiceMoney(serviceMoney);
        shopTotalChangeDto.setExperienceMoney(experienceMoney);
        shopTotalChangeDto.setGoodsMoney(goodsMoney);
        remoteShopService.changeShopTotal(shopTotalChangeDto);*/
        // 初始化会员统计信息
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
        memberTotalChangeDto.setUserId(order.getUserId());
        // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分
        /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) {
            Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL);
            BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue);
            BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney());
            Integer integral = Integer.valueOf(integralBig.toString());
            memberTotalChangeDto.setChangeIntegral(integral);
            memberTotalChangeDto.setTypeIntegral(2);
        }*/
        // 设置会员支付金额和支付时间
        memberTotalChangeDto.setPayMoney(order.getPayMoney().negate());
        // 根据商品存在状态,设置会员统计信息