二十二:交易--查询

功能需求

输入查询的条件,点击查询按钮,得到查询结果,实现翻页查询。

流程图

 

代码实现

1.TranMapper

    /**
     * 主页-查询交易
     */
    List<Tran> selectAllTranDetail(Map<String,Object> map);
    /**
     * 交易的数量
     */
    int selectAllTranCount(Map<String,Object> map);

TranMapper.xml

    <select id="selectAllTranDetail" resultMap="BaseResultMap">
        select t.id,
        u.name owner,
        t.name,
        c.name customer_id,
        ifnull(dicv1.value, ' ') as stage,
        ifnull(dicv2.value, ' ') as type,
        ifnull(dicv3.value, ' ') as source,
        co.fullname contacts_id
        from tbl_tran t
        join tbl_user u on u.id = t.owner
        join tbl_customer c on c.id = t.customer_id
        join tbl_contacts co on co.id = t.contacts_id
        left join tbl_dic_value dicv1 on dicv1.id = t.stage
        left join tbl_dic_value dicv2 on dicv2.id = t.type
        left join tbl_dic_value dicv3 on dicv3.id = t.source
        <where>
            <if test="owner!=null and owner!=''">
                and u.name like "%"#{owner}"%"
            </if>
            <if test="name!=null and name!=''">
                and t.name like "%"#{name}"%"
            </if>
            <if test="customerName!=null and customerName!=''">
                and c.name like "%"#{customerName}"%"
            </if>
            <if test="stage!=null and stage!=''">
                and dicv1.value like "%"#{stage}"%"
            </if>
            <if test="type!=null and type!=''">
                and dicv2.value like "%"#{type}"%"
            </if>
            <if test="source!=null and source!=''">
                and dicv3.value like "%"#{source}"%"
            </if>
            <if test="contactName!=null and contactName!=''">
                and co.fullname like "%"#{contactName}"%"
            </if>
        </where>
        order by t.create_time desc
        limit #{pageNo}, #{pageSize}
    </select>
    <select id="selectAllTranCount" resultType="java.lang.Integer">
        select count(*)
        from tbl_tran t
        join tbl_user u on u.id = t.owner
        join tbl_customer c on c.id = t.customer_id
        join tbl_contacts co on co.id = t.contacts_id
        left join tbl_dic_value dicv1 on dicv1.id = t.stage
        left join tbl_dic_value dicv2 on dicv2.id = t.type
        left join tbl_dic_value dicv3 on dicv3.id = t.source
        <where>
            <if test="owner!=null and owner!=''">
                and u.name like "%"#{owner}"%"
            </if>
            <if test="name!=null and name!=''">
                and t.name like "%"#{name}"%"
            </if>
            <if test="customerName!=null and customerName!=''">
                and c.name like "%"#{customerName}"%"
            </if>
            <if test="stage!=null and stage!=''">
                and dicv1.value like "%"#{stage}"%"
            </if>
            <if test="type!=null and type!=''">
                and dicv2.value like "%"#{type}"%"
            </if>
            <if test="source!=null and source!=''">
                and dicv3.value like "%"#{source}"%"
            </if>
            <if test="contactName!=null and contactName!=''">
                and co.fullname like "%"#{contactName}"%"
            </if>
        </where>
    </select>

2.TranService

	/**
	 * 主页:线索明细
	 */
	List<Tran> queryAllTranDetail(Map<String,Object> map);
	/**
	 * 线索的全部数量
	 */
	int queryAllTranCount(Map<String,Object> map);
@Service
public class TranServiceImpl implements TranService {
	@Autowired
	private TranMapper tranMapper;
	@Override
	public List<Tran> queryAllTranDetail(Map<String, Object> map) {
		return tranMapper.selectAllTranDetail(map);
	}

	@Override
	public int queryAllTranCount(Map<String,Object> map) {
		return tranMapper.selectAllTranCount(map);
	}
}

3.TranController

public class TranController {
	@Autowired
	private TranService tranService;
	@Autowired
	private DicValueService dicValueService;

	/**
	 * 主页:点击菜单“交易”,跳转到主页
	 */
	@RequestMapping("/workbench/transaction/index.do")
	public String transactionIndex(HttpServletRequest request) {
		// 加载字典
		List<DicValue> sourceList = dicValueService.queryDicValueByTypeCode("source");
		List<DicValue> stageList = dicValueService.queryDicValueByTypeCode("stage");
		List<DicValue> transactionTypeList = dicValueService.queryDicValueByTypeCode("transactionType");
		// 保存请求域
		request.setAttribute("sourceList",sourceList);
		request.setAttribute("stageList",stageList);
		request.setAttribute("transactionTypeList",transactionTypeList);
		return "workbench/transaction/index";
	}

	/**
	 * 主页:搜索交易记录列表
	 */
	@RequestMapping("/workbench/transaction/transactionListIndex.do")
	public @ResponseBody
	Object transactionListIndex(int pageNo, int pageSize,String owner,String name,String customerName,String stage,String type,String source,String contactName) {
		// 获取参数
		HashMap<String, Object> map = new HashMap<>();
		map.put("pageNo", (pageNo-1) * pageSize);
		map.put("pageSize", pageSize);
		map.put("owner", owner);
		map.put("name", name);
		map.put("customerName", customerName);
		map.put("stage", stage);
		map.put("type", type);
		map.put("source", source);
		map.put("contactName", contactName);
		// 调用service
		List<Tran> tranAllList = tranService.queryAllTranDetail(map);
		int totalRows = tranService.queryAllTranCount(map);
		// 返回json
		Map<String, Object> retMap = new HashMap<>();
		retMap.put("tranAllList",tranAllList);
		retMap.put("totalRows",totalRows);
		return retMap;
	}
}

4.前端index.jsp

        // 加载线索明细
        function loadAllTran(pageNo, pageSize) {
            // 收集查询参数
            var owner = $.trim($("#query-owner").val());
            var name =$.trim($("#query-name").val());
            var customerName = $.trim($("#query-customername").val());
            var stage = $("#query-stage option:selected").val();
            var type = $("#query-type option:selected").val();
            var source = $("#query-source option:selected").val();
            var contactName = $.trim($("#query-contactname").val());
            // 发送请求
            $.ajax({
                url: 'workbench/transaction/transactionListIndex.do',
                data: {
                    pageNo: pageNo,
                    pageSize: pageSize,
                    owner:owner,
                    name:name,
                    customerName:customerName,
                    stage:stage,
                    type:type,
                    source:source,
                    contactName:contactName
                },
                type: 'post',
                dataType: 'json',
                success: function (data) {
                    var htmlStr = "";
                    $.each(data.tranAllList, function (index, obj) {
                        htmlStr += "<tr>";
                        htmlStr += "<td><input type=\"checkbox\" style='width: 15px;height: 15px' value=\"" + obj.id + "\"/></td>";
                        htmlStr += "<td><a style=\"text-decoration: none; cursor: pointer;\"onclick=\"window.location.href='';\">" + obj.name + "</a></td>";
                        htmlStr += "<td>" + obj.customerId + "</td>";
                        htmlStr += "<td>" + obj.stage + "</td>";
                        htmlStr += " <td>" + obj.type + "</td>";
                        htmlStr += " <td>" + obj.owner + "</td>";
                        htmlStr += " <td>" + obj.source + "</td>";
                        htmlStr += " <td>" + obj.contactsId + "</td>";
                        htmlStr += " </tr>";
                    });
                    $("#tBody").html(htmlStr);
                    //计算页码数
                    var totalPages = data.totalRows / pageSize;
                    if (data.totalRows % pageSize > 0) {
                        totalPages = parseInt(data.totalRows / pageSize) + 1;
                    }
                    // 调用页码翻页函数
                    $("#pagDiv").bs_pagination({
                        currentPage: pageNo,//当前页码数
                        rowsPerPage: pageSize,//每页显示条数
                        totalRows: data.totalRows,//总条数
                        totalPages: totalPages,//总页数
                        visiblePageLinks: 5,//最多显示的卡片数
                        showGoToPage: true,//显示“跳转到部分
                        showRowsPerPage: true,//每页显示条数
                        showRowsInfo: false,//是否显示记录的信息
                        //用户切换页码,触发函数,返回页码之后的pageNo和pageSize
                        onChangePage: function (event, pageObj) {
                            loadAllTran(pageObj.currentPage, pageObj.rowsPerPage);
                        }
                    });
                }

            });
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值