码迷,mamicode.com
首页 > 其他好文 > 详细

时间周期的判断

时间:2020-11-30 16:07:11      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:led   atd   info   rate   遍历   获取参数   als   where   upd   

public Map<String, Object> addMain(Map<String, Object> params) {

// TODO Auto-generated method stub

Map<String, Object> response = new HashMap<String, Object>();

int key = Integer.valueOf(params.get("displayKey").toString());

String displayPlat = contentMapper.selectDisplayPlat(key);

Map<String, Object> params1 = new HashMap<String, Object>();

params1.put("displayPlat", displayPlat);

params.put("displayPlat", displayPlat);

// main.setDisplayPlat(displayPlat);

// 判断平台是否已经存在,已经存在就不能再新增了

// 考虑到有效期内的展示周期可能有多个。所以需要全部拿出来,在循环比较开始时间和结束时间,这里需要获取开始时间和结束时间的集合

//

<select id="selectDisplayPlatUpdate" parameterType="map" resultType="map">

select  startAt,endAt 

from hotkidclub_campaign.main

WHERE <![CDATA[  `endAt` >= now()  ]]> and isDelete=0 and displayPlat = #{params.displayPlat} and `key`!=#{params.key}

</select>

<select id="selectDisplayPlatAdd" parameterType="map" resultType="map">

select  startAt,endAt 

from hotkidclub_campaign.main

WHERE <![CDATA[  `endAt` >= now()  ]]> and isDelete=0 and displayPlat = #{params.displayPlat} 

</select>

List<Map<String, Object>> m = mainPageMapper.selectDisplayPlatAdd(params);

// 获取参数的开始时间和结束时间

// 循环遍历,开始时间。

String endAt = params.get("endAt").toString();

String startAt = params.get("startAt").toString();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

try {

Date endAtdate1 = df.parse(endAt);

Date startAtdate2 = df.parse(startAt);

long endatLong = endAtdate1.getTime();

long startatLong = startAtdate2.getTime();

for (int i = 0; i < m.size(); i++) {

// 获取数据库中的开始时间和结束时间

String iEndAtString = m.get(i).get("endAt").toString();

String iStartAtString = m.get(i).get("startAt").toString();

Date iEndAt = df.parse(iEndAtString);

Date iStartAt = df.parse(iStartAtString);

long iEndAtLong = iEndAt.getTime();

long iStartAtLong = iStartAt.getTime();

// 已有周期的开始时间<=开始时间<=已有周期的结束时间

if (iStartAtLong <= startatLong && iEndAtLong >= startatLong) {

throw new IllegalStateException("周期时间不能重复配置");

}

// 已有周期的结束时间<=结束时间<=已有周期的结束时间

if (iStartAtLong <= endatLong && iEndAtLong >= endatLong) {

throw new IllegalStateException("周期时间不能重复配置");

}

// 已有周期的开始时间,大于开始时间,已有周期的结束时间,小于结束时间

if (iStartAtLong > startatLong && iEndAtLong < endatLong) {

throw new IllegalStateException("周期时间不能重复配置");

}

}

}

catch (ParseException e) {

// TODO Auto-generated catch block

throw new IllegalStateException("新增平台的时间格式转换有误");

}

log.getLogger("mppage_s").info("addMain({},{}):{}", adminInfo.current_empId, params);

if (mainPageMapper.addMain(params) == 1) {

response.put("status", "true");

response.put("main", params);

}

return response;

}

时间周期的判断

标签:led   atd   info   rate   遍历   获取参数   als   where   upd   

原文地址:https://www.cnblogs.com/ewa-03/p/14037386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!