Pu Zhibing
2025-01-04 c542c56572ea8936301a6bdc736e23b846c8c006
修改保级功能bug
18个文件已修改
199 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/VerifiableShopVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/TaskUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/SeckillActivityVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserClientFallbackFactory.java
@@ -104,6 +104,11 @@
            public void vipUpgrade(Long appUserId) {
                R.fail("检查会员等级变更失败:" + cause.getMessage());
            }
            @Override
            public void demotionDetection() {
                R.fail("用户降级检测失败:" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -90,4 +90,11 @@
     */
    @PostMapping("/app-user/vipUpgrade")
    void vipUpgrade(@RequestParam("appUserId") Long appUserId);
    /**
     * 用户降级检测
     */
    @PostMapping("/app-user/demotionDetection")
    void demotionDetection();
}
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -228,6 +228,10 @@
    @TableField("available_point")
    private Integer availablePoint;
    @ApiModelProperty(value = "可用总积分数")
    @TableField("total_available_point")
    private Integer totalAvailablePoint;
    @ApiModelProperty(value = "可转增积分")
    @TableField("transferable_point")
    private Integer transferablePoint;
@@ -307,7 +311,7 @@
    @TableField(exist = false)
    private Set<Integer> shopIds;
    @ApiModelProperty(value = "降级预警")
    @ApiModelProperty(value = "降级预警(0=否,1=是)")
    @TableField("is_danger")
    private Integer isDanger;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/VerifiableShopVo.java
@@ -17,4 +17,9 @@
    private String name;
    @ApiModelProperty("距离")
    private Long distance;
    @ApiModelProperty("地址")
    private String address;
    @ApiModelProperty("图片")
    private String homePicture;
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopPoint.java
@@ -40,9 +40,9 @@
    @TableField("shop_id")
    private Integer shopId;
    @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣,4=门店服务返佣)")
    @ApiModelProperty(value = "变动类型(1=门店业绩,2=门店返佣,3=下级门店返佣)")
    @TableField("type")
    @Excel(name = "变动类型", readConverterExp = "1=门店业绩,2=门店返佣,3=下级门店返佣,4=门店服务返佣")
    @Excel(name = "变动类型", readConverterExp = "1=门店服务返佣,2=门店返佣,3=下级门店返佣")
    private Integer type;
    @ApiModelProperty(value = "历史余额")
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -751,5 +751,14 @@
    public void vipUpgrade(@RequestParam("appUserId") Long appUserId){
        appUserService.vipUpgrade(appUserId);
    }
    /**
     * 用户降级检测
     */
    @PostMapping("/demotionDetection")
    public void demotionDetection(){
        appUserService.demotionDetection();
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShareController.java
@@ -71,6 +71,7 @@
                appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint);
                appUser.setLavePoint(appUser.getLavePoint() + everySharePoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + everySharePoint1);
                appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + everySharePoint1);
                if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
                    appUser.setTransferablePoint(appUser.getTransferablePoint() + everySharePoint1);
                }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserSignRecordController.java
@@ -79,6 +79,7 @@
                appUser.setTotalPoint(appUser.getTotalPoint() + signPoint);
                appUser.setLavePoint(appUser.getLavePoint() + signPoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + signPoint1);
                appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + signPoint1);
                if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
                    appUser.setTransferablePoint(appUser.getTransferablePoint() + signPoint1);
                }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
@@ -89,4 +89,10 @@
     * @param appUserId
     */
    void vipUpgrade(Long appUserId);
    /**
     * 降级检测
     */
    void demotionDetection();
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -330,6 +330,7 @@
                }
                appUser.setLavePoint(regisPoint);
                appUser.setAvailablePoint(regisPoint1);
                appUser.setTotalAvailablePoint(regisPoint1);
                if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
                    appUser.setTransferablePoint(regisPoint1);
                }
@@ -379,6 +380,7 @@
                }
                appUser2.setLavePoint(appUser2.getLavePoint() + newPoint);
                appUser2.setAvailablePoint(appUser2.getAvailablePoint() + newPoint1);
                appUser2.setTotalAvailablePoint(appUser2.getTotalAvailablePoint() + newPoint1);
                if(null != pointSetting && 1 == pointSetting.getGetNewPointGift()){
                    appUser2.setTransferablePoint(appUser2.getTransferablePoint() + newPoint1);
                }
@@ -402,6 +404,7 @@
                    AppUser appUser3 = this.getById(appUser2.getInviteUserId());
                    appUser3.setLavePoint(appUser3.getLavePoint() + newPoint);
                    appUser3.setAvailablePoint(appUser3.getAvailablePoint() + newPoint1);
                    appUser3.setTotalAvailablePoint(appUser3.getTotalAvailablePoint() + newPoint1);
                    if(null != pointSetting && 1 == pointSetting.getGetRegisPointGift()){
                        appUser3.setTransferablePoint(appUser3.getTransferablePoint() + newPoint1);
                    }
@@ -755,6 +758,7 @@
                    appUser.setTotalPoint(appUser.getTotalPoint() + hourPoint);
                    appUser.setLavePoint(appUser.getLavePoint() + hourPoint);
                    appUser.setAvailablePoint(appUser.getAvailablePoint() + hourPoint1);
                    appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + hourPoint1);
                    if(null != pointSetting && 1 == pointSetting.getWorkPointGift()){
                        appUser.setTransferablePoint(appUser.getTransferablePoint() + hourPoint1);
                    }
@@ -796,4 +800,110 @@
        return appUserMapper.getAppuserPage1(new Page<>(pageNum, pageSize), appUser,objectId,userIds);
    }
    /**
     * 降级检测
     */
    @Override
    public void demotionDetection() {
        //代理
        List<AppUser> appUserList = new ArrayList<>();
        VipSetting vipSetting = vipSettingClient.getVipSetting(5).getData();
        List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 5).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
            }
        }
        if(appUserList.size() > 0){
            this.updateBatchById(appUserList);
        }
        //总代
        appUserList = new ArrayList<>();
        vipSetting = vipSettingClient.getVipSetting(6).getData();
        list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 6).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
            }
        }
        if(appUserList.size() > 0){
            this.updateBatchById(appUserList);
        }
        //合伙人
        appUserList = new ArrayList<>();
        vipSetting = vipSettingClient.getVipSetting(7).getData();
        list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getVipId, 7).eq(AppUser::getStatus, 1).eq(AppUser::getDelFlag, 0).eq(AppUser::getIsDanger, 0));
        for (AppUser appUser : list) {
            //消费积分
            List<UserPoint> list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 1).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepBuyDay() + " DAY) >= create_time"));
            int sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepBuyPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //返佣积分
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 2).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShareDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepSharePoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
                continue;
            }
            //门店业绩
            list1 = userPointService.list(new LambdaQueryWrapper<UserPoint>().eq(UserPoint::getAppUserId, appUser.getId()).eq(UserPoint::getType, 8).last(" and SUBDATE(now(), INTERVAL " + vipSetting.getKeepShopDay() + " DAY) >= create_time"));
            sum = list1.stream().mapToInt(UserPoint::getVariablePoint).sum();
            if(sum < vipSetting.getKeepShopPoint()){
                appUser.setIsDanger(1);
                appUserList.add(appUser);
            }
        }
        if(appUserList.size() > 0){
            this.updateBatchById(appUserList);
        }
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
@@ -39,7 +39,6 @@
    /**
     * 获取支付页面的优惠券列表数据
     * @param userId
     * @param orderMoney
     * @return
     */
    @Override
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/TaskUtil.java
@@ -30,6 +30,8 @@
    public void sendVipCoupon(){
        //解绑推广人
        appUserService.unbindThePromoter();
        //降级检测
        appUserService.demotionDetection();
    }
    /**
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -162,6 +162,7 @@
                    inviteUser.setSharePoint(inviteUser.getSharePoint() + ztsj_point);
                    inviteUser.setLavePoint(inviteUser.getLavePoint() + ztsj_point);
                    inviteUser.setAvailablePoint(inviteUser.getAvailablePoint() + earnPoint1);
                    inviteUser.setTotalAvailablePoint(inviteUser.getTotalAvailablePoint() + earnPoint1);
                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
                        inviteUser.setTransferablePoint(inviteUser.getTransferablePoint() + earnPoint1);
                    }
@@ -217,6 +218,7 @@
                    superiorLeader.setSharePoint(superiorLeader.getSharePoint() + zbsj_point);
                    superiorLeader.setLavePoint(superiorLeader.getLavePoint() + zbsj_point);
                    superiorLeader.setAvailablePoint(superiorLeader.getAvailablePoint() + earnPoint1);
                    superiorLeader.setTotalAvailablePoint(superiorLeader.getTotalAvailablePoint() + earnPoint1);
                    if(null != pointSetting && 1 == pointSetting.getSharePointGift()){
                        superiorLeader.setTransferablePoint(superiorLeader.getTransferablePoint() + earnPoint1);
                    }
@@ -276,6 +278,7 @@
                    }
                    shopAppUser.setLavePoint(shopAppUser.getLavePoint() + hxmd_point);
                    shopAppUser.setAvailablePoint(shopAppUser.getAvailablePoint() + earnPoint1);
                    shopAppUser.setTotalAvailablePoint(shopAppUser.getTotalAvailablePoint() + earnPoint1);
                    if(null != pointSetting && 1 == pointSetting.getShopPointGift()){
                        shopAppUser.setTransferablePoint(shopAppUser.getTransferablePoint() + earnPoint1);
                    }
@@ -321,7 +324,7 @@
                if(!shop.getLavePoint().equals(shopLavePoint)){
                    ShopPoint shopPoint = new ShopPoint();
                    shopPoint.setShopId(shop.getId());
                    shopPoint.setType(4);
                    shopPoint.setType(1);
                    shopPoint.setHistoricalPoint(shopLavePoint);
                    shopPoint.setVariablePoint(hxmd_point);
                    shopPoint.setBalance(shop.getLavePoint());
@@ -348,6 +351,7 @@
                        }
                        technicianAppUser.setLavePoint(technicianAppUser.getLavePoint() + js_point);
                        technicianAppUser.setAvailablePoint(technicianAppUser.getAvailablePoint() + earnPoint1);
                        technicianAppUser.setTotalAvailablePoint(technicianAppUser.getTotalAvailablePoint() + earnPoint1);
                        if(null != pointSetting && 1 == pointSetting.getPersonPointGift()){
                            technicianAppUser.setTransferablePoint(technicianAppUser.getTransferablePoint() + earnPoint1);
                        }
@@ -397,6 +401,7 @@
                        }
                        bdShopAppUser.setLavePoint(bdShopAppUser.getLavePoint() + bdmd_point);
                        bdShopAppUser.setAvailablePoint(bdShopAppUser.getAvailablePoint() + earnPoint1);
                        bdShopAppUser.setTotalAvailablePoint(bdShopAppUser.getTotalAvailablePoint() + earnPoint1);
                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
                            bdShopAppUser.setTransferablePoint(bdShopAppUser.getTransferablePoint() + earnPoint1);
                        }
@@ -480,6 +485,7 @@
                        }
                        sjShopAppUser.setLavePoint(sjShopAppUser.getLavePoint() + bdmdsj_point);
                        sjShopAppUser.setAvailablePoint(sjShopAppUser.getAvailablePoint() + earnPoint1);
                        sjShopAppUser.setTotalAvailablePoint(sjShopAppUser.getTotalAvailablePoint() + earnPoint1);
                        if(null != pointSetting && 1 == pointSetting.getShopSharePointGift()){
                            sjShopAppUser.setTransferablePoint(sjShopAppUser.getTransferablePoint() + earnPoint1);
                        }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -937,6 +937,7 @@
                appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
                appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
                appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
                appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
                if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
                    appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
                }
@@ -1009,6 +1010,7 @@
            appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
            appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
            if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
                appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
            }
@@ -1141,6 +1143,7 @@
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
            appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
            appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
            
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
@@ -1203,6 +1206,7 @@
        appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
        appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
        appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
        appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
        appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
        appUser.setLastShopTime(LocalDateTime.now());
        appUserClient.editAppUserById(appUser);
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -12,9 +12,13 @@
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.vo.VerifiableShopVo;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.api.domain.GoodsShop;
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.api.domain.ShopScore;
import com.ruoyi.other.mapper.ShopMapper;
import com.ruoyi.other.service.GoodsService;
import com.ruoyi.other.service.GoodsShopService;
import com.ruoyi.other.service.ShopScoreService;
import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.util.GeodesyUtil;
@@ -69,6 +73,10 @@
    private UserShopClient userShopClient;
    @Resource
    private AppUserShopClient appUserShopClient;
    @Resource
    private GoodsService goodsService;
    @Resource
    private GoodsShopService goodsShopService;
@@ -466,15 +474,27 @@
    @ResponseBody
    @GetMapping("/getVerifiableShop")
    @ApiOperation(value = "获取可核销门店列表", tags = {"购物车-小程序"})
    public R<List<VerifiableShopVo>> getVerifiableShop(String longitude, String latitude){
    public R<List<VerifiableShopVo>> getVerifiableShop(String longitude, String latitude, Integer goodsId){
        String city = TencentMapUtil.inverseGeographicalAnalysis(longitude, latitude, false);
        city = city.substring(0, 4) + "00";
        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getCityCode, city));
        LambdaQueryWrapper<Shop> wrapper = new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getCityCode, city);
        if(null != goodsId){
            Goods goods = goodsService.getById(goodsId);
            if(1 == goods.getType() && 1 == goods.getAppointStore()){
                List<Integer> collect = goodsShopService.list(new LambdaQueryWrapper<GoodsShop>().eq(GoodsShop::getGoodsId, goods)).stream().map(GoodsShop::getShopId).collect(Collectors.toList());
                if(collect.size() > 0){
                    wrapper.in(Shop::getId, collect);
                }
            }
        }
        List<Shop> list = shopService.list(wrapper);
        List<VerifiableShopVo> verifiableShopVoList = new ArrayList<>();
        for (Shop shop : list) {
            VerifiableShopVo vo = new VerifiableShopVo();
            vo.setId(shop.getId());
            vo.setName(shop.getName());
            vo.setAddress(shop.getAddress());
            vo.setHomePicture(shop.getHomePicture());
            Double wgs84 = GeodesyUtil.getDistance(longitude + "," + latitude, shop.getLongitude() + "," + shop.getLatitude()).get("WGS84");
            vo.setDistance(wgs84.longValue());
            verifiableShopVoList.add(vo);
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java
@@ -207,6 +207,8 @@
    @ApiOperation(value = "设置", tags = {"后台-会员等级设置"})
    public R<Void> managelevelset(@RequestBody SetDto setDto) {
        vipSettingService.updateBatchById(setDto.getVipSettingList());
        //会员降级检测
        appUserClient.demotionDetection();
        return R.ok();
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java
@@ -65,6 +65,8 @@
        Integer goodsId = seckillActivityDetailVO.getGoodsId();
        Goods goods = goodsService.getById(goodsId);
        seckillActivityDetailVO.setGoodsName(goods.getName());
        seckillActivityDetailVO.setGoodsType(goods.getType());
        List<Shop> shops;
        if(goods.getAppointStore() == 1){
            List<Integer> shopIdList = goodsShopMapper.selectList(new LambdaQueryWrapper<GoodsShop>()
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/SeckillActivityVO.java
@@ -24,7 +24,7 @@
    private String introduction;
    @ApiModelProperty(value = "商品类型")
    private String goodsType;
    private Integer goodsType;
    @ApiModelProperty(value = "商品分类名称")
    private String goodsCategoryName;