package com.ibeetl.admin.console.service; import com.ibeetl.admin.console.dao.XzxOrderAppraiseInfoDao; import com.ibeetl.admin.console.model.AppraiseInfoTotalModel; import com.ibeetl.admin.console.model.XzxOrderAppraiseInfoModel; import com.ibeetl.admin.console.util.DateUtil; import com.ibeetl.admin.console.util.DoubleUtil; import com.ibeetl.admin.core.entity.XzxOrderAppraiseInfo; import com.ibeetl.admin.core.service.CoreBaseService; import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.enums.EvaluationLabelType; import org.apache.commons.codec.binary.Base64; import org.beetl.sql.core.engine.PageQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * XzxOrderAppraiseInfo Service */ @Service @Transactional public class XzxOrderAppraiseInfoService extends CoreBaseService { @Autowired private XzxOrderAppraiseInfoDao xzxOrderAppraiseInfoDao; @Autowired XzxCityPartnerService cityPartnerService; final Base64 base64 = new Base64(); public PageQueryqueryByCondition(PageQuery query){ PageQuery ret = xzxOrderAppraiseInfoDao.queryByCondition(query); queryListAfter(ret.getList()); return ret; } public void batchDelXzxOrderAppraiseInfo(List ids){ try { xzxOrderAppraiseInfoDao.batchDelXzxOrderAppraiseInfoByIds(ids); } catch (Exception e) { throw new PlatformException("批量删除XzxOrderAppraiseInfo失败", e); } } public Map queryAppraiseInfolist(@RequestBody XzxOrderAppraiseInfoModel model){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); model.setPartnerIds(partnerIds); Map map = new HashMap<>(); int p = model.getPage(); p = (p - 1) * model.getLimit(); model.setPage(p); List list = xzxOrderAppraiseInfoDao.queryAppraiseInfoList(model); for(XzxOrderAppraiseInfoModel infoModel:list) { String nickName = infoModel.getUserName(); if(nickName!=null&&!"".equals(nickName)){ try { nickName =new String(base64.decode(nickName), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } infoModel.setUserName(nickName); infoModel.setRelaName(infoModel.getUserName()); infoModel.setMobilePhone(infoModel.getUserPhone()); infoModel.setName(infoModel.getReceiverName()); String value ="tagAppraise"+infoModel.getStar(); infoModel.setStarDesc(xzxOrderAppraiseInfoDao.queryConfigByAppraseInfo(value)); String tag = infoModel.getTagCodes(); if(null!=tag&&!"".equals(tag)){ String[] strs = tag.split(","); List codes = new ArrayList<>(); for (String str:strs) { codes.add(str); } List tagValues = xzxOrderAppraiseInfoDao.queryConfigByTagCode(codes); //拼接服务打标 StringBuffer buf = new StringBuffer(); for (int i=0;i resArr = new ArrayList<>(); for (String res:resIds) { resArr.add(res); } if(resArr.size()>0){ List urls = xzxOrderAppraiseInfoDao.queryResourceUrls(resArr); infoModel.setImgUrls(urls); } } } map.put("data",list); map.put("code",0); map.put("count",xzxOrderAppraiseInfoDao.queryAppraiseInfoCount(model)); return map; } public List> queryReceiverTotalList(String name){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); List> list = xzxOrderAppraiseInfoDao.queryReceiverTotalList(name,partnerIds); for (Map map:list) { String star = DoubleUtil.roundOne(map.get("star").toString()); map.put("star",star); } return list; } public AppraiseInfoTotalModel queryAppraiseInfoTotalList(){ List partnerIds = cityPartnerService.queryPartnerByCurrent(); AppraiseInfoTotalModel model = new AppraiseInfoTotalModel(); model.setBehaveBadlyNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.ONE_TYPE)); model.setSeriousTardinessNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.TWO_TYPE)); model.setLowProcessingEfficiencyNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.THREE_TYPE)); model.setPoorServiceAwarenessNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.FOUR_TYPE)); model.setBadAttitudeNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.FIVE_TYPE)); model.setLateArrivalNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.SIX_TYPE)); model.setLowProcessingNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.SENVEN_TYPE)); model.setLowServiceNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.EIGHT_TYPE)); model.setSoAttitudeNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.NINE_TYPE)); model.setNoLateNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.TEN_TYPE)); model.setProcessingNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.ELE_TYPE)); model.setServiceAwarenessNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.TELF_TYPE)); model.setGoodAttitudeNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.THR_TYPE)); model.setOnTimeNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.FOR_TYPE)); model.setGoodProcessingNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.FIV_TYPE)); model.setGoodServiceAwarenessNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.SI_TYPE)); model.setGoodPaySatisfiedNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.SEV_TYPE)); model.setGoodServiceSatisfiedNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.EIG_TYPE)); model.setGreatRecyclerNumDesc(xzxOrderAppraiseInfoDao.queryConfigByTagCodeOne(EvaluationLabelType.NIG_TYPE)); //保存星级个数汇总 List> starList = xzxOrderAppraiseInfoDao.queryStarTotalNum(partnerIds); for (Map obj:starList) { String star = obj.get("star").toString(); String starNum = obj.get("num").toString(); if(star.equals("1")){ model.setOneStarNum(starNum); }else if(star.equals("2")){ model.setTwoStarNum(starNum); }else if(star.equals("3")){ model.setThreeStarNum(starNum); }else if(star.equals("4")){ model.setFourStarNum(starNum); }else if(star.equals("5")){ model.setFiveStarNum(starNum); } List codesList = getModelCodeList(star); if(codesList.size()>0){ for (String codesl:codesList) { String[] codesStrs = codesl.split(","); for (String codes:codesStrs) { getConfigNum(model,codes); } } } } return model; } private List getModelCodeList(String star){ return xzxOrderAppraiseInfoDao.getModelCodeList(star); } private AppraiseInfoTotalModel getConfigNum(AppraiseInfoTotalModel model,String configTypeCode){ //无法直接使用switch case,因为是String类型 switch (DateUtil.getCaseByType(configTypeCode)) { case 1:model.setBehaveBadlyNum((Integer.parseInt(model.getBehaveBadlyNum())+1)+""); break; case 2:model.setSeriousTardinessNum((Integer.parseInt(model.getSeriousTardinessNum())+1)+""); break; case 3:model.setLowProcessingEfficiencyNum((Integer.parseInt(model.getLowProcessingEfficiencyNum())+1)+""); break; case 4:model.setPoorServiceAwarenessNum((Integer.parseInt(model.getPoorServiceAwarenessNum())+1)+""); break; case 5:model.setBadAttitudeNum((Integer.parseInt(model.getBadAttitudeNum())+1)+""); break; case 6:model.setLateArrivalNum((Integer.parseInt(model.getLateArrivalNum())+1)+""); break; case 7:model.setLowProcessingNum((Integer.parseInt(model.getLowProcessingNum())+1)+""); break; case 8:model.setLowServiceNum((Integer.parseInt(model.getLowServiceNum())+1)+""); break; case 9:model.setSoAttitudeNum((Integer.parseInt(model.getSoAttitudeNum())+1)+""); break; case 10:model.setNoLateNum((Integer.parseInt(model.getNoLateNum())+1)+""); break; case 11:model.setProcessingNum((Integer.parseInt(model.getProcessingNum())+1)+""); break; case 12:model.setServiceAwarenessNum((Integer.parseInt(model.getServiceAwarenessNum())+1)+""); break; case 13:model.setGoodAttitudeNum((Integer.parseInt(model.getGoodAttitudeNum())+1)+""); break; case 14:model.setOnTimeNum((Integer.parseInt(model.getOnTimeNum())+1)+""); break; case 15:model.setGoodProcessingNum((Integer.parseInt(model.getGoodProcessingNum())+1)+""); break; case 16:model.setGoodServiceAwarenessNum((Integer.parseInt(model.getGoodServiceAwarenessNum())+1)+""); break; case 17:model.setGoodPaySatisfiedNum((Integer.parseInt(model.getGoodPaySatisfiedNum())+1)+""); break; case 18:model.setGoodServiceSatisfiedNum((Integer.parseInt(model.getGoodServiceSatisfiedNum())+1)+""); break; case 19:model.setGreatRecyclerNum((Integer.parseInt(model.getGreatRecyclerNum())+1)+""); break; default: break; } return model; } }