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<XzxOrderAppraiseInfo> {
|
|
@Autowired private XzxOrderAppraiseInfoDao xzxOrderAppraiseInfoDao;
|
@Autowired
|
XzxCityPartnerService cityPartnerService;
|
final Base64 base64 = new Base64();
|
|
public PageQuery<XzxOrderAppraiseInfo>queryByCondition(PageQuery query){
|
PageQuery ret = xzxOrderAppraiseInfoDao.queryByCondition(query);
|
queryListAfter(ret.getList());
|
return ret;
|
}
|
|
public void batchDelXzxOrderAppraiseInfo(List<Long> ids){
|
try {
|
xzxOrderAppraiseInfoDao.batchDelXzxOrderAppraiseInfoByIds(ids);
|
} catch (Exception e) {
|
throw new PlatformException("批量删除XzxOrderAppraiseInfo失败", e);
|
}
|
}
|
|
public Map<String,Object> queryAppraiseInfolist(@RequestBody XzxOrderAppraiseInfoModel model){
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
model.setPartnerIds(partnerIds);
|
Map<String,Object> map = new HashMap<>();
|
int p = model.getPage();
|
p = (p - 1) * model.getLimit();
|
model.setPage(p);
|
List<XzxOrderAppraiseInfoModel> 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<String> codes = new ArrayList<>();
|
for (String str:strs) {
|
codes.add(str);
|
}
|
List<String> tagValues = xzxOrderAppraiseInfoDao.queryConfigByTagCode(codes);
|
//拼接服务打标
|
StringBuffer buf = new StringBuffer();
|
for (int i=0;i<tagValues.size();i++) {
|
if(i==0){
|
buf.append(tagValues.get(i)) ;
|
}else{
|
buf.append("、").append(tagValues.get(i));
|
}
|
}
|
infoModel.setTagDesc(buf.toString());
|
}
|
//拼接图片
|
String resourceIds = infoModel.getResourceIds();
|
if(null!=resourceIds&&!"".equals(resourceIds)){
|
String[] resIds = resourceIds.split(",");
|
List<String> resArr = new ArrayList<>();
|
for (String res:resIds) {
|
resArr.add(res);
|
}
|
if(resArr.size()>0){
|
List<String> 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<Map<String,Object>> queryReceiverTotalList(String name){
|
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
List<Map<String,Object>> list = xzxOrderAppraiseInfoDao.queryReceiverTotalList(name,partnerIds);
|
for (Map<String,Object> map:list) {
|
String star = DoubleUtil.roundOne(map.get("star").toString());
|
map.put("star",star);
|
}
|
return list;
|
}
|
|
public AppraiseInfoTotalModel queryAppraiseInfoTotalList(){
|
List<String> 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<Map<String,Object>> starList = xzxOrderAppraiseInfoDao.queryStarTotalNum(partnerIds);
|
for (Map<String,Object> 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<String> 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<String> 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;
|
}
|
}
|