ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserShopClientFallbackFactory.java
New file @@ -0,0 +1,30 @@ package com.ruoyi.account.api.factory; import com.ruoyi.account.api.feignClient.AppUserShopClient; import com.ruoyi.account.api.model.AppUserShop; import com.ruoyi.common.core.domain.R; import org.springframework.cloud.openfeign.FallbackFactory; import java.util.List; /** * @author zhibing.pu * @date 2025/1/2 18:50 */ public class AppUserShopClientFallbackFactory implements FallbackFactory<AppUserShopClient> { @Override public AppUserShopClient create(Throwable cause) { return new AppUserShopClient(){ @Override public R<List<AppUserShop>> getAppUserShop(Long userId) { return R.fail("查询用户门店关系数据失败:" + cause.getMessage()); } @Override public R delAppUserShop(AppUserShop appUserShop) { return R.fail("删除用户门店关系数据失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserShopClient.java
New file @@ -0,0 +1,36 @@ package com.ruoyi.account.api.feignClient; import com.ruoyi.account.api.factory.AppUserShopClientFallbackFactory; import com.ruoyi.account.api.model.AppUserShop; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; /** * @author zhibing.pu * @date 2025/1/2 18:49 */ @FeignClient(contextId = "AppUserShopClient", value = ServiceNameConstants.ACCOUNT_SERVICE, fallbackFactory = AppUserShopClientFallbackFactory.class) public interface AppUserShopClient { /** * 查询用户门店关系数据 * @param userId * @return */ @GetMapping("/appUserShop/shop/{userId}") R<List<AppUserShop>> getAppUserShop(@PathVariable("userId") Long userId); /** * 删除用户门店关系数据 */ @PostMapping("/appUserShop/delAppUserShop") R delAppUserShop(@RequestBody AppUserShop appUserShop); } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserClickLog.java
@@ -40,6 +40,9 @@ @TableField("create_time") private LocalDateTime createTime; @TableField(exist = false) private String createTimeStr; @ApiModelProperty(value = "用户id") @TableField("app_user_id") private Long appUserId; ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -3,4 +3,5 @@ com.ruoyi.account.api.factory.UserCouponClientFallbackFactory com.ruoyi.account.api.factory.UserPointFallbackFactory com.ruoyi.account.api.factory.BalanceChangeRecordClientFallbackFactory com.ruoyi.account.api.factory.UserChangeLogFallbackFactory com.ruoyi.account.api.factory.UserChangeLogFallbackFactory com.ruoyi.account.api.factory.AppUserShopClientFallbackFactory ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -78,6 +78,11 @@ public R saveShopUser(SysUser user) { return R.fail("新增加门店员工账号数据失败:" + cause.getMessage()); } @Override public R delShopUser(Integer objectId, Integer roleType) { return R.fail("删除门店管理员账号失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/UserShopClientFallbackFactory.java
New file @@ -0,0 +1,29 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.feignClient.UserShopClient; import com.ruoyi.system.api.model.UserShop; import java.util.List; /** * @author zhibing.pu * @date 2025/1/2 18:02 */ public class UserShopClientFallbackFactory implements org.springframework.cloud.openfeign.FallbackFactory<UserShopClient> { @Override public UserShopClient create(Throwable cause) { return new UserShopClient(){ @Override public R<List<UserShop>> getUserShop(UserShop userShop) { return R.fail("获取用户门店关系数据失败:" + cause.getMessage()); } @Override public R saveUserShop(UserShop userShop) { return R.fail("保存门店用户关系数据失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -96,6 +96,16 @@ * @return */ @PostMapping("/user/saveShopUser") R saveShopUser(@RequestBody SysUser user); R<Long> saveShopUser(@RequestBody SysUser user); /** * 删除门店所有管理员账号 * @param objectId * @param roleType * @return */ @PostMapping("/user/delShopUser") R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/UserShopClient.java
New file @@ -0,0 +1,37 @@ package com.ruoyi.system.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.factory.UserShopClientFallbackFactory; import com.ruoyi.system.api.model.UserShop; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; /** * @author zhibing.pu * @date 2025/1/2 18:02 */ @FeignClient(contextId = "UserShopClient", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = UserShopClientFallbackFactory.class) public interface UserShopClient { /** * 获取用户门店关系数据 * @param userShop * @return */ @PostMapping("/userShop/getUserShop") R<List<UserShop>> getUserShop(@RequestBody UserShop userShop); /** * 保存门店用户关系数据 * @param userShop * @return */ @PostMapping("/userShop/saveUserShop") R saveUserShop(@RequestBody UserShop userShop); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java
@@ -22,10 +22,15 @@ * 用户id */ @TableField("user_id") private Integer userId; private Long userId; /** * 门店id */ @TableField("shop_id") private Integer shopId; /** * 角色类型(1=店长,2=店员) */ @TableField("role_type") private Integer roleType; } ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -5,3 +5,4 @@ com.ruoyi.system.api.factory.SysRoleFallbackFactory com.ruoyi.system.api.factory.SysLoginLogFallbackFactory com.ruoyi.system.api.factory.SysUserRoleFallbackFactory com.ruoyi.system.api.factory.UserShopClientFallbackFactory ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; @@ -548,8 +549,7 @@ */ @ResponseBody @PostMapping("/saveShopUser") public R saveShopUser(@RequestBody SysUser user){ Integer shopId = user.getObjectId(); public R<Long> saveShopUser(@RequestBody SysUser user){ SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, user.getPhonenumber()).eq(SysUser::getDelFlag, "0") .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2).eq(SysUser::getAppUserId, user.getAppUserId())); if(null == one){ @@ -560,16 +560,29 @@ userRole.setUserId(user.getUserId()); userRole.setRoleId(2L); userRoleService.save(userRole); }else{ user = one; } //添加门店关系数据 UserShop userShop = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, shopId).eq(UserShop::getUserId, user.getAppUserId())); if(null == userShop){ userShop = new UserShop(); userShop.setUserId(user.getUserId().intValue()); userShop.setShopId(user.getObjectId()); userShopService.save(userShop); return R.ok(user.getUserId()); } /** * 删除门店管理员账号 * @param objectId * @param roleType * @return */ @PostMapping("/user/delShopUser") public R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType){ List<SysUser> list = userService.list(new LambdaUpdateWrapper<SysUser>().eq(SysUser::getObjectId, objectId).eq(SysUser::getRoleType, roleType) .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0")); for (SysUser sysUser : list) { List<UserShop> list1 = userShopService.list(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId())); List<Integer> collect = list1.stream().map(UserShop::getShopId).collect(Collectors.toList()); if(collect.contains(objectId) && collect.size() == 1){ sysUser.setDelFlag("2"); userService.updateById(sysUser); } userShopService.remove(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, objectId)); } return R.ok(); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserShopController.java
New file @@ -0,0 +1,59 @@ package com.ruoyi.system.controller; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.model.UserShop; import com.ruoyi.system.service.UserShopService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * @author zhibing.pu * @date 2025/1/2 18:04 */ @RestController @RequestMapping("/userShop") public class UserShopController { @Resource private UserShopService userShopService; /** * 获取用户门店关系数据 * @param userShop * @return */ @PostMapping("/getUserShop") public R<List<UserShop>> getUserShop(@RequestBody UserShop userShop){ LambdaUpdateWrapper<UserShop> wrapper = new LambdaUpdateWrapper<UserShop>(); if(null != userShop.getUserId()){ wrapper.eq(UserShop::getUserId, userShop.getUserId()); } if(null != userShop.getShopId()){ wrapper.eq(UserShop::getShopId, userShop.getShopId()); } if(null != userShop.getRoleType()){ wrapper.eq(UserShop::getRoleType, userShop.getRoleType()); } List<UserShop> list = userShopService.list(wrapper); return R.ok(list); } /** * 保存数据 * @param userShop * @return */ @PostMapping("/saveUserShop") public R saveUserShop(@RequestBody UserShop userShop){ userShopService.save(userShop); return R.ok(); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
@@ -1,6 +1,7 @@ package com.ruoyi.account.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.account.api.model.AppUserShop; import com.ruoyi.account.service.AppUserShopService; import com.ruoyi.common.core.domain.R; @@ -22,7 +23,11 @@ @PostMapping("/addAppUserShop") public R<Void> add(@RequestBody AppUserShop appUserShop) { appUserShopService.save(appUserShop); long count = appUserShopService.count(new LambdaQueryWrapper<AppUserShop>() .eq(AppUserShop::getAppUserId, appUserShop.getAppUserId()).eq(AppUserShop::getShopId, appUserShop.getShopId())); if(0 == count){ appUserShopService.save(appUserShop); } return R.ok(); } @@ -32,7 +37,24 @@ return R.ok(appUserShopService.list(new LambdaQueryWrapper<AppUserShop>() .eq(AppUserShop::getAppUserId,userId))); } /** * 删除门店用户关系数据 * @param appUserShop * @return */ @PostMapping("/delAppUserShop") public R delAppUserShop(@RequestBody AppUserShop appUserShop){ LambdaUpdateWrapper<AppUserShop> wrapper = new LambdaUpdateWrapper<>(); if(null != appUserShop.getAppUserId()){ wrapper.eq(AppUserShop::getAppUserId, appUserShop.getAppUserId()); } if(null != appUserShop.getShopId()){ wrapper.eq(AppUserShop::getShopId, appUserShop.getShopId()); } appUserShopService.remove(wrapper); return R.ok(); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserClickLogController.java
@@ -26,12 +26,17 @@ @RestController @RequestMapping("/user-click-log") public class UserClickLogController { @Resource private UserClickLogService userClickLogService; @PostMapping("/page") @ApiOperation(value = "申请点击列表", tags = {"后台"}) public R<IPage<UserClickLog>> page(@RequestBody UserCancelQuery agentQuery) { return R.ok(userClickLogService.pageList(agentQuery)); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -1,6 +1,7 @@ package com.ruoyi.account.controller; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.UserCoupon; @@ -30,6 +31,7 @@ import io.swagger.annotations.ApiParam; import java.time.LocalDateTime; import java.util.stream.Collectors; /** * <p> @@ -206,5 +208,47 @@ public R<Long> getCouponCount(@RequestParam Integer couponId){ return R.ok(userCouponService.lambdaQuery().eq(UserCoupon::getCouponId, couponId).count()); } @ResponseBody @GetMapping("/getCouponInfoInfo") @ApiOperation(value = "获取核销商品券详情", tags = {"小程序-个人中心-门店管理"}) public R<UserCoupon> getCouponInfoInfo(String id){ UserCoupon userCoupon = userCouponService.getById(id); CouponInfo couponInfo = couponClient.detail(userCoupon.getCouponId()).getData(); List<Goods> goods = null; if("-1".equals(couponInfo.getForGoodIds())){ goods = goodsClient.getGoodsByType(2).getData(); }else{ goods = goodsClient.getGoodsById(couponInfo.getForGoodIds().split(",")).getData(); } CouponInfoVo couponInfoVo = new CouponInfoVo(); BeanUtils.copyProperties(couponInfo, couponInfoVo); couponInfoVo.setGoodNames(goods.stream().map(Goods::getName).collect(Collectors.toList())); userCoupon.setCouponInfoVo(couponInfoVo); return R.ok(userCoupon); } @ResponseBody @PutMapping("/useCoupon/{id}") @ApiOperation(value = "核销商品优惠券", tags = {"小程序-个人中心-门店管理"}) public R useCoupon(@PathVariable("id") String id){ UserCoupon userCoupon = userCouponService.getById(id); if(null == userCoupon){ return R.ok("核销码错误"); } if(userCoupon.getStatus() == 2){ return R.ok("优惠券已使用"); } if(userCoupon.getStatus() == 3){ return R.ok("优惠券已过期"); } userCoupon.setStatus(2); userCoupon.setUseTime(LocalDateTime.now()); userCouponService.updateById(userCoupon); return R.ok(); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java
@@ -2,6 +2,10 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.UserClickLog; import com.ruoyi.account.service.AppUserService; import com.ruoyi.account.service.UserClickLogService; import com.ruoyi.account.service.VipCenterService; import com.ruoyi.account.service.VipSettingService; import com.ruoyi.account.vo.vip.Level; @@ -19,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -46,6 +51,10 @@ private VipGoodClient vipGoodClient; @Resource private GoodsClient goodsClient; @Resource private AppUserService appUserService; @Resource private UserClickLogService userClickLogService; @GetMapping("getVipLevelList") @@ -106,6 +115,16 @@ vipLevel.setLevelList(levelList); vipLevel.setCurrentLevel(loginUserVipSetting.getId()); //添加操作记录 AppUser appUser = appUserService.getById(userid); UserClickLog userClickLog = new UserClickLog(); userClickLog.setDelFlag(0); userClickLog.setCreateTime(LocalDateTime.now()); userClickLog.setAppUserId(userid); userClickLog.setVipId(appUser.getVipId()); userClickLogService.save(userClickLog); return R.ok(vipLevel); } catch (Exception e) { log.error("会员等级获取失败", e); ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -428,32 +428,6 @@ weChatUtil.getwxacodeunlimit("pages/login/login", "id=" + appUser.getId(), EnvVersion.TRIAL, filePath + fileName); appUser.setQrCode(accessPath + fileName); this.updateById(appUser); //查询当前注册的手机号是都和门店管理员手机号相同 Shop shop = shopClient.getShopByPhone(registerAccount.getPhone()).getData(); if(null != shop){ //添加门店用户关系数据 AppUserShop appUserShop = appUserShopService.getOne(new LambdaQueryWrapper<AppUserShop>().eq(AppUserShop::getAppUserId, appUser.getId()).eq(AppUserShop::getShopId, shop.getId())); if(null == appUserShop){ appUserShop = new AppUserShop(); appUserShop.setShopId(shop.getId()); appUserShop.setAppUserId(appUser.getId()); appUserShopService.save(appUserShop); //添加管理后台账号 SysUser user = new SysUser(); user.setDeptId(1L); user.setUserName(appUser.getName()); user.setNickName(appUser.getName()); user.setPhonenumber(appUser.getPhone()); user.setAvatar(appUser.getAvatar()); user.setStatus("0"); user.setDelFlag("0"); user.setRoleType(2); user.setObjectId(shop.getId()); user.setAppUserId(appUser.getId()); sysUserClient.saveShopUser(user); } } } LoginVo loginVo = new LoginVo(); loginVo.setSkipPage(1); ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserClickLogMapper.xml
@@ -16,7 +16,11 @@ id, del_flag, create_time, app_user_id, vip_id </sql> <select id="pageList" resultType="com.ruoyi.account.api.model.UserClickLog"> select t1.* ,t2.phone as userPhone,t2.name as userName select t1.* , t2.phone as userPhone, t2.name as userName, DATE_FORMAT(t1.create_time, '%Y-%m-%d %H:%i:%s') as createTimeStr from t_user_click_log t1 left join t_app_user t2 on t1.app_user_id = t2.id <where> ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -366,7 +366,7 @@ confirmOrderVo.setDiscountAmount(orderMoney.subtract(paymentMoney).setScale(2, RoundingMode.HALF_EVEN)); } BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData(); confirmOrderVo.setUseSimultaneously(baseSetting.getContent().equals("1")); confirmOrderVo.setUseSimultaneously(JSON.parseObject(baseSetting.getContent()).getInteger("status") == 1); int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum(); confirmOrderVo.setEarnPoint(earnPoint); //支付金额,订单金额-订单优惠 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.feignClient.AppUserClient; @@ -203,5 +204,11 @@ return null; } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.feignClient.AppUserShopClient; import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.AppUserShop; import com.ruoyi.common.core.domain.R; @@ -20,7 +21,9 @@ import com.ruoyi.other.vo.ShopStatistics; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import com.ruoyi.system.api.feignClient.UserShopClient; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.UserShop; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -32,6 +35,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -60,6 +64,10 @@ private SysUserClient sysUserClient; @Resource private ShopMapper shopMapper; @Resource private UserShopClient userShopClient; @Resource private AppUserShopClient appUserShopClient; @@ -89,7 +97,6 @@ shop.setAppUserId(appUser.getId()); shopService.save(shop); AppUserShop appUserShop = new AppUserShop(); appUserShop.setAppUserId(appUser.getId()); appUserShop.setShopId(shop.getId()); @@ -101,6 +108,44 @@ R<Void> editAppUserR = appUserClient.editAppUserById(appUser); if (R.isError(editAppUserR)){ throw new RuntimeException("添加失败"); } //添加门店后台账号和门店关系数据 SysUser sysUser = sysUserClient.queryUserByUserName(phone).getData(); if(null != sysUser){ UserShop userShop = new UserShop(); userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); List<UserShop> data = userShopClient.getUserShop(userShop).getData(); if(null == data || data.size() == 0){ userShop = new UserShop(); userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShopClient.saveUserShop(userShop); } }else{ //添加管理后台账号 SysUser user = new SysUser(); user.setDeptId(1L); user.setUserName(appUser.getPhone()); user.setNickName(appUser.getName()); user.setPhonenumber(appUser.getPhone()); user.setAvatar(appUser.getAvatar()); user.setStatus("0"); user.setDelFlag("0"); user.setRoleType(2); user.setObjectId(shop.getId()); user.setAppUserId(appUser.getId()); user.setPassword(phone.substring(5)); user.setCreateTime(new Date()); Long userId = sysUserClient.saveShopUser(user).getData(); UserShop userShop = new UserShop(); userShop.setUserId(userId); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShopClient.saveUserShop(userShop); } return R.ok(); } @@ -119,6 +164,27 @@ Shop shop = shopService.getById(id); shop.setDelFlag(1); shopService.updateById(shop); //获取门店的员工数据 UserShop userShop = new UserShop(); userShop.setShopId(shop.getId()); List<UserShop> data = userShopClient.getUserShop(userShop).getData(); List<Integer> collect = data.stream().map(UserShop::getUserId).collect(Collectors.toList()).stream().map(Long::intValue).collect(Collectors.toList()); List<SysUser> sysUserList = sysUserClient.getUserList(collect).getData(); //删除门店下的所有员工 sysUserClient.delShopUser(shop.getId(), 2); //修改小程序用户类型和门店数据 for (SysUser sysUser : sysUserList) { String userName = sysUser.getUserName(); //通过电话号码查询小程序用户和门店关系数据 AppUser appUser = appUserClient.getAppUserByPhone1(userName).getData(); //需要先判断用户是否没有关联任何门店 List<AppUserShop> userShops = appUserShopClient.getAppUserShop(appUser.getId()).getData(); if(userShops.size() == 1 && userShops.get(0).getShopId().equals(shop.getId())){ appUser.setUserType(1); appUserClient.editAppUserById(appUser); } } return R.ok(); } @@ -129,7 +195,72 @@ if (!shopService.cheUserByPhone(phone)) { return R.fail("该手机号未注册"); } Shop old_shop = shopService.getById(shop.getId()); shopService.updateById(shop); //修改管理员 if(!phone.equals(old_shop.getPhone())){ AppUser appUser = appUserClient.getAppUserById(old_shop.getAppUserId()); //需要先判断用户是否没有关联任何门店 List<AppUserShop> userShops = appUserShopClient.getAppUserShop(appUser.getId()).getData(); if(userShops.size() == 1 && userShops.get(0).getShopId().equals(shop.getId())){ appUser.setUserType(1); appUserClient.editAppUserById(appUser); } AppUserShop appUserShop = new AppUserShop(); appUserShop.setAppUserId(appUser.getId()); appUserShop.setShopId(shop.getId()); appUserShopClient.delAppUserShop(appUserShop); //添加新管理员 appUser = appUserClient.getAppUserByPhone1(phone).getData(); appUserShop = new AppUserShop(); appUserShop.setAppUserId(appUser.getId()); appUserShop.setShopId(shop.getId()); appUserClient.addAppUserShop(appUserShop); //修改管理员 shop.setAppUserId(appUser.getId()); shopService.updateById(shop); //添加门店后台账号和门店关系数据 SysUser sysUser = sysUserClient.queryUserByUserName(phone).getData(); if(null != sysUser){ UserShop userShop = new UserShop(); userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); List<UserShop> data = userShopClient.getUserShop(userShop).getData(); if(null == data || data.size() == 0){ userShop = new UserShop(); userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShopClient.saveUserShop(userShop); } }else{ //添加管理后台账号 SysUser user = new SysUser(); user.setDeptId(1L); user.setUserName(appUser.getPhone()); user.setNickName(appUser.getName()); user.setPhonenumber(appUser.getPhone()); user.setAvatar(appUser.getAvatar()); user.setStatus("0"); user.setDelFlag("0"); user.setRoleType(2); user.setObjectId(shop.getId()); user.setAppUserId(appUser.getId()); user.setPassword(phone.substring(5)); user.setCreateTime(new Date()); Long userId = sysUserClient.saveShopUser(user).getData(); UserShop userShop = new UserShop(); userShop.setUserId(userId); userShop.setShopId(shop.getId()); userShop.setRoleType(1); userShopClient.saveUserShop(userShop); } } return R.ok(); } @@ -161,9 +292,12 @@ String[] idsArr = ids.split(","); for (String id : idsArr) { Shop shop = shopService.getById(Integer.valueOf(id)); R<SysUser> sysUser = sysUserClient.getSysUser(shop.getAppUserId()); SysUser userData = sysUser.getData(); userData.setPassword(getLastSixDigits(userData.getPhonenumber())); UserShop userShop = new UserShop(); userShop.setShopId(shop.getId()); userShop.setRoleType(1); List<UserShop> data = userShopClient.getUserShop(userShop).getData(); SysUser userData = sysUserClient.getSysUser(data.get(0).getUserId()).getData(); userData.setPassword(userData.getPhonenumber().substring(5)); sysUserClient.resetPassword(userData); } return R.ok(); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; @@ -21,6 +22,9 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; /** * <p> @@ -50,10 +54,22 @@ public R<IPage<ShopWithdraw>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("每一页数据大小") Integer pageSize, ShopWithdraw shopWithdraw) { List<Shop> list = shopService.list(new LambdaUpdateWrapper<Shop>().like(StringUtils.isNotEmpty(shopWithdraw.getShopName()), Shop::getName, shopWithdraw.getShopName()).eq(Shop::getDelFlag, 0)); List<Integer> collect1 = list.stream().map(Shop::getId).collect(Collectors.toList()); Page<ShopWithdraw> page = shopWithdrawService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<ShopWithdraw>() .like(StringUtils.isNotEmpty(shopWithdraw.getShopName()), ShopWithdraw::getShopName, shopWithdraw.getShopName())); page.getRecords().forEach(item-> item.setShopName(shopService.getById(item.getShopId()).getName())); .in(collect1.size() > 0, ShopWithdraw::getShopId, collect1)); List<ShopWithdraw> records = page.getRecords(); List<Integer> collect = records.stream().map(ShopWithdraw::getShopId).collect(Collectors.toList()); List<Shop> shops = null; if(collect.size() > 0){ shops = shopService.listByIds(collect); } for(ShopWithdraw item : records){ Optional<Shop> first = shops.stream().filter(s -> s.getId().equals(item.getId())).findFirst(); if(first.isPresent()){ item.setShopName(first.get().getName()); } } return R.ok(page); }