package com.cku.service; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.cku.dao.CkuDogMapper; import com.cku.dao.CkuMatchSignMapper; import com.cku.dao.CkuTabGradeMapper; import com.cku.dao.CkuUserMapper; import com.cku.dao.EventRelatedMapper; import com.cku.dao.PublicMapper; import com.cku.model.CkuDog; import com.cku.model.CkuMatchSign; import com.cku.model.CkuUser; import com.cku.model.EventRelatedModel; import com.cku.model.PublicModel; /** * *

Title:PublicService

*

Description: 公用服务

*

Company:

* @author zhuoHeng * @date 2016年3月17日 下午12:52:45 */ @Service("publicService") public class PublicService { @Autowired public CkuUserMapper ckuUserMapper; @Autowired public CkuDogMapper ckuDogMapper; @Autowired public PublicMapper publicMapper; @Autowired public CkuMatchSignMapper ckuMatchSignMapper; @Autowired public CkuTabGradeMapper ckuTabGradeMapper; @Autowired public EventRelatedMapper eventRelatedMapper; /** * * @Description:根据会员号对会员资格校验(当前时间在会员资格到期时间前,会员有效。返回true) * @author: zhuoHeng * @version: 2016年3月17日 下午1:10:56 */ public boolean memberStatus(String idNum){ List memberInfo = ckuUserMapper.getUserMessage(idNum); if(memberInfo.size()>0){ //系统时间 Date date = new Date(); //判断会员截止时间是否为空 if("".equals(memberInfo.get(0).getMemberDeadlineTime())||memberInfo.get(0).getMemberDeadlineTime()==null){ return true; } //会员资格到期时间 Date memberDeadTime = memberInfo.get(0).getMemberDeadlineTime(); //当前时间在会员资格到期时间前,返回true boolean flag = date.before(memberDeadTime); if(flag){ return true; } else { return false; } }else { return false; } } /** * * @Description:查询会员是否在禁赛期内(禁赛为true) * @author: zhuoHeng * @version: 2016年3月17日 下午2:09:08 */ public boolean suspendStatus(String idNum){ List memberInfo = ckuUserMapper.getUserMessage(idNum); if(memberInfo.size()>0){ //系统时间 Date date = new Date(); //判断会员禁赛时间是否为空,为空不在禁赛期 if("".equals(memberInfo.get(0).getSsJstime())||memberInfo.get(0).getSsJstime()==null){ return true; } //禁赛时间 Date suspendTime = memberInfo.get(0).getSsJstime(); //当前时间在禁赛期前,返回true boolean flag = date.before(suspendTime); if(flag){ return false; } else { return true; } } else { return false; } } /** * * @Description:犬只资格验证(包含:是否存在有效cku血统证书号cku、报名犬只失格次数是否小于3次disqualification * 报名犬只年龄是否大于3个月ageStatus、犬只代数是否大于0 dogGenerations) * @author: zhuoHeng * @version: 2016年3月17日 下午2:57:55 */ @SuppressWarnings("all") public Map dogStatus(String pedigreeNum,String dogId,String showNums){ List dogMessage = ckuDogMapper.getMatchCost(pedigreeNum,dogId); //CkuDogScoreModel ckuDogScoreModel = ckuTabGradeMapper.getDogScore(pedigreeNum); Map map = new HashMap(); if(dogMessage.size()>0){ //查询是否报名了赛事 List ckuMatchSign = ckuMatchSignMapper.getSignByStudbookNum(showNums.substring(0, 7),dogMessage.get(0).getPedigreeNum()); if(ckuMatchSign.size()>0){ map.put("repeated", "yes"); }else{ map.put("repeated", "no"); } boolean bl = memberStatus(dogMessage.get(0).getMemberNum()); //是否有效会员 if(bl){ map.put("rightVip", "yes"); }else{ map.put("rightVip", "no"); } boolean suspendFlag = suspendStatus(dogMessage.get(0).getMemberNum()); //是否禁赛期 if(suspendFlag){ map.put("banned", "yes"); }else{ map.put("banned", "no"); } boolean flag = dogMessage.get(0).getPedigreeNum().contains("CKU"); //犬只状态是否正常 if(dogMessage.get(0).getDelTag()=="0"||dogMessage.get(0).getDelTag()=="5"){ map.put("status", "yes"); }else{ map.put("status", "no"); } //证书号是否是CKU开头校验 if(flag){ map.put("cku", "yes"); } else { map.put("cku", "no"); } //TODO 失格次数校验 map.put("disqualification", "yes"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String date =""; if(showNums!=null&&!"".equals(showNums)){ String[] strs = showNums.split(","); String strN =""; for (int i = 0; i < strs.length; i++) { strN+="'"+strs[i]+"',"; } strN = strN.substring(0, strN.length()-1); EventRelatedModel eventRelatedModel = eventRelatedMapper.getSpecificEventByShowNums(strN); date = df.format(eventRelatedModel.getStarting_data()); }else{ date = df.format(new Date()); } String dogBirthday = df.format(dogMessage.get(0).getDogBirthday()==null?new Date():dogMessage.get(0).getDogBirthday()); List difference = publicMapper.getTimeDifference(date, dogBirthday); map.put("age", difference.get(0).getDifference().toString()); //犬龄资格校验 if(difference.get(0).getDifference()>2){ map.put("ageStatus", "yes"); } else { map.put("ageStatus", "no"); } //犬只代数校验 if(dogMessage.get(0).getDogGenertions()>0){ map.put("dogGenerations", "yes"); } else { map.put("dogGenerations", "no"); } //犬只月龄大于15个月 if(difference.get(0).getDifference()>14){ map.put("dateStatus", "yes"); } else { map.put("dateStatus", "no"); } //DNA必须存档(dog pay_DNA=1) if("1".equals(dogMessage.get(0).getPayDna())){ map.put("payDnaStatus", "yes"); }else{ map.put("payDnaStatus", "no"); } //犬只代数3代以上 if(dogMessage.get(0).getDogGenertions()>2){ map.put("dogGenerationsStatus", "yes"); } else { map.put("dogGenerationsStatus", "no"); } } return map; } /** * * @Description:查询主赛事报名犬只是否达到上限、是否过了报名截止日期 * @author: zhuoHeng * @version: 2016年3月21日 下午5:22:12 */ public Map enrollStatus(String showNum){ Map map = new HashMap(); List list = ckuMatchSignMapper.getTopDog(showNum); int listSize = list.size(); if(listSize>0){ map.put("enrollNumber", listSize); }else { map.put("enrollNumber", 0); } return map; } }