package com.cku.service; import java.util.ArrayList; 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.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; /** * *

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; /** * * @Description:根据cku证书号/犬只芯片号获取犬信息(带校验) * @author: zhuoHeng * @version: 2016年3月16日 下午5:07:59 */ @SuppressWarnings("all") public String getEventList(String pedigreeNum,String dogId,String showNums){ ExecResultModel resultModel = new ExecResultModel(); Map map = publicService.dogStatus(pedigreeNum, dogId,showNums); String message =""; //犬只资格验证(需满足cku血统、失格次数<3、犬龄>3个月、犬只代数>0) 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"))){ List eventIntroduce = ckuDogMapper.getMatchCost(pedigreeNum,dogId); eventIntroduce.get(0).setAge(map.get("age")); resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg("返回正常结果"); resultModel.setTotal((long)eventIntroduce.size()); }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 = "犬只代数为0"; }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 { 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 resultModel = new ExecResultModel(); List list = new ArrayList(); Map map1 = CkuDog(pedigreeNum.toUpperCase()); Map map21 = CkuDog(map1.get("fu")); Map map22 = CkuDog(map1.get("mu")); Map map211 = CkuDog(map21.get("fu")); Map map212 = CkuDog(map21.get("mu")); Map map221 = CkuDog(map22.get("fu")); Map map222 = CkuDog(map22.get("mu")); newMap.put("fdai", map1); newMap.put("sdaif", map21); newMap.put("sdaim", map22); newMap.put("tdaiff", map211); newMap.put("tdaifm", map212); newMap.put("tdaimf", map221); newMap.put("tdaimm", map222); return newMap; } /** * * @Description:查询犬只家族信息支持方法 * @author: zhuoHeng * @version: 2016年3月24日 下午3:29:50 */ @SuppressWarnings("all") public Map CkuDog(String zicku){ Map map = new HashMap(); List eventIntroduce = "".equals(zicku)?new ArrayList():ckuDogMapper.getMatchCost(zicku,null); String f_ckuNum = eventIntroduce.size()==0?"":eventIntroduce.get(0).getfPedigreeNum();//父cku String m_ckuNum = eventIntroduce.size()==0?"":eventIntroduce.get(0).getmPedigreeNum();//母cku List ListF = "".equals(f_ckuNum)?new ArrayList():ckuDogMapper.getMatchCost(f_ckuNum,null); List ListM = "".equals(m_ckuNum)?new ArrayList():ckuDogMapper.getMatchCost(m_ckuNum,null); map.put("fu", f_ckuNum ==null?"":f_ckuNum); map.put("mu", m_ckuNum==null?"":m_ckuNum); map.put("fuName", ListF.size()==0?"":ListF.get(0).getDogEgName()==null?"":ListF.get(0).getDogEgName()); map.put("muName", ListM.size()==0?"":ListM.get(0).getDogEgName()==null?"":ListM.get(0).getDogEgName()); return map; } /** * * @Description:根据cku证书号/犬只芯片号获取犬信息(无校验) * @author: zhuoHeng * @version: 2016年3月24日 下午3:30:23 */ public String getDogMessageForIndex(String pedigreeNum,String dogId){ ExecResultModel resultModel = new ExecResultModel(); List eventIntroduce = ckuDogMapper.getMatchCost(pedigreeNum,dogId); resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg(""); resultModel.setTotal((long)eventIntroduce.size()); return resultModel.getToJson(); } /** * * @Description:根据cku证书号查询犬只(全犬种)比赛结果 * @author: zhuoHeng * @version: 2016年3月24日 下午5:17:33 */ public String getDogGradeList(String pedigreeNum,String charTime){ ExecResultModel resultModel = new ExecResultModel(); //若客户端未传递“时间”参数,查询 if("".equals(charTime)||charTime==null){ List getDogGradeMonth = ckuTabGradeMapper.getDogGradeMonth(pedigreeNum); //若所输入CKU证书号犬只存在全犬种比赛成绩 if(getDogGradeMonth.size()>0){ //将集合中的第一个对象的赛事结束时间取出,赋值给“时间”参数(默认进入全犬种比赛成绩界面返回全犬种数据) charTime = getDogGradeMonth.get(0).getGradeMonth(); } } List eventIntroduce = ckuTabGradeMapper.getDogGradeList(pedigreeNum,charTime); if(eventIntroduce.size()>0){ resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg(""); resultModel.setTotal((long)eventIntroduce.size()); }else{ resultModel.setItems(new ArrayList()); resultModel.setRc(0); resultModel.setMsg(""); resultModel.setTotal((long)eventIntroduce.size()); } return resultModel.getToJson(); } /** * * @Description:根据cku证书号查询犬只(单独展)比赛结果 * @author: zhuoHeng * @version: 2016年3月24日 下午6:10:02 */ public String getDogGradeDdzList(String pedigreeNum,String charTime){ ExecResultModel resultModel = new ExecResultModel(); //若客户端未传递“时间”参数,查询 if("".equals(charTime)||charTime==null){ List getDogGradeMonth = ckuTabGradeDdzMapper.getDogGradeDdzMonth(pedigreeNum); //若所输入CKU证书号犬只存在全犬种比赛成绩 if(getDogGradeMonth.size()>0){ //将集合中的第一个对象的赛事结束时间取出,赋值给“时间”参数(默认进入全犬种比赛成绩界面返回全犬种数据) charTime = getDogGradeMonth.get(0).getGradeMonth(); } } List eventIntroduce = ckuTabGradeDdzMapper.getDogGradeDdzList(pedigreeNum,charTime); if(eventIntroduce.size()>0){ resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg(""); resultModel.setTotal((long)eventIntroduce.size()); }else{ resultModel.setItems(new ArrayList()); resultModel.setRc(0); resultModel.setMsg(""); resultModel.setTotal((long)eventIntroduce.size()); } return resultModel.getToJson(); } /** * * @Description:冠军登录犬只信息查询(犬只冠军登录申请资格校验) * @author: zhuoHeng * @version: 2016年4月6日 上午9:53:15 */ @SuppressWarnings("all") public String getDogMessageByLoginUser(String userNum,String pedigreeNum){ ExecResultModel resultModel = new ExecResultModel(); List eventIntroduce = ckuDogMapper.getMatchCostByPedigreeNum(userNum,pedigreeNum); String message =""; if(eventIntroduce.size()>0){ Map map = publicService.dogStatus(eventIntroduce.get(0).getPedigreeNum(), null,null); CkuDogScoreModel ckuDogScoreModel = ckuTabGradeMapper.getDogScore(pedigreeNum); List loginTypeList = new ArrayList(); int CC = ckuDogScoreModel.getCC(); int JCC = ckuDogScoreModel.getJCC(); int RCC = ckuDogScoreModel.getRCC(); int BOB = ckuDogScoreModel.getBOB(); int BOW = ckuDogScoreModel.getBOW(); int BIS = ckuDogScoreModel.getBIS(); int BIG = ckuDogScoreModel.getBIG(); int BOS = ckuDogScoreModel.getBOS(); int CACIB = ckuDogScoreModel.getCACIB(); //*****************世界冠军登录********* CkuDogLoginType ckuDogLoginType = new CkuDogLoginType(); ckuDogLoginType.setLoginType("世界冠军登录"); ckuDogLoginType.setFlag(false); if("no".equals(map.get("dateStatus"))){//犬龄资格校验 resultModel.setRc(107); message = "犬龄小于15个月"; ckuDogLoginType.setFlag(false); }else if("no".equals(map.get("payDnaStatus"))){//dna存档校验 resultModel.setRc(108); message = "dna未存档"; ckuDogLoginType.setFlag(false); }else if("no".equals(map.get("dogGenerationsStatus"))){//犬只代数校验 resultModel.setRc(109); message = "犬龄代数未到3代"; }else if(CACIB>3){//累计获得4张以上CACIB卡 ckuDogLoginType.setFlag(false); } else{ //符合世界冠军登录的信息存储 ckuDogLoginType.setFlag(true); } //********************************* //*****************铜质登录*********** CkuDogLoginType ckuDogLoginType1 = new CkuDogLoginType(); ckuDogLoginType1.setLoginType("铜质冠军登录"); ckuDogLoginType1.setFlag(false); if("no".equals(map.get("dateStatus"))){//犬龄资格校验 message = "犬龄小于15个月"; ckuDogLoginType1.setFlag(false); }else if("no".equals(map.get("payDnaStatus"))){//dna存档校验 message = "dna未存档"; ckuDogLoginType1.setFlag(false); }else if((CC>0)&&(CC+JCC>3)&&(CC+JCC+RCC/2)>7&&(BOB>0||BOS>0||BOW>0)){ ckuDogLoginType1.setFlag(true); } //********************************* //*****************银质登录*********** CkuDogLoginType ckuDogLoginType2 = new CkuDogLoginType(); ckuDogLoginType2.setLoginType("银质冠军登录"); ckuDogLoginType2.setFlag(false); if("no".equals(map.get("dateStatus"))){//犬龄资格校验 message = "犬龄小于15个月"; ckuDogLoginType2.setFlag(false); }else if("no".equals(map.get("payDnaStatus"))){//dna存档校验 message = "dna未存档"; ckuDogLoginType2.setFlag(false); }else if((CC>0)&&(CC+JCC>7)&&(CC+JCC+RCC/2)>11&&(BOB>1)){ ckuDogLoginType2.setFlag(true); } //********************************* //*****************金质登录*********** CkuDogLoginType ckuDogLoginType3 = new CkuDogLoginType(); ckuDogLoginType3.setLoginType("金质冠军登录"); ckuDogLoginType3.setFlag(false); if("no".equals(map.get("dateStatus"))){//犬龄资格校验 message = "犬龄小于15个月"; ckuDogLoginType3.setFlag(false); }else if("no".equals(map.get("payDnaStatus"))){//dna存档校验 message = "dna未存档"; ckuDogLoginType3.setFlag(false); }else if((CC>0)&&(CC+JCC>11)&&(CC+JCC+RCC/2)>19&&(BIG>1)){ ckuDogLoginType3.setFlag(true); } //********************************* //*****************超级登录*********** CkuDogLoginType ckuDogLoginType4 = new CkuDogLoginType(); ckuDogLoginType4.setLoginType("超级冠军登录"); ckuDogLoginType4.setFlag(false); if("no".equals(map.get("dateStatus"))){//犬龄资格校验 message = "犬龄小于15个月"; ckuDogLoginType4.setFlag(false); }else if("no".equals(map.get("payDnaStatus"))){//dna存档校验 message = "dna未存档"; ckuDogLoginType4.setFlag(false); }else if((CC>0)&&(CC+JCC>11)&&(CC+JCC+RCC/2)>19&&(BIG>1)){ ckuDogLoginType4.setFlag(true); } //********************************* loginTypeList.add(ckuDogLoginType); loginTypeList.add(ckuDogLoginType1); loginTypeList.add(ckuDogLoginType2); loginTypeList.add(ckuDogLoginType3); loginTypeList.add(ckuDogLoginType4); eventIntroduce.get(0).setLoginTypeList(loginTypeList); resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg(""); }else{ resultModel.setRc(101); resultModel.setMsg("该犬只不在登录会员名下"); } return resultModel.getToJson(); } /** * * @Description:获取登录会员的CKU犬只列表 * @author: zhuoHeng * @version: 2016年4月6日 下午6:24:24 */ public String getDogListByLoginUser(String userNum){ ExecResultModel resultModel = new ExecResultModel(); List eventIntroduce = ckuDogMapper.getDogListByLoginUser(userNum); resultModel.setItems(eventIntroduce); resultModel.setRc(0); resultModel.setMsg(""); return resultModel.getToJson(); } }