Mybatis 参数是map, map里面含List

1. DAO

List<WorkbenchEventVo> searchMyWorkFlows(Map<String, Object> map);

2. Mapper.xml

<sql id="searchMyWorkFlows">
        <if test="stepList!=null and stepList.size>0">
            and wf.fstep in
            <foreach collection="stepList" item="step" index="i" open="(" close=")" separator=",">
                #{step}
            </foreach>
        </if>
        <if test="statusList!=null and statusList.size>0">
            and wf.fstatus in
            <foreach collection="statusList" item="status" index="i" open="(" close=")" separator=",">
                #{status}
            </foreach>
        </if>
    </sql>

<select id="searchMyWorkFlows" parameterType="map" resultMap="WorkbenchResultMap">
		SELECT
		wf.Fid id,
		wf.Fcreate_time time,
		CASE
		WHEN wf.Fstatus = 'Submit' THEN
		'新增'
		WHEN wf.Fstatus = 'Reject' THEN
		'驳回'
		WHEN wf.Fstatus = 'Pass' THEN
		'运营审核通过'
		WHEN wf.Fstatus = 'Finish' THEN
		'合规审核通过'
		END type,
		CASE
		WHEN wf.Fstep = 1
		AND wf.Fstatus = 'Reject' THEN
		wf.Foperator
		WHEN wf.Fstep = 2
		AND wf.Fstatus = 'Submit' THEN
		wf.Fproposer
		WHEN wf.Fstep = 2
		AND wf.Fstatus = 'Reject' THEN
		wf.Fauditor
		WHEN wf.Fstep = 3
		AND wf.Fstatus = 'Pass' THEN
		wf.Foperator
		WHEN wf.Fstep = 4
		AND wf.Fstatus = 'Finish' THEN
		wf.Fauditor
		END creator,
		CASE
		WHEN wf.Fstep = 1
		AND wf.Fstatus = 'Reject' THEN
		wf.Foper_reason
		WHEN wf.Fstep = 2
		AND wf.Fstatus = 'Reject' THEN
		wf.Faud_reason
		END reason,
		CASE
		WHEN wf.Fobject_type = 0 THEN
		'机构信息'
		WHEN wf.Fobject_type = 1 THEN
		'运营页面'
		END objectType,
		wf.Fope_id objectId,
		mkt.ftitle objectEvent,
		wf.Forg_name orgName
		FROM
		(
          SELECT * FROM
	      (
		SELECT
			*
		FROM
			t_work_flow
		ORDER BY
			Fcreate_time DESC
	      ) temp
        GROUP BY
	fope_id
      ORDER BY
	Fcreate_time DESC) wf, t_marketing mkt
		where wf.Fope_id=mkt.fid
		<include refid="searchMyWorkFlows"/>
		ORDER BY wf.Fcreate_time desc
	</select>

3. ServiceImpl

private Map<String, Object> getStepStatus(String username, String loginType) {
        Map<String, Object> map = new HashMap<String, Object>();
        //有种可能,xxx既是运营人员也是合规人员,所以step/status为list
        List<String> stepList = new ArrayList<String>();
        List<String> statusList = new ArrayList<String>();
        if (Constants.LOGIN_TYPE_A.equalsIgnoreCase(loginType)) {
            boolean isAuditor = StringUtils.isNoneBlank(modelService.findBy(modelType.Auditor, username));
            boolean isOperator = StringUtils.isNoneBlank(modelService.findBy(modelType.Operator, username));
            if (isOperator) {
                stepList.add("2");
                statusList.add("Submit");
                statusList.add("Reject");
            }
            if (isAuditor) {
                stepList.add("3");
                statusList.add("Pass");
            }
        } else {
            stepList.add(String.valueOf(1));
            statusList.add("Reject");
        }
        map.put("stepList", stepList);
        map.put("statusList", statusList);
        return map;
    }
public Page<WorkbenchEventVo> findMyEvents(int pageNum, int pageSize, String username, String loginType) {       
        Map<String, Object> stepStatus = getStepStatus(username, loginType);
        Page.startPage(pageNum, pageSize);
        List<WorkbenchEventVo> list = workFlowDao.searchMyWorkFlows(stepStatus);       
        return Page.from(list);
    }

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值