好好编程-物流项目18【客户管理-查询客户】

简介: 好好编程-物流项目18【客户管理-查询客户】

客户管理

查询客户

 客户操作规则

image.png

 业务员只能查看属于自己的客户,操作员和管理员可以查看所有的客户。

image.png

1.常量

image.png

2.创建V_Customer视图

SELECT t1.customer_id
      ,t1.customer_name
      ,t1.address
      ,t1.c_sex
      ,t1.email
      ,t1.base_id
      ,t1.id_card
      ,t1.mobile_phone
      ,t1.order_id
      ,t1.remark
      ,t1.user_id
      ,t2.user_name
      ,t2.real_name
      ,t3.base_name
from t_customer t1
  left join t_user t2
     on t1.user_id = t2.user_id 
  left join t_basicdata t3
      on t1.base_id = t3.base_id

通过视图将对应的业务员姓名和常用区间信息查询了出来,便于展示数据

3.CustomerDto创建

image.png

package com.bobo.dto;
import com.bobo.pojo.Customer;
/**
 * 客户的数据传输对象
 * 
 * @author 波波烤鸭
 *
 * dengpbs@163.com
 */
public class CustomerDto extends BasePage{
  private Customer customer;
  // 业务员
  private String salesMan;
  // 常用区间
  private String interval;
  public Customer getCustomer() {
    return customer;
  }
  public void setCustomer(Customer customer) {
    this.customer = customer;
  }
  public String getSalesMan() {
    return salesMan;
  }
  public void setSalesMan(String salesMan) {
    this.salesMan = salesMan;
  }
  public String getInterval() {
    return interval;
  }
  public void setInterval(String interval) {
    this.interval = interval;
  }
}


4.CustomerMapper.xml

  <resultMap type="com.bobo.dto.CustomerDto" id="baseCustomerDto">
    <id column="customer_id" jdbcType="INTEGER" property="customer.customerId" />
    <result column="order_id" jdbcType="INTEGER" property="customer.orderId" />
    <result column="base_id" jdbcType="INTEGER" property="customer.baseId" />
    <result column="user_id" jdbcType="INTEGER" property="customer.userId" />
    <result column="customer_name" jdbcType="VARCHAR" property="customer.customerName" />
    <result column="mobile_phone" jdbcType="BIGINT" property="customer.mobilePhone" />
    <result column="email" jdbcType="VARCHAR" property="customer.email" />
    <result column="address" jdbcType="VARCHAR" property="customer.address" />
    <result column="id_card" jdbcType="VARCHAR" property="customer.idCard" />
    <result column="c_sex" jdbcType="BIT" property="customer.cSex" />
    <result column="remark" jdbcType="VARCHAR" property="customer.remark" />
    <result column="real_name" jdbcType="VARCHAR" property="salesMan" />
    <result column="base_name" jdbcType="VARCHAR" property="interval" />
  </resultMap>
  <select id="queryView" resultMap="baseCustomerDto" parameterType="com.bobo.pojo.Customer" >
    select 
        t1.customer_id
      ,t1.customer_name
      ,t1.address
      ,t1.c_sex
      ,t1.email
      ,t1.base_id
      ,t1.id_card
      ,t1.mobile_phone
      ,t1.order_id
      ,t1.remark
      ,t1.user_id
      ,t1.user_name
      ,t1.real_name
      ,t1.base_name 
    from v_customer t1
    <where>
      <if test="userId !=null and userId > 0">
        user_id = #{userId}
      </if>
    </where>
  </select>

5.CustomerMapper.java

List<CustomerDto> queryView(Customer record);

6.service层

接口

/**
* 分页查询
 * @param dto
 * @return
 */
public PageInfo<CustomerDto> queryPage(CustomerDto dto,User user);

实现

/**
 * 当前用户如果是  业务员 只能查看所属的客户
 * 如果是 操作员 或者 管理员 能查看所有的客户
 */
@Override
public PageInfo<CustomerDto> queryPage(CustomerDto dto,User user) {
  PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
  // 获取角色信息
  List<Role> list = userService.queryRoleByUserId(user.getUserId());
  boolean flag = false;
  if(list != null && list.size() > 0){
    for (Role role : list) {
      if(Constant.ROLE_ADMIN.equals(role.getRoleName()) 
          || Constant.ROLE_OPERATOR.equals(role.getRoleName())){
        // 拥有操作员或者管理员的身份,查询所有的客户信息
        flag = true;
        break;
      }
    }
  }
  // 业务员 限制查询
  Customer customer = new Customer();
  if(flag == false){
    customer.setUserId(user.getUserId());
  }
  List<CustomerDto> customers = customerMapper.queryView(customer);
  return new PageInfo<>(customers);
}

7.控制器

@RequestMapping("/query")
public String query(CustomerDto dto,Model model){
  // 获取登录用户信息
  User user = (User) SecurityUtils.getSubject().getPrincipal();
  System.out.println("--->"+user.getUserId());
  PageInfo<CustomerDto> list = customerService.queryPage(dto,user);
  model.addAttribute(Constant.PAGE_MODEL, list);
  return "customer/customer";
}

8.Customer.jsp

image.png

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link href="/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    $(".click").click(function() {
      $(".tip").fadeIn(200);
    });
    $(".tiptop a").click(function() {
      $(".tip").fadeOut(200);
    });
    $(".sure").click(function() {
      $(".tip").fadeOut(100);
    });
    $(".cancel").click(function() {
      $(".tip").fadeOut(100);
    });
  });
</script>
</head>
<body>
  <div class="place">
    <span>位置:</span>
    <ul class="placeul">
      <li><a href="#">首页</a></li>
      <li><a href="#">数据表</a></li>
      <li><a href="#">基本内容</a></li>
    </ul>
  </div>
  <div class="rightinfo">
    <div class="tools">
      <ul class="toolbar">
        <li class="click">
          <a href="userUpdate">
            <span>
                <img src="/images/t01.png" />
            </span>
            添加
          </a>
        </li>
        <li class="click"><span><img src="/images/t02.png" /></span>修改</li>
        <li><span><img src="/images/t03.png" /></span>删除</li>
        <li><span><img src="/images/t04.png" /></span>统计</li>
      </ul>
      <ul class="toolbar1">
        <li><span><img src="/images/t05.png" /></span>设置</li>
      </ul>
    </div>
    <table class="tablelist">
      <thead>
        <tr>
          <th><input name="" type="checkbox" value="" checked="checked" /></th>
          <th>编号<i class="sort"><img src="/images/px.gif" /></i></th>
          <th>客户姓名</th>
          <th>客户电话</th>
          <th>邮箱</th>
          <th>性别</th>
          <th>业务员</th>
          <th>常用区间</th>
          <th>身份证号</th>
          <th>通讯地址</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <c:forEach items="${pageModel.list }" var="dto">
          <tr>
            <td><input name="" type="checkbox" value="" /></td>
            <td>${dto.customer.customerId }</td>
            <td>${dto.customer.customerName }</td>
            <td>${dto.customer.mobilePhone }</td>
            <td>${dto.customer.email }</td>
            <td>${dto.customer.cSex eq true?"男":"女" }</td>
            <td>${dto.salesMan }</td>
            <td>${dto.interval }</td>
            <td>${dto.customer.idCard}</td>
            <td>${dto.customer.address }</td>
            <td>
              <a href="/user/userUpdate?id=${dto.customer.customerId }" 
              class="tablelink">修改</a> 
              <a href="javascript:void(0)" onclick="deleteUser(${dto.customer.customerId})" 
              class="tablelink"> 删除</a></td>
          </tr>
        </c:forEach>
      </tbody>
    </table>
      <div class="inline pull-right page" style="margin-top: 20px;">
        <form action="/user/queryPage" id="pager">
          <input type="hidden" name="pageSize" id="pageSize" value="${pageModel.pageSize }">
          <input type="hidden" name="pageNum" id="pageNum" value="${pageModel.pageNum }">
        </form>
        <jsp:include page="/pageBar.jsp"></jsp:include>
      </div>
  </div>
  <script type="text/javascript">
    $('.tablelist tbody tr:odd').addClass('odd');
    function deleteUser(userId){
      if(window.confirm("确定要删除该用户吗?")){
        location.href="/user/delete?id="+userId;
      }
    }
  </script>
</body>
</html>

9.访问测试

业务员访问

管理员访问

image.png

image.png

完成~~


相关文章
|
6天前
|
存储 供应链 数据可视化
宠物公司双旦备战,何种办公软件可优化库存管理?
在冬季双旦节期间,宠物行业的业务量激增,高效的团队协作和学习效率至关重要。合适的办公软件能助力企业在需求预测、库存管理、营销策划等方面顺畅运营。本文推荐6款可视化团队协作办公软件:板栗看板、Trello、Asana、飞书、腾讯文档和石墨文档。这些软件各具特色,如板栗看板的直观数据呈现、Trello的插件拓展、Asana的强大项目管理、飞书的实时协作文档、腾讯文档的便捷模板和石墨文档的深度协作功能,帮助宠物企业提升工作效率,实现业绩增长。
21 5
|
1月前
|
BI 项目管理 调度
多部门协作难题如何解决?试试这5款营销项目管理软件
本文介绍了五款高效的项目管理和团队协作工具:板栗看板、ClickUp、Basecamp、Wrike 和 Smartsheet。这些工具通过灵活的任务管理、实时进度跟踪、透明的跨团队协作等功能,有效解决了市场营销活动中常见的需求变更频繁和沟通不畅问题,帮助团队在复杂环境中保持高效运转。
多部门协作难题如何解决?试试这5款营销项目管理软件
|
安全
dapp互助预约排单抢单项目系统开发规则玩法/逻辑说明/案例介绍/方案设计/源码程序
The development of DApp appointment and scheduling mutual assistance system refers to the development of a mutual assistance system based on blockchain technology and decentralized application programs (DApp). This system is usually designed as a mutual aid or sharing economy model, aimed at providi
|
7月前
|
新零售 人工智能 大数据
良久团购新零售系统模式开发|成熟技术|案例详情
由此看来,新零售是指利用大数据、人工智能等新兴技术,以满足顾客的需求为目标,将整个零售行业的产业链进行智能化升级。
|
Web App开发 数据管理 定位技术
合工大现代企业管理期末报告--阿里巴巴企业管理模式探究
合工大现代企业管理期末报告--阿里巴巴企业管理模式探究
215 0
合工大现代企业管理期末报告--阿里巴巴企业管理模式探究
|
安全 区块链 数据库
互助拍卖竞拍抢单模式系统开发项目方案丨DAPP拍卖竞拍抢拍互助系统开发(案例开发)/开发逻辑/源码运营版
    dapp的开发和运行基于智能合约,智能合约是一种运行在区块链上的自动执行合约,它可以实现自动化的交易和管理逻辑,And automatically supervise and execute according to the set rules.Dapp achieves decentralized data storage,business logic,and value exchange through smart contracts.
|
SQL JSON 前端开发
校园外卖点餐系统——Day02【员工管理业务开发】
校园外卖点餐系统——Day02【员工管理业务开发】
158 0
校园外卖点餐系统——Day02【员工管理业务开发】
|
搜索推荐 SEO
外贸业务客户开发「途径详情」
扩大找客户的各种途径和方法,例如通过skype. facebook, google. B2B平台、展会,外贸开发客户软件,广交会买家数据,或者是通过海关数据找客户。
229 0
|
网络协议 测试技术 Go
客户管理系统-删除客户|学习笔记
快速学习客户管理系统-删除客户
客户管理系统-删除客户|学习笔记
|
网络协议 测试技术 Go
客户管理系统-修改客户和作业|学习笔记
快速学习客户管理系统-修改客户和作业