package com.cku.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.cku.sms.ZtSmsUtil;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cku.core.ExecResultModel;
import com.cku.dao.CkuCaiPanMapper;
import com.cku.dao.CkuImageMapper;
import com.cku.dao.CkuMatchCostMapper;
import com.cku.dao.CkuMatchProjectMapper;
import com.cku.dao.EventRelatedMapper;
import com.cku.model.CkuCaiPan;
import com.cku.model.CkuMatchCost;
import com.cku.model.CkuMatchProject;
import com.cku.model.CkuMatchSponsor;
import com.cku.model.EventRelatedModel;
import com.sys.util.ImgUtil;
/**
*
*
* Title:EventRelatedServiceImpl
*
*
* Description: 赛事相关服务层
*
*
* Company:
*
*
* @author zhuoHeng
* @date 2016年3月15日 下午6:04:56
*/
@Service("eventRelatedService")
public class EventRelatedServiceImpl {
@Autowired
public EventRelatedMapper eventRelatedMapper;
@Autowired
public CkuMatchProjectMapper ckuMatchProjectMapper;
@Autowired
public CkuCaiPanMapper ckuCaiPanMapper;
@Autowired
public CkuMatchCostMapper ckuMatchCostMapper;
@Autowired
public PublicService publicService;
@Autowired
public CkuImageMapper ckuImageMapper;
private static Logger logger = LoggerFactory.getLogger(EventRelatedServiceImpl.class);
/**
*
* @Description:根据页码、展示条数获取主赛事列表
* @author: zhuoHeng
* @version: 2016年3月15日 下午6:07:51
*/
public String getEventList(Integer page, Integer limit) {
ExecResultModel resultModel = new ExecResultModel();
Integer pageNew = (page - 1) * limit;
List eventList = eventRelatedMapper.getEventList(pageNew, limit);
List countList = eventRelatedMapper.getEventCount();
resultModel.setItems(eventList);
if (eventList.size() > 0) {
Date now = new Date();
String showNum = "";
// 对字符串截取,取出其中的城市名称
for (int i = 0; i < eventList.size(); i++) {
String[] strs = eventList.get(i).getShow_num().split("-");
// 报名截止时间
eventList.get(i).setClosingEntries(false);
if (eventList.get(i).getShow_num() != null && eventList.get(i).getShow_num().length() > 7) {
showNum = eventList.get(i).getShow_num().substring(0, 7);
} else {
showNum = eventList.get(i).getShow_num();
}
@SuppressWarnings("unchecked")
Map map = publicService.enrollStatus(showNum);
// 犬只报名情况
Integer topDog = 0;
if (eventList.get(i) != null) {
topDog = new Integer(eventList.get(i).getTop_dog());
}
boolean enrollStatus = map.get("enrollNumber") >= topDog;
if (enrollStatus) {
System.out.println("达到报名上限");
}
eventList.get(i).setEnrollStatus(enrollStatus);
eventList.get(i).setShow_num(strs.length > 1 ? strs[1] : "");
//改为在主赛事地点中取数据
if(StringUtils.isNotBlank(eventList.get(i).getShow_location())) {
eventList.get(i).setShow_num(eventList.get(i).getShow_location().split("-")[0]);
}
// 赛事负责人 自办比赛是北京办公室负责人 合办是各个办公室负责人
if("1".equals(eventList.get(i).getOrgnizeType())) {//0:合办旧模式;1:自办;2:合办新模式
eventList.get(i).setDirector( eventRelatedMapper.getShowOfficeManager("1"));//id是1为北京办公室
}else {
if(StringUtils.isNotBlank( eventList.get(i).getOfficeId())) {
eventList.get(i).setDirector( eventRelatedMapper.getShowOfficeManager( eventList.get(i).getOrganizer()));//id是1为北京办公室
}
}
}
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) countList.size());
} else {
resultModel.setRc(0);
resultModel.setMsg("没有更多数据了");
resultModel.setTotal((long) 0);
}
return resultModel.getToJson();
}
/**
*
* @Description:根据主赛事场地查询子赛事列表
* @author: zhuoHeng
* @version: 2016年3月16日 上午11:00:42
*/
public String getSpecificEvent(String showLocation, String ids) {
ExecResultModel resultModel = new ExecResultModel();
if (!"".equals(ids) && ids != null) {
String[] showsIds = ids.split(",");
StringBuffer showId = new StringBuffer();
for (int i = 0; i < showsIds.length; i++) {
showId.append("'" + showsIds[i] + "',");
}
ids = showId.substring(0, showId.length() - 1);
}
List eventList = eventRelatedMapper.getSpecificEvent(showLocation, ids);
if (eventList.size() > 0) {
//修改showName返回的字符串中包含英文引号,前端解析错误,改成中文引号
for (EventRelatedModel eventRelatedModel : eventList) {
logger.info("--------------- : -------------");
String showName = eventRelatedModel.getShow_name();
if (StringUtils.isNotBlank(showName)) {
if (showName.contains("\"")) {
String showNameNew = showName.replaceAll("\"", "“");
eventRelatedModel.setShow_name(showNameNew);
logger.info("--------------- : 名字 {} -------------", showNameNew);
} else if (showName.contains(""")) {
String showNameNew = showName.replaceAll(""", "“");
eventRelatedModel.setShow_name(showNameNew);
logger.info("--------------- : 名字 {} -------------", showNameNew);
}
}
}
logger.info("--------------- : {} -------------", JSON.toJSONString(eventList));
resultModel.setItems(eventList);
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) eventList.size());
} else {
resultModel.setItems(new ArrayList());
resultModel.setMsg("无对应数据");
resultModel.setTotal((long) 0);
;
}
return resultModel.getToJson();
}
/**
*
* @Description:根据赛事id获取赛事主要项目
* @author: zhuoHeng
* @version: 2016年3月16日 上午11:31:34
*/
public String getEventProject(Integer id) {
ExecResultModel resultModel = new ExecResultModel();
List eventIntroduce = ckuMatchProjectMapper.getEventProject(id);
if (eventIntroduce.size() > 0) {
resultModel.setItems(eventIntroduce);
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) eventIntroduce.size());
} else {
resultModel.setItems(new ArrayList());
resultModel.setMsg("无对应数据");
resultModel.setTotal((long) 0);
}
return resultModel.getToJson();
}
/**
*
* @Description:根据赛事裁判id获取裁判信息
* @author: zhuoHeng
* @version: 2016年3月16日 下午1:13:03
*/
public String getRefereeMessage(String ids) {
String flag = "";
ExecResultModel resultModel = new ExecResultModel();
if (ids == null || "".equals(ids)) {
resultModel.setRc(0);
resultModel.setItems(new ArrayList());
resultModel.setMsg("");
resultModel.setTotal((long) 0);
return resultModel.getToJson();
}
StringBuffer sb = new StringBuffer();
sb.append("'");
sb.append(ids.replace(",", "','"));
sb.append("'");
List eventIntroduce = ckuCaiPanMapper.getRefereeMessage(sb.toString());
if (eventIntroduce.size() > 0) {
for (int i = 0; i < eventIntroduce.size(); i++) {
flag = eventIntroduce.get(i).getCkuPosition();
eventIntroduce.get(i).setCkuContent(null);
// 注释掉裁判头衔
/*
* if(flag!=null&&!"".equals(flag)){ if(flag.contains(";")){ String[] strs =
* eventIntroduce.get(i).getCkuPosition().split(";");
* //eventIntroduce.get(i).setCkuPosition(strs[0]); } }
*/
// 使用新字段进行裁判头衔进行展示
eventIntroduce.get(i).setCkuPosition(eventIntroduce.get(i).getCabJobtitleShort());
CkuCaiPan ckuCaiPan = eventIntroduce.get(i);
ckuCaiPan.setCkuTitle(StringEscapeUtils.unescapeHtml(ckuCaiPan.getCkuTitle()));
ckuCaiPan.setImageMinUrl(ImgUtil.getImgUrl(ckuCaiPan.getImageMinUrl()));
ckuCaiPan.setImageMaxUrl(ImgUtil.getImgUrl(ckuCaiPan.getImageMaxUrl()));
}
resultModel.setItems(eventIntroduce);
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) eventIntroduce.size());
} else {
resultModel.setItems(new ArrayList());
resultModel.setMsg("无对应数据");
resultModel.setTotal((long) 0);
}
return resultModel.getToJson();
}
/**
*
* @Description:获取赛事费用详情
* @author: zhuoHeng
* @version: 2016年3月16日 下午3:47:49
*/
public String getMatchCost(Integer id) {
ExecResultModel resultModel = new ExecResultModel();
try {
List eventIntroduce = ckuMatchCostMapper.getMatchCost(id);
if (eventIntroduce.size() > 0) {
resultModel.setItems(eventIntroduce);
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) 200);
} else {
resultModel.setItems(new ArrayList());
resultModel.setMsg("无对应数据");
resultModel.setTotal((long) 0);
}
} catch (Exception e) {
} finally {
}
return resultModel.getToJson();
}
/**
*
* @Description:根据赛主事场地查询主赛事信息
* @author: zhuoHeng
* @version: 2016年3月19日 上午10:27:10
*/
public String getTrunkEventInfo(String showLocation) {
ExecResultModel resultModel = new ExecResultModel();
List eventList = eventRelatedMapper.getTrunkEventInfo(showLocation);
resultModel.setItems(eventList);
int size = eventList.size();
if (size > 0) {
// 截取赛事编号(查询主赛事犬只报名情况使用)
String showNum = eventList.get(0).getShow_num().substring(0, 7);
Map map = publicService.enrollStatus(showNum);
if (map.get("enrollNumber") > 180) {
System.out.println("达到报名上限");
}
//
Date now = new Date();
// 报名截止时间
Date date = eventList.get(0).getExpiry_time();
boolean flag = now.before(date);
// 当前时间在截止时间前,不禁止报名
if (!flag) {
System.out.println("已过报名截止日期");
}
// 对字符串截取,取出其中的城市名称
for (int i = 0; i < eventList.size(); i++) {
String[] strs = eventList.get(i).getShow_num().split("-");
eventList.get(i).setShow_num(strs[1]);
}
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) eventList.size());
} else {
resultModel.setMsg("无对应数据");
}
return resultModel.getToJson();
}
/**
*
* @Description:根据主办方获取主办方详细信息
* @author: zhuoHeng
* @version: 2016年3月22日 下午6:12:04
*/
public String getSponsorInfo(String organizer) {
ExecResultModel resultModel = new ExecResultModel();
try {
List eventIntroduce = eventRelatedMapper.getSponsorInfo(organizer);
if (eventIntroduce.size() > 0) {
resultModel.setItems(eventIntroduce);
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal((long) 200);
} else {
resultModel.setItems(new ArrayList());
resultModel.setMsg("无对应数据");
resultModel.setTotal((long) 0);
}
} catch (Exception e) {
} finally {
}
return resultModel.getToJson();
}
/**
* 根据赛事id修改为是否推荐
*
* @param isTop
* @Author chaixueteng
* @2016年5月4日下午2:34:14
*/
public void updateMatchToTop(Integer id, Integer isTop) {
// 根据id查出赛事的赛事地点 全部更改为推荐赛事
String showLocation = eventRelatedMapper.getMatchByAdress(id);
eventRelatedMapper.updateMatchToTop(showLocation, isTop);
}
/**
* 得到推荐赛事的列表
*
* @Author chaixueteng
* @2016年5月4日下午3:57:30
*/
public String getTopMatch() {
ExecResultModel resultModel = new ExecResultModel();
List eventList = eventRelatedMapper.getTopMatch(0, 100);
resultModel.setItems(eventList);
if (eventList.size() > 0) {
Date now = new Date();
String showNum = "";
// 对字符串截取,取出其中的城市名称
for (int i = 0; i < eventList.size(); i++) {
String[] strs = eventList.get(i).getShow_num().split("-");
// 报名截止时间
Date date = eventList.get(i).getExpiry_time();
boolean flag = date.before(now);
eventList.get(i).setClosingEntries(flag);
// System.out.println("是否过了报名截止日期"+flag);
showNum = eventList.get(i).getShow_num().substring(0, 7);
Map map = publicService.enrollStatus(showNum);
// 犬只报名情况
Integer topDog = 0;
if (eventList.get(i) != null && !eventList.isEmpty()) {
topDog = new Integer(eventList.get(i).getTop_dog());
}
boolean enrollStatus = map.get("enrollNumber") >= topDog;
if (enrollStatus) {
System.out.println("达到报名上限");
}
eventList.get(i).setEnrollStatus(enrollStatus);
eventList.get(i).setShow_num(strs[1]);
// 得到推荐的赛事的地点
String id = eventList.get(i).getId();
String imageUrl = eventRelatedMapper.getMatchImage(id);
eventList.get(i).setTopMessage(imageUrl);
}
resultModel.setRc(0);
resultModel.setMsg("");
resultModel.setTotal(new Long(eventList.size()));
} else {
resultModel.setItems(new ArrayList());
resultModel.setRc(0);
resultModel.setMsg("没有更多数据了");
}
return resultModel.getToJson();
}
}