标签: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