JBMS www. s o f t 8 6 .cn
文档/Doc
JBMS完整案例:客户管理-客户列表

须知一:此篇文档内容基于文档:[客户管理-准备工作];

说明二:通过[客户管理-准备工作]客户列表的开发工作是基于已创建好的代码结构上进行局部性的完善即可;

须知三:此篇文档将以[客户管理]中描述说明JBMS中如何开发一个数据列表页面,列表页面由顶部数据查询栏、顶部按钮栏、数据分页列表、表格行操作区组成,形成一套列表查询数据、新建数据、编辑数据、删除数据、设置数据状态等基础功能;

目录

--step 1(jbms.api完善数据载体类-即实体Bean)

--step 2(jbms.api 数据列表业务逻辑实现)

--step 3(jbms.web 完成数据列表功能)

--step 4(客户管理的列表开发完成了,下一步登录jbms.web验证)

step 1(jbms.api完善数据载体类-即实体Bean):

1、完善属性,添加如:customerName、customerPhone、customerEmail等;

2、完整代码请下载jbms源码包查看,关键代码如下:代码右上角可点击copy按钮复制当前代码段;

api.domain.customer.Customer


@ApiModelProperty(notes = "客户名称")
@Column(name = "CUSTOMER_NAME", columnDefinition = "VARCHAR(50) DEFAULT '' COMMENT '客户名称'")
private String customerName;

@ApiModelProperty(notes = "客户电话")
@Column(name = "CUSTOMER_PHONE", columnDefinition = "VARCHAR(50) DEFAULT '' COMMENT '客户电话'")
private String customerPhone;

@ApiModelProperty(notes = "客户邮箱")
@Column(name = "CUSTOMER_EMAIL", columnDefinition = "VARCHAR(50) DEFAULT '' COMMENT '客户邮箱'")
private String customerEmail;

@ApiModelProperty(notes = "联系人")
@Column(name = "CONTACT", columnDefinition = "VARCHAR(10) DEFAULT '' COMMENT '联系人'")
private String contact;

@ApiModelProperty(notes = "联系人手机号码")
@Column(name = "CONTACT_PHONE", columnDefinition = "VARCHAR(20) DEFAULT '' COMMENT '联系人手机号码'")
private String contactPhone;

@ApiModelProperty(notes = "客户对应省")
@Column(name = "ADDR_PROVINCE", columnDefinition = "VARCHAR(20) DEFAULT '' COMMENT '客户对应省'")
private String addrProvince;

@ApiModelProperty(notes = "客户对应市")
@Column(name = "ADDR_CITY", columnDefinition = "VARCHAR(50) DEFAULT '' COMMENT '客户对应市'")
private String addrCity;

@ApiModelProperty(notes = "客户对应区")
@Column(name = "ADDR_COUNTY", columnDefinition = "VARCHAR(50) DEFAULT '' COMMENT '客户对应区'")
private String addrCounty;

@ApiModelProperty(notes = "客户对应详细地址")
@Column(name = "ADDR_DESC", columnDefinition = "VARCHAR(100) DEFAULT '' COMMENT '客户对应详细地址'")
private String addrDesc;

@ApiModelProperty(notes = "登录账户")
@Column(name = "LOGIN_ACCOUNT",columnDefinition="VARCHAR(50) DEFAULT '' COMMENT '登录账户'")
private String loginAccount;

@ApiModelProperty(notes = "登录账户密码")
@Column(name = "LOGIN_PWD",columnDefinition="VARCHAR(50) DEFAULT '' COMMENT '登录账户密码'")
private String loginPwd;

@Column(name = "LOGIN_COUNT",columnDefinition="INT COMMENT '登录次数'")
private Integer loginCount = 0;

@Column(name = "LOGIN_IP",columnDefinition="NVARCHAR(50)  COMMENT '本次用户登录IP'")
private String loginIp;

@Column(name = "LOGIN_DATE_TIME",columnDefinition="NVARCHAR(50)  COMMENT '本次用户登录日期时间'")
private String loginDateTime;

@Column(name = "LOGIN_BEFORE_IP",columnDefinition="NVARCHAR(50)  COMMENT '上次用户登录IP'")
private String loginBeforeIp;

@Column(name = "LOGIN_BEFORE_DATETIME",columnDefinition="NVARCHAR(50)  COMMENT '上次用户登录日期时间'")
private String loginBeforeDateTime;

step 2(jbms.api 数据列表业务逻辑实现):

1、api.serviceimpl.customer.CustomerServiceImpl 重写:pageAdmin(JSONObject jparam)

2、jbms.api中的所有与API层通信的方法都约定参数为:JSONObject,返回数据类型为:HttpResult;

3、完整代码请下载jbms源码包查看,关键代码如下:代码右上角可点击copy按钮复制当前代码段;

api.serviceimpl.customer.CustomerServiceImpl


@Override
public HttpResult pageAdmin(JSONObject jparam) throws ServiceException {
	Integer page = 1;
	Integer rows = 10;
	if(StringUtils.isNotNull(jparam.get(EText.page.text))){
		page = jparam.getInteger(EText.page.text);
	}
	if(StringUtils.isNotNull(jparam.get(EText.rows.text))){
		rows = jparam.getInteger(EText.rows.text);
	}

	PageHelper.startPage(page, rows);

	Example example = new Example(Customer.class);
	example.setOrderByClause(" MODIFY_TIMESTAMP DESC ");
	Criteria criteria = example.createCriteria();
	criteria.andCondition(CriteriaFactory.stateData());
	if(getAssertUtil().isNotNull(jparam.get(EText.searchTxt.text))){
		criteria.andCondition(CriteriaFactory.searchCustomer(jparam.getString(EText.searchTxt.text)));
	}
	if(getAssertUtil().isNotNull(jparam.get(EText.searchDate.text))){
		String startDate = jparam.getString(EText.searchDate.text).substring(0,10);
		String endDate = jparam.getString(EText.searchDate.text).substring(13);
		criteria.andCondition(CriteriaFactory.createDateRang(startDate,endDate));
	}

	List<Customer> list = this.customerMapper.selectByExample(example);
	return HttpResult.successPage(new PageInfo<>(list));
}

step 3(jbms.web 完成数据列表功能):

说明:jbms.web 页面组件采用Layui,可访问Layui官网了解如何使用,源码中也有完整的代码供参数;

1、编辑JS:src/main/resources/static/js/view.js

2、编辑处1:pageJsObj.initTbl(),修改cols属性将表格列与api.domain.customer.Customer中的属性对接(需要显示哪些属性就对接哪些属性)

3、编辑处2:pageJsObj.reloadTbl(),修改pageJsObj.ctable.reload()中的属性url,对应api_config.js配置 page:http_model.customer+"page",

编辑处1:


,cols: [[
	{type:'checkbox',fixed: 'left'}
	,{field:'customerName', title: '客户名称', width:180,sort: true}
	,{field:'loginAccount', title: '登录账户', width:120,sort: true}
	,{field:'apiContact', title: '联系人', width:170, sort: true
		,templet: function(d){
			return '<span>'+d.contact+'/'+d.contactPhone+'</span>';
		}
	}
	,{field:'customerPhone', title: '客户电话', width:150,sort: true}
	,{field:'customerEmail', title: '客户邮箱',width:280,sort: true}
	,{field:'addrCity', title: '地址', sort: true
		,templet: function(d){
			return '<span>'+d.addrProvince+'-'+d.addrCity+'-'+d.addrCounty+'-'+d.addrDesc+'</span>';
		}
	}
	,{field:'stateBuss', title: '状态', width:90, sort: true
		,templet: function(d){
			if(d.stateBuss == 1)
			{
				return '<span style="color: #1E9FFF;">有效</span>';
			}else if(d.stateBuss == 2)
			{
				return '<span style="color: #FFB800;">失效</span>';
			}else{
				return '<span style="color: #FF5722;">未知状态</span>';
			}
		}
	}
	,{fixed: 'right', title:'操作', toolbar: '#barCustomer', width:100}
]]
,id: 'idTblXXX'
});

编辑处2:


	pageJsObj.ctable.reload('idTblXXX', {
		where: param
		,url: api_config.customer.page
	});

step 4(客户管理的列表开发完成了,下一步登录jbms.web验证):

说明:jbms.web 页面组件采用Layui,可访问Layui官网了解如何使用,源码中也有完整的代码供参数;

1、登录jbms.web URL:http://localhost:8088/jbms.web/ ;

2、使用超级管理员身份登录(无需配置权限等); 使用其它用户,参考文档:系统用户及权限

3、进入系统后,点击顶部模块栏[客户],加载下左侧菜单,菜单路径:客户管理-客户列表 下右主操作区就打开Tab卡页面;

4、初始数据库脚本中写入了一条客户数据,可点击表格顶部按钮[加载数据] 分页加载客户数据;

5、[新增客户] 请参考文档:新增客户;