刘帅
2026-09-30 4e8cadb13ebd6f01b8cf6d5cc89757cf8e960792
门店管理修改
1个文件已添加
6个文件已修改
127 ■■■■■ 已修改文件
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/TStoreMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/V20260930__add_t_store_manager_name.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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;
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,避免店长账号关联变化影响门店信息展示。
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},"%")
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"/>
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'
        },
sql/V20260930__add_t_store_manager_name.sql
New file
@@ -0,0 +1,3 @@
-- 门店资料独立保存店长姓名;员工账号与门店的归属由 sys_user_store 维护。
ALTER TABLE `t_store`
    ADD COLUMN `managerName` varchar(64) NULL DEFAULT NULL COMMENT '店长姓名' AFTER `cityCode`;