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