package com.cku.service;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cku.core.ExecResultModel;
import com.cku.dao.CkuDogMapper;
import com.cku.dao.CkuTabGradeDdzMapper;
import com.cku.dao.CkuTabGradeMapper;
import com.cku.model.CkuDog;
import com.cku.model.CkuDogLoginType;
import com.cku.model.CkuDogMessageForLoginType;
import com.cku.model.CkuDogScoreModel;
import com.cku.model.CkuTabGrade;
import com.cku.model.CkuTabGradeDdz;
import com.cku.util.PageBean;
import com.cku.util.PedigreeCertifiedCodeUtil;
import com.google.common.collect.ImmutableSet;
/**
*
*
Title:DogRelatedServiceImpl
* Description: 犬类相关服务层
* Company:
* @author zhuoHeng
* @date 2016年3月16日 下午4:40:18
*/
@Service("dogRelatedServiceImpl")
public class DogRelatedServiceImpl{
@Autowired
public CkuDogMapper ckuDogMapper;
@Autowired
public PublicService publicService;
@Autowired
public CkuTabGradeMapper ckuTabGradeMapper;
@Autowired
public CkuTabGradeDdzMapper ckuTabGradeDdzMapper;
private static final Set DOG_BREED_SET = ImmutableSet.of("292", "15C");
/**
*
* @Description:根据cku证书号/犬只芯片号获取犬信息(带校验)
* @author: zhuoHeng
* @version: 2016年3月16日 下午5:07:59
* @throws ParseException
*/
@SuppressWarnings("all")
public String getEventList(String pedigreeNum,String dogId,String showNums) throws ParseException{
ExecResultModel resultModel = new ExecResultModel();
Map map = publicService.dogStatus(pedigreeNum, dogId,showNums);
String message ="";
//犬只资格验证(需满足cku血统、失格次数<3、犬龄>3个月、犬只代数>=2)
if("yes".equals(map.get("cku"))&&"yes".equals(map.get("disqualification"))&&
"yes".equals(map.get("ageStatus"))&&"yes".equals(map.get("dogGenerations"))
&&"yes".equals(map.get("rightVip"))
&&"yes".equals(map.get("banned"))
&&"no".equals(map.get("repeated"))
&&"yes".equals(map.get("status"))){
List eventIntroduce = ckuDogMapper.getMatchCost(pedigreeNum,dogId);
eventIntroduce.get(0).setAge(map.get("age"));
//查询犬只是否存在比赛成绩
eventIntroduce.get(0)
.setShowResult(eventIntroduce.get(0).getShowResult() == null?"":eventIntroduce.get(0).getShowResult());
//查询犬只是否存在有效的冠军登录记录
int countChampionLogin = ckuDogMapper.getChampionLogin(pedigreeNum);
if(countChampionLogin > 0) {
eventIntroduce.get(0).setChampionLogin(true);
} else {
eventIntroduce.get(0).setChampionLogin(false);
}
resultModel.setItems(eventIntroduce);
resultModel.setRc(0);
resultModel.setMsg("返回正常结果");
resultModel.setTotal((long)eventIntroduce.size());
}else{
if("yes".equals(map.get("dogBusinessBan"))){
resultModel.setRc(109);
message = "该犬为禁止参赛状态,无法办理该业务";
}else if("no".equals(map.get("cku"))){
resultModel.setRc(100);
message = "犬只血统证书不合格";
}else if("no".equals(map.get("disqualification"))){
resultModel.setRc(101);
message = "犬只失格次数大于3次";
}else if("no".equals(map.get("ageStatus"))){
resultModel.setRc(102);
message = "犬只年龄不足3个月";
}else if("no".equals(map.get("dogGenerations"))){
resultModel.setRc(103);
message = "犬只参赛仅限2代及以上血统犬只报名";
}else if("no".equals(map.get("rightVip"))){
resultModel.setRc(105);
message="犬主人会员无效";
}else if("no".equals(map.get("banned"))){
resultModel.setRc(106);
message="犬主人在禁赛期内";
}else if("yes".equals(map.get("repeated"))){
resultModel.setRc(107);
message="重复报名";
}else if("no".equals(map.get("status"))){
resultModel.setRc(108);
message="犬只状态不正常";
}else {
resultModel.setRc(104);
message = "无相应结果";
}
resultModel.setItems(new ArrayList());
resultModel.setMsg(message);
resultModel.setTotal((long)0);
}
return resultModel.getToJson();
}
/**
*
* @Description:查询犬只家族信息
* @author: zhuoHeng
* @version: 2016年3月24日 上午11:13:39
*/
@SuppressWarnings("all")
public Map getDogFamily(String pedigreeNum,String dogId){
Map> newMap = new HashMap>();
ExecResultModel