From 9088c470c3530ff8a4d2063f4363cae07449b722 Mon Sep 17 00:00:00 2001 From: 19173159168 Date: Tue, 29 Jul 2025 23:36:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E5=BA=97=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ZcBaseUserController.java | 20 ++++++ .../com/ruoyi/baseUser/domain/ZcBaseUser.java | 2 - .../baseUser/mapper/ZcBaseUserMapper.java | 5 ++ .../baseUser/service/IZcBaseUserService.java | 5 ++ .../service/impl/ZcBaseUserServiceImpl.java | 39 ++++++++-- .../controller/CompanyStoreController.java | 7 ++ .../mapper/baseUser/ZcBaseUserMapper.xml | 30 ++++++-- .../templates/baseUser/user/edit.html | 72 +++++++++++-------- .../templates/baseUser/user/user.html | 10 +-- .../operation/store/addStoreUser.html | 72 +++++++++++++++---- 10 files changed, 203 insertions(+), 59 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/controller/ZcBaseUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/controller/ZcBaseUserController.java index 4d9a1d4..5bb4295 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/controller/ZcBaseUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/controller/ZcBaseUserController.java @@ -1,6 +1,9 @@ package com.ruoyi.baseUser.controller; import java.util.List; + +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.utils.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -124,4 +127,21 @@ public class ZcBaseUserController extends BaseController { return toAjax(zcBaseUserService.deleteZcBaseUserByIds(ids)); } + + @PostMapping("/removeStore") + @ResponseBody + public AjaxResult removeStore(Long id) { + try { + // 验证参数 + if (id == null) { + return AjaxResult.error("参数错误"); + } + // 调用Service删除关联记录 + zcBaseUserService.deleteZcBaseUserStoreById(id); + return AjaxResult.success("删除成功"); + } catch (Exception e) { + logger.error("删除用户门店关联记录失败", e); + return AjaxResult.error("删除失败"); + } + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/domain/ZcBaseUser.java b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/domain/ZcBaseUser.java index 225ec3a..6094cde 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/domain/ZcBaseUser.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/domain/ZcBaseUser.java @@ -24,11 +24,9 @@ public class ZcBaseUser extends BaseEntity private String userName; /** 头像 */ - @Excel(name = "头像") private String avatarUrl; /** 密码 */ - @Excel(name = "密码") private String password; /** 手机号 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/mapper/ZcBaseUserMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/mapper/ZcBaseUserMapper.java index 6ac3ce4..6a86213 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/mapper/ZcBaseUserMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/mapper/ZcBaseUserMapper.java @@ -28,6 +28,9 @@ public interface ZcBaseUserMapper */ public List selectZcBaseUserList(ZcBaseUser zcBaseUser); + public List selectZcBaseUserByStoreId(Long storeId); + + public ZcBaseUser selectZcBaseUserByPhone(String phone); /** * 新增租车用户信息 * @@ -84,4 +87,6 @@ public interface ZcBaseUserMapper * @return 结果 */ public int deleteZcBaseUserStoreByUserId(Long id); + + public int deleteZcBaseUserStoreById(Long id); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/IZcBaseUserService.java b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/IZcBaseUserService.java index 43759d4..10031cd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/IZcBaseUserService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/IZcBaseUserService.java @@ -27,6 +27,9 @@ public interface IZcBaseUserService */ public List selectZcBaseUserList(ZcBaseUser zcBaseUser); + + public List selectZcBaseUserByStoreId(Long storeId); + /** * 新增租车用户信息 * @@ -58,4 +61,6 @@ public interface IZcBaseUserService * @return 结果 */ public int deleteZcBaseUserById(Long id); + + public int deleteZcBaseUserStoreById(Long id); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/impl/ZcBaseUserServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/impl/ZcBaseUserServiceImpl.java index 68c6b8a..f9e795f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/impl/ZcBaseUserServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/baseUser/service/impl/ZcBaseUserServiceImpl.java @@ -52,6 +52,11 @@ public class ZcBaseUserServiceImpl implements IZcBaseUserService return zcBaseUserMapper.selectZcBaseUserList(zcBaseUser); } + @Override + public List selectZcBaseUserByStoreId(Long storeId){ + return zcBaseUserMapper.selectZcBaseUserByStoreId(storeId); + } + /** * 新增租车用户信息 * @@ -62,13 +67,28 @@ public class ZcBaseUserServiceImpl implements IZcBaseUserService @Override public int insertZcBaseUser(ZcBaseUser zcBaseUser) { - String md5Hexpwd = DigestUtils.md5Hex(zcBaseUser.getPassword()); - zcBaseUser.setPassword(md5Hexpwd); - zcBaseUser.setIsStore(1L); - zcBaseUser.setCreateTime(DateUtils.getNowDate()); - int rows = zcBaseUserMapper.insertZcBaseUser(zcBaseUser); - insertZcBaseUserStore(zcBaseUser); - return rows; + + ZcBaseUser oldUser = zcBaseUserMapper.selectZcBaseUserByPhone(zcBaseUser.getPhoneNumber()); + if(oldUser != null) { + // 如果用户存在,只修改门店用户标识 + ZcBaseUser a = new ZcBaseUser(); + a.setId(oldUser.getId()); + a.setIsStore(1L); + a.setUpdateTime(DateUtils.getNowDate()); + int rows = zcBaseUserMapper.updateZcBaseUser(a); + // 然后绑定与门店的关联 + oldUser.setZcBaseUserStoreList(zcBaseUser.getZcBaseUserStoreList()); + insertZcBaseUserStore(oldUser); + return rows; + }else{ + String md5Hexpwd = DigestUtils.md5Hex(zcBaseUser.getPassword()); + zcBaseUser.setPassword(md5Hexpwd); + zcBaseUser.setIsStore(1L); + zcBaseUser.setCreateTime(DateUtils.getNowDate()); + int rows = zcBaseUserMapper.insertZcBaseUser(zcBaseUser); + insertZcBaseUserStore(zcBaseUser); + return rows; + } } /** @@ -139,4 +159,9 @@ public class ZcBaseUserServiceImpl implements IZcBaseUserService } } } + + @Override + public int deleteZcBaseUserStoreById(Long id) { + return zcBaseUserMapper.deleteZcBaseUserStoreById(id); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/CompanyStoreController.java b/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/CompanyStoreController.java index 3c8ca50..1a5a4e4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/CompanyStoreController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/operation/controller/CompanyStoreController.java @@ -2,6 +2,8 @@ package com.ruoyi.operation.controller; import java.util.List; +import com.ruoyi.baseUser.domain.ZcBaseUser; +import com.ruoyi.baseUser.service.IZcBaseUserService; import com.ruoyi.common.constant.CompanyConstants; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -37,6 +39,9 @@ public class CompanyStoreController extends BaseController private ICompanyStoreService companyStoreService; @Autowired private ICompanyService companyService; + @Autowired + private IZcBaseUserService zcBaseUserService; + @RequiresPermissions("operation:store:view") @GetMapping() @@ -152,6 +157,8 @@ public class CompanyStoreController extends BaseController CompanyStore companyStore = companyStoreService.selectCompanyStoreById(id); mmap.put("companyStore", companyStore); + List zcBaseUserList = zcBaseUserService.selectZcBaseUserByStoreId(id); + mmap.put("zcBaseUserList", zcBaseUserList); return prefix + "/addStoreUser"; } diff --git a/ruoyi-admin/src/main/resources/mapper/baseUser/ZcBaseUserMapper.xml b/ruoyi-admin/src/main/resources/mapper/baseUser/ZcBaseUserMapper.xml index 74446ad..40c4264 100644 --- a/ruoyi-admin/src/main/resources/mapper/baseUser/ZcBaseUserMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/baseUser/ZcBaseUserMapper.xml @@ -29,6 +29,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -55,15 +57,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and alipay_userid = #{alipayUserid} - - select a.id, a.user_name, a.avatar_url, a.password, a.phone_number, a.role_id, a.is_store, a.nick_name, a.wechat_openid, a.alipay_userid, a.del_flag, a.create_time, a.update_time, - b.id as sub_id, b.user_id as sub_user_id, b.operator_id as sub_operator_id, b.store_id as sub_store_id + b.id as sub_id, b.user_id as sub_user_id, b.operator_id as sub_operator_id, b.store_id as sub_store_id, b.create_time as sub_create_time from zc_base_user a left join zc_base_user_store b on b.user_id = a.id + where a.del_flag = '0' and b.store_id = #{storeId} + + + - + + insert into zc_base_user @@ -137,6 +155,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from zc_base_user_store where user_id = #{userId} + + DELETE FROM zc_base_user_store WHERE id = #{id} + + insert into zc_base_user_store( id, user_id, operator_id, store_id, del_flag, create_by, create_time, update_by, update_time) values diff --git a/ruoyi-admin/src/main/resources/templates/baseUser/user/edit.html b/ruoyi-admin/src/main/resources/templates/baseUser/user/edit.html index d3e2827..027ccca 100644 --- a/ruoyi-admin/src/main/resources/templates/baseUser/user/edit.html +++ b/ruoyi-admin/src/main/resources/templates/baseUser/user/edit.html @@ -56,7 +56,8 @@ -

用户门店信息

+
+

用户归属门店信息

@@ -107,30 +108,18 @@ { field: 'storeName', align: 'center', - title: '关联门店', - formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); - return html; - } + title: '关联门店' }, { field: 'operatorName', align: 'center', - title: '门店所属运营商', - formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); - return html; - } + title: '门店所属运营商' }, { field: 'createTime', align: 'center', - title: '创建时间', - formatter: function(value, row, index) { - var html = $.common.sprintf("", index, value); - return html; - } + title: '创建时间' }, { @@ -145,20 +134,45 @@ $.table.init(options); }); - function addRow() { - var count = $("#" + table.options.id).bootstrapTable('getData').length; - var row = { - index: $.table.serialNumber(count), - operatorId: "", - storeId: "", - delFlag: "", - createBy: "", - createTime: "", - updateBy: "", - updateTime: "", + var sub = { + + delRowByIndex: function(index) { + // 获取表格数据 + var data = $("#" + table.options.id).bootstrapTable('getData'); + var row = data[index-1]; // 序号从1开始,数组索引从0开始 + + // 如果该行数据有ID,说明是已存在的记录,需要调用后台删除 + if (row && row.id) { + // 调用后台删除接口 + $.ajax({ + type: "POST", + url: prefix + "/removeStore", + data: { + "id": row.id, + "userId": $("input[name='id']").val() + }, + success: function(result) { + if (result.code == web_status.SUCCESS) { + // 后台删除成功后,移除前端表格行 + $("#" + table.options.id).bootstrapTable('removeByUniqueId', row.id); + $.modal.msgSuccess("删除成功"); + } else { + $.modal.msgError(result.msg); + } + }, + error: function() { + $.modal.msgError("删除失败"); + } + }); + } else { + // 如果是新增但未保存的行,直接在前端移除 + $("#" + table.options.id).bootstrapTable('remove', { + field: 'index', + values: [index] + }); + } } - sub.addRow(row); - } + }; \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/baseUser/user/user.html b/ruoyi-admin/src/main/resources/templates/baseUser/user/user.html index a980e4b..934938c 100644 --- a/ruoyi-admin/src/main/resources/templates/baseUser/user/user.html +++ b/ruoyi-admin/src/main/resources/templates/baseUser/user/user.html @@ -44,9 +44,9 @@
- - 添加 - + + + @@ -124,8 +124,8 @@ align: 'center', formatter: function(value, row, index) { var actions = []; - actions.push('编辑 '); - actions.push('删除'); + actions.push('编辑 '); + actions.push('删除'); return actions.join(''); } }] diff --git a/ruoyi-admin/src/main/resources/templates/operation/store/addStoreUser.html b/ruoyi-admin/src/main/resources/templates/operation/store/addStoreUser.html index ca5f789..c7ed1a6 100644 --- a/ruoyi-admin/src/main/resources/templates/operation/store/addStoreUser.html +++ b/ruoyi-admin/src/main/resources/templates/operation/store/addStoreUser.html @@ -6,8 +6,8 @@
- - + +
@@ -33,16 +33,13 @@
-
- -
- -
-
-
- -
- +
+

门店用户

+
+
+
+
+
@@ -59,6 +56,57 @@ $.operate.save(prefix + "/add", $('#form-user-add').serialize()); } } + + + $(function() { + var options = { + data: [[${zcBaseUserList}]], + pagination: false, + showSearch: false, + showRefresh: false, + showToggle: false, + showColumns: false, + sidePagination: "client", + columns: [{ + checkbox: false + }, + { + field: 'index', + align: 'center', + title: "序号", + formatter: function (value, row, index) { + var columnIndex = $.common.sprintf("", $.table.serialNumber(index)); + return columnIndex + $.table.serialNumber(index); + } + }, + + + { + field: 'userName', + align: 'center', + title: '用户名' + }, + + { + field: 'phoneNumber', + align: 'center', + title: '手机号' + }, + { + field: 'nickName', + align: 'center', + title: '昵称' + }, + { + field: 'createTime', + align: 'center', + title: '创建时间' + }, + ] + }; + $.table.init(options); + }); + \ No newline at end of file