专栏首页波波烤鸭好好编程-物流项目19【客户管理-更新客户】

好好编程-物流项目19【客户管理-更新客户】

客户管理

更新客户

  更新规则如下

角色

规则

业务员

可以修改客户的基本信息,但不能调整客户对应的业务员

操作员

可以修改客户的基本信息,但不能调整客户对应的业务员

管理员

可以修改客户的基本信息,也可以调整客户对应的业务员

1.实现效果

1.1 业务员操作效果

1.2 管理员操作效果

2.实现步骤

2.1 customer.jsp

  改变修改按钮的地址信息

<a href="/customer/customerUpdate?id=${dto.customer.customerId }" class="tablelink">修改</a> 

2.2 CustomerController

  内容不用改变,和添加的时候一样

@RequestMapping("/customerUpdate")
public String customerUpdate(Integer id,Model model){
	customerService.getUpdateInfo(id, model);
	return "customer/customerUpdate";
}

2.2 CustomerServiceImpl

注意:和添加时有调整

/**
 * 新增客户
 *    查询 所有的角色是业务员的用户
 *    查询 常用区间 基础数据
 * 修改客户
 * 	      查询 所有的角色是业务员的用户
 *    查询 常用区间 基础数据
 *    根据客户ID 查询详细信息
 */
@Override
public void getUpdateInfo(Integer id, Model m) {
	// 1.查询所有具有业务员角色的用户信息
	List<User> users = userService.queryUserByRoleName(Constant.ROLE_SALESMAN);
	// 2.查询 常用区间的基础数据
	List<BasicData> intervals = basicService.getBasicDataByParentName(Constant.BASIC_COMMON_INTERVAL);
	if(id!=null && id > 0){
		Customer customer = new Customer();
		customer.setCustomerId(id);
		// 查询更新需要的数据
		List<CustomerDto> list = customerMapper.queryView(customer);
		if(list != null&& list.size()==1){
			m.addAttribute("dto", list.get(0));
		}
	}
	m.addAttribute("users", users);
	m.addAttribute("intervals", intervals);
}

2.3 CustomerMapper.xml

  给queryView添加了查询条件

  <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>
  		<if test="customerId !=null and customerId > 0 ">
  			customer_id = #{customerId}
  		</if>
  	</where>
  </select>

2.4 customerUpdate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %>
<!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" />
<link href="/css/select.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery.idTabs.min.js"></script>
<script type="text/javascript" src="/js/select-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $(".select1").uedSelect({
		width : 345			  
	});
	$(".select2").uedSelect({
		width : 167  
	});
	$(".select3").uedSelect({
		width : 100
	});
});
</script>
</head>
<body>
	<div class="place">
		<span>位置:</span>
		<ul class="placeul">
			<li><a href="/">首页</a></li>
			<li><a href="/user/query">客户管理</a></li>
		</ul>
	</div>
	<div class="formbody">

		<div class="formtitle">
			<span>新增客户信息</span>
		</div>
		<form action="/customer/saveOrUpdate">
			<ul class="forminfo">
				<input type="hidden" name="customerId" value="${dto.customer.customerId}">
				<li><label>客户姓名</label>
					<input name="customerName"  type="text" value="${dto.customer.customerName}" class="dfinput" />
					<i></i>
				</li>
				<li><label>客户电话</label>
					<input name="mobilePhone" type="text" value="${dto.customer.mobilePhone}" class="dfinput" />
				</li>
				<li><label>性别 ${dto.customer.cSex}</label>
					<input type="radio" name="cSex" value="0"  ${dto.customer.cSex eq true?"checked":"" }>&nbsp;男 
					<input type="radio" name="cSex" value="1" ${dto.customer.cSex eq false?"checked":"" }>&nbsp;女
				</li>
				
				<li><label>电子邮箱</label>
					<input name="email" type="text" class="dfinput" value="${dto.customer.email}"/><i></i>
				</li>
				<li><label>通讯地址</label>
					<input name="address" type="text" class="dfinput"  value="${dto.customer.address}"/><i></i>
				</li>
				<li><label>身份证号码</label>
					<input name="idCard" type="text" class="dfinput"  value="${dto.customer.idCard}"/><i></i>
				</li>
				
				<li><label>业务员</label>
					<div class="vocation">
					    <select class="select1" name="userId">
					    <!-- 和新增客户区分开 -->
					    <c:if test="${empty dto}">
					    	<c:forEach items="${ users}" var="user">
						    	<option value="${user.userId }" >
						    		${user.realName }
						    	</option>
						    </c:forEach>
					    </c:if>
					    <c:if test="${not empty dto }">
						    <shiro:hasAnyRoles name="业务员,操作员">
						    	<option value="${dto.customer.userId }" >${dto.salesMan }</option>
						    </shiro:hasAnyRoles>
						    <shiro:hasRole name="管理员">
							    <c:forEach items="${ users}" var="user">
							    	<option value="${user.userId }" ${user.userId eq dto.customer.userId?"selected":"" } >
							    		${user.realName }
							    	</option>
							    </c:forEach>
						    </shiro:hasRole>
					    </c:if>
					    </select>
					</div>
					<i></i>
				</li>
				<li><label>常用区间</label>
					<div class="vocation">
					    <select class="select1" name="baseId">
					    <c:forEach items="${ intervals}" var="it">
					    	<option value="${it.baseId }" ${it.baseId eq dto.customer.baseId?"selected":"" }>
					    		${it.baseName }
					    	</option>
					    </c:forEach>
					    </select>
					</div>
					<i></i>
				</li>
				 <li><label>备注</label>
				 	<textarea name="remark" cols="" rows="" class="textinput" >
				 		${dto.customer.remark }
				 	</textarea>
				 </li>
				<li><label>&nbsp;</label>
					<input name="" type="submit"
					class="btn" value="确认保存" /></li>
				</ul>
		</form>
		
	</div>
	<div style="display: none">
		<script src='http://v7.cnzz.com/stat.php?id=155540&web_id=155540'
			language='JavaScript' charset='gb2312'></script>
	</div>
</body>
</html>

2.5 CustomerController

  保存修改的内容

@RequestMapping("/saveOrUpdate")
public String saveOrUpdate(Customer customer) throws IOException{
	if(customer.getCustomerId()!=null && !"".equals(customer.getCustomerId())){
		// 更新
		customerService.updateCustomer(customer);
	}else{
		// 添加
		customerService.addCustomer(customer);
	}
	return "success";
}

2.6 ICustomerService

public void updateCustomer(Customer customer)

2.7 CustomerServiceImpl

@Override
public void updateCustomer(Customer customer) {
	// TODO Auto-generated method stub
	customerMapper.updateByPrimaryKey(customer);
}

ok 实现~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 好好编程-物流项目08【整合静态资源文件】

    链接:https://pan.baidu.com/s/1Uby-aPIAa55tci-HjTXYzg 提取码:vm8v 解压后的目录:

    用户4919348
  • 好好编程-物流项目10【用户管理-查询和添加】

    因为logistics-manager-service的代码修改了所以需要install下,别忘了,如果提示报错就在来一次,如果还报错请检查。

    用户4919348
  • shiro教程5(整合SSM项目-认证)

    注意shiro的配置可以添加在spring的配置文件中。但是为了便于管理我们再单独创建一个shiro的配置文件,里面的Schema还是spring的。

    用户4919348
  • 错误日志告警实战

    如果不差钱,更系统更完善的解决方案,我首先想到的是CAT,它不但能实现错误告警,且更加智能,告警的错误间隔,错误告警内容,QPS告警等等方式更多样化,还能查看接...

    老梁
  • 魔法CSS(1)——消失的list-style

    keyWords
  • JS 10个 常用的技巧和鲜为人知的特性

    JS是一门发展迅速的语言,正因如此,有些新的特性和功能,咱们没有办法在第时间内知道。在这篇文章中,咱们主要探讨一些少有人知道的特性还有一些常用技巧。

    前端小智@大迁世界
  • 分享:12个CSS小技巧,让你的代码简洁高效

    你不需要分别添加 line-height 到每个 <p>,<h*>等。只要添加到 body 即可:

    德顺
  • 申请高级项目经理

    要评计算机系统集成项目经理必须先考软考的系统集成项管理工程师,如果想评计算机系统集成高级项目经理必须考软考的信息系统项目管理师。考试一年2次,每年的5月下旬和1...

    庞小明
  • 两分钟让你明白Go中如何继承

    最近在重构代码的时候,抽象了大量的接口。也使用这些抽象的接口做了很多伪继承的操作,极大的减少了代码冗余,同时也增加了代码的可读性。

    SH的全栈笔记
  • maven 多个jar包版本依赖问题

      maven 中使用jar包的多个版本容易造成依赖问题,解决问题的方式可以将使用jar包的版本排除掉,比如dubbo使用netty 4.0.33版本可以将du...

    杉枫

扫码关注云+社区

领取腾讯云代金券