营销机会管理页面跳转

<a href="javascript:openTab('营销机会管理','saleChance/index/1','icon-yxjhgl')" class="easyui-linkbutton" data-options="plain:true,iconCls:'icon-yxjhgl'" style="width: 150px">营销机会管理</a>

点击发送请求saleChance/index/1到后台

这里的1采用了restful风格

Controller层

@RequestMapping("index/{state}")
public String index(@PathVariable Integer state){
if (state == 1){
return "sale_chance";
}else if (state == 2){
return "cus_dev_plan";
}
return "error";
}

重点:index/{state},在形参上加上了注解:@PathVariable integer state

通过判断state的值,转入不同的页面 ,这里转入的是营销机会管理

页面的数据显示

打开页面触发

url="${ctx}/saleChance/querySaleChancesByParams"

发送请求,进入Controller层

@RequestMapping("querySaleChancesByParams")
@ResponseBody
public Map<String,Object>querySaleChancesByParams(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer rows, SaleChanceQuery query){
query.setPageNum(page);
query.setPageSize(rows);
return saleChanceService.queryForPage(query);
}

通过map的方式,按照键值对的形式进行存取,

注解@RequestParam(defaultValue = ) 设置参数的默认值

根据前台需要的参数类型,创建一个SaleChanceQuery

其中由于很多页面都需要有 pageNum 和pageSize 进行封装了BaseQuery

BaseQuery

private Integer pageNum=1;
private Integer pageSize=10;

SaleChanceQuery

private String customerName;  //客户名
private Integer state; //开发状态
private Integer devResult; //开发结果
private String createDate; //创建时间

其中将时间改为String类型,由于前台的参数传递的是String类型,使用Date会发生类型转换错误

封装BaseService分页操作

public Map<String,Object> queryForPage(BaseQuery baseQuery) throws  DataAccessException{
PageHelper.startPage(baseQuery.getPageNum(),baseQuery.getPageSize());
List<T> entities=baseDao.queryByParams(baseQuery);
PageInfo<T> pageInfo=new PageInfo<T>(entities);
Map<String,Object> map=new HashMap<String,Object>();
map.put("total",pageInfo.getTotal());
map.put("rows",pageInfo.getList());
return map;
}


使用了SpringMVC分页的PageHelper,传递num和size参数,



通过BaseDao查询接口的BaseDao

public  List<T> queryByParams(BaseQuery baseQuery) throws  DataAccessException;

同时BaseService,多条件查询

public PageInfo<T> queryByParams(BaseQuery baseQuery) throws  DataAccessException{
PageHelper.startPage(baseQuery.getPageNum(),baseQuery.getPageSize());
List<T> entities=baseDao.queryByParams(baseQuery);
return new PageInfo<T>(entities);
}


数据查询
SaleChanceMapper.xml

<select id="queryByParams" parameterType="saleChanceQuery" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM t_sale_chance
<where>
is_valid=1
<if test="null != customerName and ''!=customerName">
AND customer_name LIKE concat('%',#{customerName},'%')
</if>
<if test="null != state">
AND state=#{state}
</if>
<if test="null != devResult ">
and dev_result=#{devResult}
</if>
<if test="null != createDate and ''!=createDate">
AND create_date <=#{createDate}
</if>
</where>
</select>



<include refid="Base_Column_List" /> 类似于jsp中的include,指向其id即可

<sql id="Base_Column_List" >
id, chance_source, customer_name, cgjl, overview, link_man, link_phone, description,
create_man, assign_man, assign_time, state, dev_result, is_valid, create_date, update_date
</sql>
查询到结果

同时搜索也做好了,js文件

function querySaleChancesByParams() {
$('#dg').datagrid('load',{
customerName:$('#customerName').val(),
state:$('#state').combobox('getValue'),
devResult:$('#devResult').combobox('getValue'),
createDate:$('#time').datebox('getValue')
});
}