From 4e8cadb13ebd6f01b8cf6d5cc89757cf8e960792 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期三, 30 九月 2026 12:22:24 +0800
Subject: [PATCH] 门店管理修改

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java |   78 ++++----------------------
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java              |    3 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java                    |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html                           |    1 
 cloud-server-management/src/main/resources/mapper/TStoreMapper.xml                                     |   38 +++++-------
 cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js                           |    2 
 sql/V20260930__add_t_store_manager_name.sql                                                            |    3 +
 7 files changed, 37 insertions(+), 90 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index 95aa9ab..521328d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -333,11 +333,8 @@
         String roleid = UserExt.getUser().getRoleid();
         model.addAttribute("role",roleid);
         model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime());
-        User byId1 = userMapper.selectById(byId.getStoreStaffId());
-        model.addAttribute("city",byId1);
-        model.addAttribute("managerName", byId1 == null ? "" : byId1.getName());
-        // 历史门店的手机号可能只保存在店长账号中,编辑页需与列表保持一致地回填可用手机号。
-        model.addAttribute("managerPhone", resolveStoreManagerPhone(byId, byId1));
+        model.addAttribute("managerName", byId.getManagerName());
+        model.addAttribute("managerPhone", byId.getPhone());
         model.addAttribute("type",1);
         // 如果当前登陆人是运营商
         if (UserExt.getUser().getObjectType()==2){
@@ -417,10 +414,8 @@
         String roleid = UserExt.getUser().getRoleid();
         model.addAttribute("role",roleid);
         model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime());
-        User byId1 = userMapper.selectById(byId.getStoreStaffId());
-        model.addAttribute("city",byId1);
-        model.addAttribute("managerName", byId1 == null ? "" : byId1.getName());
-        model.addAttribute("managerPhone", resolveStoreManagerPhone(byId, byId1));
+        model.addAttribute("managerName", byId.getManagerName());
+        model.addAttribute("managerPhone", byId.getPhone());
         model.addAttribute("type",0);
 
         return PREFIX + "TShop_edit.html";
@@ -528,9 +523,7 @@
             if (ToolUtil.isEmpty(userName) || ToolUtil.isEmpty(tStore.getPhone())) {
                 return ERROR;
             }
-            if (!userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, tStore.getPhone())).isEmpty()) {
-                return "5001";
-            }
+            tStore.setManagerName(userName);
             if(yyId==null || type==1){
                 yyId=0;
             }
@@ -623,9 +616,6 @@
             String space_id = data.getString("space_id");
             Integer integer = Integer.valueOf(space_id);
             tStore.setId(integer);
-//            User storeManager = createStoreManager(userName, tStore.getPhone(), tStore.getId());
-//            userMapper.insert(storeManager);
-//            tStore.setStoreStaffId(storeManager.getId());
             storeService.save(tStore);
             ArrayList<StoreConfig> storeConfigs = new ArrayList<>();
             for (int i = 1; i < 9; i++) {
@@ -670,14 +660,7 @@
             if (ToolUtil.isEmpty(userName) || ToolUtil.isEmpty(tStore.getPhone())) {
                 return ERROR;
             }
-            LambdaQueryWrapper<User> managerAccountQuery = new LambdaQueryWrapper<User>()
-                    .eq(User::getAccount, tStore.getPhone());
-            if (byIdc.getStoreStaffId() != null) {
-                managerAccountQuery.ne(User::getId, byIdc.getStoreStaffId());
-            }
-            if (!userMapper.selectList(managerAccountQuery).isEmpty()) {
-                return "5001";
-            }
+            tStore.setManagerName(userName);
 
             if(yyId==null){
                 yyId=0;
@@ -747,17 +730,6 @@
             if (UserExt.getUser().getObjectType()==2){
                 tStore.setOperatorId(null);
             }
-//            User storeManager = byIdc.getStoreStaffId() == null ? null : userMapper.selectById(byIdc.getStoreStaffId());
-//            if (storeManager == null) {
-//                storeManager = createStoreManager(userName, tStore.getPhone(), tStore.getId());
-//                userMapper.insert(storeManager);
-//                tStore.setStoreStaffId(storeManager.getId());
-//            } else {
-//                storeManager.setName(userName);
-//                storeManager.setPhone(tStore.getPhone());
-//                storeManager.setAccount(tStore.getPhone());
-//                userMapper.updateById(storeManager);
-//            }
             storeService.updateById(tStore);
 
             return new SuccessTip<>();
@@ -767,26 +739,6 @@
         }
     }
 
-    private User createStoreManager(String name, String phone, Integer storeId) {
-        User user = new User();
-        user.setName(name);
-        user.setPhone(phone);
-        user.setAccount(phone);
-        user.setPassword(SecureUtil.md5("a123456"));
-        user.setRoleid("3");
-        user.setObjectType(3);
-        user.setObjectId(storeId);
-        user.setStatus(1);
-        user.setCreatetime(new Date());
-        return user;
-    }
-
-    private String resolveStoreManagerPhone(TStore store, User storeManager) {
-        if (ToolUtil.isNotEmpty(store.getPhone())) {
-            return store.getPhone();
-        }
-        return storeManager == null ? "" : storeManager.getPhone();
-    }
     @RequestMapping(value = "/onChange")
     @ResponseBody
     public Object onChange(Integer oneId) {
@@ -1024,15 +976,9 @@
     @ResponseBody
     public Object freeze(Integer id) {
         try {
-            // 查询门店 获取门店店长id
             TStore store = storeService.getById(id);
-            // 冻结
             store.setState(2);
             storeService.updateById(store);
-            Integer storeStaffId = store.getStoreStaffId();
-            User user = userService.getById(storeStaffId);
-            user.setStatus(2);
-            userService.updateById(user);
             return SUCCESS_TIP;
         }catch (Exception e){
             e.printStackTrace();
@@ -1043,15 +989,9 @@
     @ResponseBody
     public Object unfreeze(Integer id) {
         try {
-            // 查询门店 获取门店店长id
             TStore store = storeService.getById(id);
-            // 解冻
             store.setState(1);
             storeService.updateById(store);
-            Integer storeStaffId = store.getStoreStaffId();
-            User user = userService.getById(storeStaffId);
-            user.setStatus(1);
-            userService.updateById(user);
             return SUCCESS_TIP;
         }catch (Exception e){
             e.printStackTrace();
@@ -1078,7 +1018,13 @@
     public Object pwd(Integer id) {
         try {
             TStore byId = storeService.getById(id);
+            if (byId == null || byId.getStoreStaffId() == null) {
+                return ERROR;
+            }
             User user = userMapper.selectById(byId.getStoreStaffId());
+            if (user == null) {
+                return ERROR;
+            }
             user.setPassword(SecureUtil.md5("a123456"));
             userMapper.updateById(user);
             return SUCCESS_TIP;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
index 38b0835..3cb4f9e 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java
@@ -26,6 +26,8 @@
     private String city;
     @TableField("cityCode")
     private String cityCode;
+    @TableField("managerName")
+    private String managerName;
     private String phone;
     private String address;
     private String lat;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java
index 8c74c44..555a68d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java
@@ -39,7 +39,8 @@
     private BigDecimal score;
     private Integer state;
 
-    private String userName;
+    @TableField("managerName")
+    private String managerName;
 
     /**
      * 列表手机号仅来自 t_store.phone,避免店长账号关联变化影响门店信息展示。
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index b8560ff..e37ea7e 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -34,15 +34,19 @@
         delete from t_store_other_config where id =#{id}
     </delete>
 
-    <select id="listAll" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
+    <!--
+        phone 明确映射为 t_store.phone。不要同时返回两个名为 phone 的列,
+        否则 MyBatis 自动映射可能按 JDBC 列顺序覆盖该字段。
+    -->
+    <resultMap id="storeListResultMap" type="com.dsh.guns.modular.system.model.TStoreListVo" autoMapping="true">
+        <result property="phone" column="storePhone"/>
+    </resultMap>
+
+    <select id="listAll" resultMap="storeListResultMap">
         select t1.*,
-               coalesce(t2.name, t4.name) as userName,
-               coalesce(t1.phone, '') as phone,
+               t1.phone as storePhone,
                t3.name as yysName
         from t_store t1
-        left join sys_user t2 on t1.storeStaffId = t2.id
-        left join (select objectId, max(id) as id from sys_user where objectType = 3 and status != 3 group by objectId) t4_ref on t4_ref.objectId = t1.id
-        left join sys_user t4 on t4_ref.id = t4.id
         left  join t_operator t3 on t1.operatorId = t3.id
         where 1=1
         <if test="provinceCode !=null and provinceCode !=''">
@@ -52,7 +56,7 @@
             and t1.cityCode = #{cityCode}
         </if>
         <if test="name !=null and name !=''">
-            and coalesce(t2.name, t4.name) like concat("%",#{name},"%")
+            and t1.managerName like concat("%",#{name},"%")
         </if>
         <if test="phone !=null and phone !=''">
             and t1.phone like concat("%",#{phone},"%")
@@ -181,15 +185,11 @@
 
 
     </select>
-    <select id="listAllStore" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
+    <select id="listAllStore" resultMap="storeListResultMap">
         select t1.*,
-               coalesce(t2.name, t4.name) as userName,
-               coalesce(t1.phone, '') as phone,
+               t1.phone as storePhone,
                t3.name as yysName
         from t_store t1
-        left join sys_user t2 on t1.storeStaffId = t2.id
-        left join (select objectId, max(id) as id from sys_user where objectType = 3 and status != 3 group by objectId) t4_ref on t4_ref.objectId = t1.id
-        left join sys_user t4 on t4_ref.id = t4.id
         left join t_operator t3 on t1.operatorId = t3.id
         where t1.id =#{id}
         <if test="provinceCode !=null and provinceCode !=''">
@@ -199,7 +199,7 @@
             and t1.cityCode = #{cityCode}
         </if>
         <if test="name !=null and name !=''">
-            and coalesce(t2.name, t4.name) like concat("%",#{name},"%")
+            and t1.managerName like concat("%",#{name},"%")
         </if>
         <if test="phone !=null and phone !=''">
             and t1.phone like concat("%",#{phone},"%")
@@ -209,15 +209,11 @@
         </if>
         order by t1.id desc
     </select>
-    <select id="listAllStoresByIds" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
+    <select id="listAllStoresByIds" resultMap="storeListResultMap">
         select t1.*,
-               coalesce(t2.name, t4.name) as userName,
-               coalesce(t1.phone, '') as phone,
+               t1.phone as storePhone,
                t3.name as yysName
         from t_store t1
-        left join sys_user t2 on t1.storeStaffId = t2.id
-        left join (select objectId, max(id) as id from sys_user where objectType = 3 and status != 3 group by objectId) t4_ref on t4_ref.objectId = t1.id
-        left join sys_user t4 on t4_ref.id = t4.id
         left join t_operator t3 on t1.operatorId = t3.id
         where t1.id in
         <foreach collection="ids" item="id" open="(" separator="," close=")">
@@ -230,7 +226,7 @@
             and t1.cityCode = #{cityCode}
         </if>
         <if test="name !=null and name !=''">
-            and coalesce(t2.name, t4.name) like concat("%",#{name},"%")
+            and t1.managerName like concat("%",#{name},"%")
         </if>
         <if test="phone !=null and phone !=''">
             and t1.phone like concat("%",#{phone},"%")
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
index e32a26d..ea13e10 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html
@@ -65,7 +65,6 @@
                     <#button name="冻结" icon="fa-remove" clickFun="TCompetition.freeze()" space="true"/>
                     <#button name="解冻" icon="fa-remove" clickFun="TCompetition.unfreeze()" space="true"/>
                     <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/>
-                    <#button name="重置密码" icon="fa-remove" clickFun="TCompetition.reload()" space="true"/>
                     @}
                     <#button name="免费福利" icon="fa-remove" clickFun="TCompetition.gift()" space="true"/>
                     <#button name="首页设置" icon="fa-remove" clickFun="TCompetition.indexSet()" space="true"/>
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
index 75243bb..d7ad508 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js
@@ -31,7 +31,7 @@
         },
         {title:  '门店地址', field: 'address', visible: true, align: 'center', valign: 'middle'
         },
-        {title:  '店长姓名', field: 'userName', visible: true, align: 'center', valign: 'middle'
+        {title:  '店长姓名', field: 'managerName', visible: true, align: 'center', valign: 'middle'
         },
         {title:  '店长手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'
         },
diff --git a/sql/V20260930__add_t_store_manager_name.sql b/sql/V20260930__add_t_store_manager_name.sql
new file mode 100644
index 0000000..4765154
--- /dev/null
+++ b/sql/V20260930__add_t_store_manager_name.sql
@@ -0,0 +1,3 @@
+-- 门店资料独立保存店长姓名;员工账号与门店的归属由 sys_user_store 维护。
+ALTER TABLE `t_store`
+    ADD COLUMN `managerName` varchar(64) NULL DEFAULT NULL COMMENT '店长姓名' AFTER `cityCode`;

--
Gitblit v1.7.1