From 210828d1a6947596fe00ab30fcd8725c6714dde4 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 02 一月 2025 21:04:16 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserClickLogMapper.xml                                            |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java                                    |   14 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/UserShopClient.java                                   |   37 +++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java                                    |    7 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java                                |   26 --
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java                                               |    7 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserClickLogController.java                              |    7 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java                               |    5 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserShopClient.java                              |   36 +++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/UserShopClientFallbackFactory.java                        |   29 ++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java                                  |   22 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java                                          |  142 +++++++++++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserShopClientFallbackFactory.java                   |   30 +++
 ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports  |    1 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java                               |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                                     |   35 ++-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java                               |   26 ++
 ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports |    3 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java                                 |   19 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserClickLog.java                                         |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserShopController.java                                    |   59 +++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java                                |   44 ++++
 22 files changed, 507 insertions(+), 53 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserShopClientFallbackFactory.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserShopClientFallbackFactory.java
new file mode 100644
index 0000000..79246b2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserShopClientFallbackFactory.java
@@ -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());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserShopClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserShopClient.java
new file mode 100644
index 0000000..c1d2067
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserShopClient.java
@@ -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);
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserClickLog.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserClickLog.java
index 6ded8bd..9bf0a8b 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserClickLog.java
+++ b/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;
diff --git a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 781adb8..a1a0f95 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/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
\ No newline at end of file
+com.ruoyi.account.api.factory.UserChangeLogFallbackFactory
+com.ruoyi.account.api.factory.AppUserShopClientFallbackFactory
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
index bf86892..137909e 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
+++ b/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());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/UserShopClientFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/UserShopClientFallbackFactory.java
new file mode 100644
index 0000000..cd65ea7
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/UserShopClientFallbackFactory.java
@@ -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());
+            }
+        };
+    }
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index e9dc726..7f566d9 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/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);
+
+
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/UserShopClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/UserShopClient.java
new file mode 100644
index 0000000..dd0d420
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/UserShopClient.java
@@ -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);
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java
index bc8a12a..73a2419 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/UserShop.java
+++ b/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;
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index 89b7d3a..1893ca1 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/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
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 94f5316..11736f4 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/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();
     }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserShopController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserShopController.java
new file mode 100644
index 0000000..cccb3ec
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/UserShopController.java
@@ -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();
+    }
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
index e492e09..09899e0 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserShopController.java
+++ b/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();
+    }
 	
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserClickLogController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserClickLogController.java
index abd5065..a3f6d4b 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserClickLogController.java
+++ b/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));
     }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
index 8176748..0ddb1ef 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
+++ b/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();
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java
index ade3997..f3639bb 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java
+++ b/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);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
index 2094c25..c0480f9 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
+++ b/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);
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserClickLogMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserClickLogMapper.xml
index 5e45818..d1e46ca 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/UserClickLogMapper.xml
+++ b/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>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 67a1939..8fbdf6e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/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);
 		//支付金额,订单金额-订单优惠
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
index f2872c6..f7de2e1 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java
+++ b/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;
     }
 
+
+
+
+
+
+
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
index 3cf5908..368c8ae 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
+++ b/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();
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
index c804805..eeeea29 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopWithdrawController.java
+++ b/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);
     }
 

--
Gitblit v1.7.1