xuhy
2025-01-15 d5bf846770b001cac64ca27a3fe2886a9c5076b3
Merge remote-tracking branch 'origin/master'
15个文件已修改
145 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AgentApplicationController.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipCenterServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java
@@ -5,6 +5,7 @@
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.api.factory.StoreFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -14,7 +15,7 @@
 */
@FeignClient(contextId = "StoreClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = StoreFallbackFactory.class)
public interface StoreClient {
    @PostMapping(value = "/shop/getDetailById")
    @GetMapping(value = "/shop/getDetailById")
    R<Shop> getStoreById(@RequestParam("id") Integer id);
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java
@@ -23,6 +23,7 @@
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Objects;
/**
 * 个人信息 业务处理
@@ -107,6 +108,10 @@
        System.err.println(newPassword);
//        String username = SecurityUtils.getUsername();
        SysUser user = userService.selectUserByUserName(username);
        if (Objects.isNull(user))
        {
            return error("未查询到该账号");
        }
        String password = user.getPassword();
        if (!SecurityUtils.matchesPassword(oldPassword, password))
        {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -324,7 +324,8 @@
        if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) {
            return error("当前用户不能删除");
        }
        return toAjax(userService.deleteUserByIds(userIds));
        userService.deleteUserByIds(userIds);
        return AjaxResult.success();
    }
    
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -199,7 +199,7 @@
     * @param userIds 需要删除的用户ID
     * @return 结果
     */
    int deleteUserByIds(Long[] userIds);
    void deleteUserByIds(Long[] userIds);
    /**
     * 导入用户数据
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -446,7 +446,7 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int deleteUserByIds(Long[] userIds) {
    public void deleteUserByIds(Long[] userIds) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = this.getById(userid);
        for (Long userId : userIds) {
@@ -476,7 +476,6 @@
                userMapper.deleteUserById(user.getUserId());
            }
        }
        return 0;
    }
    
    /**
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
@@ -271,16 +271,16 @@
         update sys_user set password = #{password} where user_name = #{userName}
    </update>
    
    <delete id="deleteUserById" parameterType="Long">
    <update id="deleteUserById" parameterType="Long">
         update sys_user set del_flag = '2' where user_id = #{userId}
     </delete>
     </update>
     
     <delete id="deleteUserByIds" parameterType="Long">
     <update id="deleteUserByIds" parameterType="Long">
         update sys_user set del_flag = '2' where user_id in
         <foreach collection="array" item="userId" open="(" separator="," close=")">
             #{userId}
        </foreach> 
     </delete>
     </update>
    <delete id="deleteSysUser">
        delete from sys_user where user_id in
        <foreach collection="userIds" separator="," open="(" item="id" close=")" >
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AgentApplicationController.java
@@ -1,7 +1,10 @@
package com.ruoyi.account.controller;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.account.api.model.AgentApplication;
import com.ruoyi.account.api.model.AppUser;
@@ -11,6 +14,7 @@
import com.ruoyi.account.service.AgentApplicationService;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserChangeLogService;
import com.ruoyi.account.service.VipCenterService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.web.controller.BaseController;
@@ -41,6 +45,8 @@
    private AppUserService appUserService;
    @Resource
    private BaseSettingClient baseSettingClient;
    @Resource
    private VipCenterService vipCenterService;
    @PostMapping("/apply")
    @ApiOperation(value = "会员申请", tags = {"会员中心-小程序"})
@@ -98,39 +104,50 @@
        userChangeLogService.save(userChangeLog);
        //变更会员等级
        byId1.setVipId(byId.getApplicationVipId());
        appUserService.updateById(byId1);
        // 当用户为合伙人时,计算合伙人积分和培育积分
        Integer vipId = byId1.getVipId();
        if (vipId == 7){
            R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1);
            BaseSetting data = baseSetting.getData();
            int basePoint = Integer.parseInt(data.getContent());
            // 当前用户计算合伙人积分
            R<VipSetting> vipSetting = vipSettingClient.getVipSetting(vipId);
            setPoint(vipSetting, byId1, byId1.getShopPoint(), byId1.getSharePoint());
            Integer point = getPoint(vipSetting, byId1, basePoint);
            byId1.setPartPoint(point);
            // 上级计算培育积分
            R<BaseSetting> baseSetting2 = baseSettingClient.getBaseSetting(1);
            BaseSetting data2 = baseSetting2.getData();
            int basePoint2 = Integer.parseInt(data2.getContent());
            Long inviteUserId = byId1.getInviteUserId();
            AppUser byId2 = appUserService.getById(inviteUserId);
            if (byId2 != null){
                setPoint(vipSetting, byId2, byId1.getShopPoint(), byId1.getSharePoint());
                Integer point1 = getPoint(vipSetting, byId2, basePoint2);
                byId2.setPartGrowPoint(point1);
            }
        }
        appUserService.updateById(byId1);
        return R.ok(byId);
    }
    private void setPoint(R<VipSetting> vipSetting, AppUser appUser, Integer shopPoint, Integer sharePoint) {
    private Integer getPoint(R<VipSetting> vipSetting, AppUser appUser, Integer basePoint) {
        VipSetting vipSettingData = vipSetting.getData();
        Integer vipLevelUpShopRole = vipSettingData.getVipLevelUpShopRole();
        int i = 1;
        if (vipLevelUpShopRole == 1){
            Integer vipLevelUpShop = vipSettingData.getVipLevelUpShop();
            Integer vipLevelUpShare = vipSettingData.getVipLevelUpShare();
            if (shopPoint >=vipLevelUpShop && sharePoint >= vipLevelUpShare) {
                R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1);
                BaseSetting data = baseSetting.getData();
                if (data != null){
                    appUser.setPartPoint(Integer.parseInt(data.getContent()));
                    appUserService.updateById(appUser);
            i += 1;
                }
        Integer vipLevelUpNumRole = vipSettingData.getVipLevelUpNumRole();
        if (vipLevelUpNumRole == 1){
            i += 1;
            }
        if (vipCenterService.checkReadyToBePartner(appUser.getId())){
            return basePoint * i;
        }
        return 0;
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WalletController.java
@@ -4,6 +4,8 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.BalanceChangeRecord;
import com.ruoyi.account.api.model.BalancePayment;
@@ -77,8 +79,10 @@
     */
    @ApiOperation(value = "变更明细", notes = "变更明细")
    @GetMapping("change")
    public R<List<BalanceChangeRecord>> change(@ApiParam(value = "变更类型")
    public R<IPage<BalanceChangeRecord>> change(@ApiParam(value = "变更类型")
                                               @RequestParam(required = false) Integer changeType,
                                                Integer pageCurr,
                                                Integer pageSize,
                                               @ApiParam(value = "创建时间")
                                               @RequestParam(required = false)
                                               @DateTimeFormat(pattern = "yyyy-MM-dd")
@@ -99,10 +103,12 @@
            endTime = lastDayOfMonth.atTime(LocalTime.MAX);
        }
        List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>()
        Page<BalanceChangeRecord> page = balanceChangeRecordService.page(Page.of(pageCurr, pageSize), new LambdaQueryWrapper<BalanceChangeRecord>()
                .eq(changeType != null, BalanceChangeRecord::getChangeType, changeType)
                .between(startTime != null, BalanceChangeRecord::getCreateTime, startTime, endTime)
                .eq(BalanceChangeRecord::getAppUserId, userId).orderByDesc(BalanceChangeRecord::getCreateTime));
        List<BalanceChangeRecord> list = page.getRecords();
        List<Long> orderIds = list.stream().map(BalanceChangeRecord::getOrderId).collect(Collectors.toList());
        if (CollectionUtil.isNotEmpty(orderIds)){
@@ -115,8 +121,10 @@
                orderList.stream().filter(o -> o.getId().equals(bc.getOrderId())).findFirst().ifPresent(o -> {
                    Long appUserId = o.getAppUserId();
                    AppUser appUser = appUserService.getById(appUserId);
                    if(null != appUser){
                    bc.setUserName(appUser.getName());
                    bc.setAmount(o.getPaymentAmount());
                    }
                });
                BigDecimal beforeAmount = bc.getBeforeAmount();
@@ -128,7 +136,7 @@
                }
            });
        }
        return R.ok(list);
        return R.ok(page);
    }
    /**
@@ -222,7 +230,5 @@
            out.flush();
            out.close();
        }
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/VipCenterServiceImpl.java
@@ -289,7 +289,7 @@
                    // 获取用户直推代理用户数量
                    List<AppUser> userAgentList = appUserService.list(new LambdaQueryWrapper<AppUser>()
                            .in(AppUser::getId, userShopList)
                            .eq(AppUser::getVipId, 5));
                            .gt(AppUser::getVipId, 4));
                    // 代理下的准代理数量
                    List<Long> userQuasiAgent = userAgentList.stream().map(AppUser::getId).collect(Collectors.toList());
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.account.api.vo.PaymentUserCoupon;
import com.ruoyi.account.api.vo.PaymentUserCouponVo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.mapper.ShoppingCartMapper;
@@ -190,7 +191,7 @@
        info.setVip(appUser.getVipId());
        GoodsSeckill goodsSeckill = seckillActivityInfoClient.getSeckillActivityInfo(info).getData();
        //没有秒杀活动或者添加的普通商品则不使用秒杀活动价格
        if((null == goodsSeckill || (null != goodsSeckill.getCashPayment() && null != goodsSeckill.getPointPayment())) || type == 1){
        if((null == goodsSeckill || (null == goodsSeckill.getCashPayment() && null == goodsSeckill.getPointPayment())) || type == 1){
            //没有秒杀价,则判断门店特价
            GetGoodsBargainPrice goodsBargainPrice = new GetGoodsBargainPrice();
            goodsBargainPrice.setGoodsId(goodsId);
@@ -329,6 +330,11 @@
    @Override
    public Long addGoods(ShoppingCart shoppingCart) {
        Long userid = tokenService.getLoginUserApplet().getUserid();
        Integer goodsSaleNum = orderService.getGoodsSaleNum(shoppingCart.getGoodsId(), null, userid);
        Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
        if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && (goodsSaleNum + shoppingCart.getNumber()) > goods.getPurchaseLimit()){
            throw new ServiceException("超出购买数量限制");
        }
        ShoppingCart one = this.getOne(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
                .eq(ShoppingCart::getGoodsId, shoppingCart.getGoodsId()).eq(ShoppingCart::getType, shoppingCart.getType()).eq(ShoppingCart::getStatus, 1));
        if(null != one){
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/SeckillActivityInfoController.java
@@ -63,7 +63,6 @@
    @ApiOperation(value = "秒杀活动列表",tags = {"小程序-商城-首页","后台管理-活动管理-秒杀活动"})
    public R<TableDataInfo> list(Goods goods)
    {
        startPage();
        return R.ok(getDataTable(seckillActivityInfoService.listSeckillActivity(goods)));
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -413,20 +413,52 @@
        shop.setStatus(status);
        shopService.updateById(shop);
        //处理员工等数据
        if(status == 1){
        UserShop userSh = new UserShop();
        userSh.setShopId(id);
        List<UserShop> data = userShopClient.getUserShop(userSh).getData();
        for (UserShop datum : data) {
                SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
                sysUser.setStatus("0");
                sysUserClient.updateUser(sysUser);
            }
        }else{
            //查询门店所有关联数据
            UserShop userSh = new UserShop();
            userSh.setShopId(id);
            List<UserShop> data = userShopClient.getUserShop(userSh).getData();
            for (UserShop datum : data) {
                //查询用户关联的其他店铺
            UserShop userShop = new UserShop();
            userShop.setUserId(datum.getUserId());
            List<UserShop> data1 = userShopClient.getUserShop(userShop).getData();
            long count = data1.stream().filter(s -> !s.getShopId().equals(id)).count();
            if(0 == count){
                List<UserShop> collect = data1.stream().filter(s -> !s.getShopId().equals(id)).collect(Collectors.toList());
                if(collect.size() == 0){
                    //如果没有其他店铺,则将用户禁用
                SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
                sysUser.setStatus(status == 1 ? "0" : "1");
                    sysUser.setStatus("1");
                    sysUserClient.updateUser(sysUser);
                }else{
                    List<Integer> shopIds = collect.stream().map(UserShop::getShopId).collect(Collectors.toList());
                    List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>().eq(Shop::getDelFlag, 0).eq(Shop::getStatus, 1)
                            .in(Shop::getId, shopIds));
                    //如果用户关联的其他门店都禁用了,将用户禁用
                    if(list.size() == 0){
                        SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
                        sysUser.setStatus("1");
                        sysUserClient.updateUser(sysUser);
                    }else{
                        //修改默认门店
                        SysUser sysUser = sysUserClient.getSysUser(datum.getUserId()).getData();
                        if(sysUser.getObjectId().equals(id)){
                            sysUser.setObjectId(list.get(0).getId());
                sysUserClient.updateUser(sysUser);
            }
        }
                }
            }
        }
        return R.ok();
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/SeckillActivityInfoServiceImpl.java
@@ -32,6 +32,8 @@
import java.util.List;
import java.util.stream.Collectors;
import static com.ruoyi.common.core.utils.PageUtils.startPage;
/**
 * <p>
 * 服务实现类
@@ -66,6 +68,7 @@
        LoginUser loginUserApplet = tokenService.getLoginUserApplet();
        AppUser appUser = appUserClient.getAppUserById(loginUserApplet.getUserid());
        goods.setVipId(appUser.getVipId());
        startPage();
        List<SeckillActivityVO> seckillActivityVOS = seckillActivityInfoMapper.listSeckillActivity(goods);
        for (SeckillActivityVO seckillActivityVO : seckillActivityVOS) {
            Integer data = orderClient.getGoodsSaleNum(seckillActivityVO.getGoodsId(), 2).getData();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
@@ -88,8 +88,10 @@
            String id = technicianSubscribeVO.getId();
            TechnicianSubscribe technicianSubscribe = this.getById(id);
            AppUser appUser = appUserClient.getAppUserById(technicianSubscribe.getAppUserId());
            if(null != appUser){
            technicianSubscribeVO.setUserName(appUser.getName());
            technicianSubscribeVO.setPhone(appUser.getPhone());
            }
            Integer serviceMode = technicianSubscribeVO.getServiceMode();
            if(1 == serviceMode){
                UserAddress userAddress = JSON.parseObject(technicianSubscribeVO.getUserAddress(), UserAddress.class);
@@ -113,7 +115,14 @@
    }
    @Override
    public IPage<TechnicianSubscribeVO> getTechnicianSubscribeByUser(Page<TechnicianSubscribe> page, Long userId, Integer status) {
        return technicianSubscribeMapper.getTechnicianSubscribeByUser(page, userId, status);
        IPage<TechnicianSubscribeVO> technicianSubscribeByUser = technicianSubscribeMapper.getTechnicianSubscribeByUser(page, userId, status);
        technicianSubscribeByUser.getRecords().forEach(technicianSubscribeVO -> {
            UserAddress userAddress = JSON.parseObject(technicianSubscribeVO.getUserAddress(), UserAddress.class);
            if (userAddress != null){
                technicianSubscribeVO.setUserAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getRecieveAddress());
            }
        });
        return technicianSubscribeByUser;
    }
    @Override
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/SeckillActivityInfoMapper.xml
@@ -33,7 +33,6 @@
        <if test="vipId == null">
            AND tgs.vip in (0, -1)
        </if>
        order by tsai.create_time desc
    </select>
    <select id="selectDetail" resultType="com.ruoyi.other.vo.SeckillActivityDetailVO">
        SELECT