Commit 08718b93 authored by shiyu's avatar shiyu

寄售详情

parent 6bda2eca
......@@ -135,28 +135,30 @@ public class ConsignSaleEnum {
public enum AppletNodeDescEnum {
CREATE_ORDER("下单成功", "", "0"),
VALUATE("平台依据图文估价", "等待平台进行初步估价,一般在2小时以内完成。", "10,15,20,23"),
SEND("送货至平台", "", "30"),
IDENTIFY("平台实物鉴定并定价", "平台签收后,会在1~3天完成货品的鉴定和估价", "40,50,53,60"),
CONSIGN_SALEING("平台寄售中", "", "70"),
PRE_PAY("货品售出,待结款", "货品售出后,平台会在20天内完成打款。如果实际的售出价低于预估价,则会在售出后由客服通知您具体情况。", "80"),
FINISH_PAT("平台完成结款", "", "90"),
CANCEL("取消寄售", "", "100,101"),
CREATE_ORDER(0, "下单成功", "", "0"),
VALUATE(10, "平台依据图文估价", "等待平台进行初步估价,一般在2小时以内完成。", "10,15,20,23"),
SEND(20,"送货至平台", "", "30"),
IDENTIFY(30,"平台实物鉴定并定价", "平台签收后,会在1~3天完成货品的鉴定和估价", "40,50,53,60"),
CONSIGN_SALEING(40, "平台寄售中", "", "70"),
PRE_PAY(50,"货品售出,待结款", "货品售出后,平台会在20天内完成打款。如果实际的售出价低于预估价,则会在售出后由客服通知您具体情况。", "80"),
FINISH_PAT(60,"平台完成结款", "", "90"),
CANCEL(70,"取消寄售", "", "100,101"),
;
private int code;
private String node;
private String des;
private String targetOperateType;
AppletNodeDescEnum(String node, String des, String targetOperateType) {
AppletNodeDescEnum(int code, String node, String des, String targetOperateType) {
this.code = code;
this.node = node;
this.des = des;
this.targetOperateType = targetOperateType;
}
public static ConsignSaleEnum.AppletNodeDescEnum getNameByCode(String targetOperateType) {
public static ConsignSaleEnum.AppletNodeDescEnum getAppletNodeDescByType(String targetOperateType) {
for (ConsignSaleEnum.AppletNodeDescEnum appletNodeDescEnum : ConsignSaleEnum.AppletNodeDescEnum.values()) {
if (appletNodeDescEnum.getTargetOperateType().contains(targetOperateType)) {
return appletNodeDescEnum;
......@@ -165,6 +167,23 @@ public class ConsignSaleEnum {
return null;
}
public static ConsignSaleEnum.AppletNodeDescEnum getAppletNodeDescValues() {
/* ConsignSaleEnum.AppletNodeDescEnum.values();
for (ConsignSaleEnum.AppletNodeDescEnum appletNodeDescEnum : ConsignSaleEnum.AppletNodeDescEnum.values()) {
if (appletNodeDescEnum.getTargetOperateType().contains(targetOperateType)) {
return appletNodeDescEnum;
}
}*/
return null;
}
public int getCode() {
return code;
}
public String getNode() {
return node;
}
......
......@@ -34,10 +34,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -180,8 +177,64 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
public Result findDetail(ConsignSaleRequestDto dto) {
String saleId = dto.getSaleId();
List<ConsignSaleRecord> consignSaleRecordList = consignSaleRecordDao.find(saleId);
List<AppletStateNodeVo> appletStateNodeVoList = new ArrayList<>();
ConsignSaleEnum.AppletNodeDescEnum[] appletNodeDescEnums = ConsignSaleEnum.AppletNodeDescEnum.values();
List<ConsignSaleEnum.AppletNodeDescEnum> appletNodeDescEnumList = Arrays.stream(appletNodeDescEnums).collect(Collectors.toList());
//判断最终状态是否取消寄售
long cancelTypeRecordNum = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getCode()
|| a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode()).count();
//没有取消寄售,则时间线最终的状态为寄售完成
if (cancelTypeRecordNum == 0) {
appletNodeDescEnumList.remove((appletNodeDescEnumList.size() -1));
}
//逐一判断节点
//下单成功
AppletStateNodeVo appletStateNodeVo1 = new AppletStateNodeVo();
appletStateNodeVo1.setNode(ConsignSaleEnum.AppletNodeDescEnum.CREATE_ORDER.getNode());
ConsignSaleRecord consignSaleRecord1 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.CREATE_ORDER.getCode()).collect(Collectors.toList()).get(0);
appletStateNodeVo1.setTime(consignSaleRecord1.getCreateTime());
appletStateNodeVoList.add(appletStateNodeVo1);
//平台依据图文估价
AppletStateNodeVo appletStateNodeVo2 = new AppletStateNodeVo();
appletStateNodeVo2.setNode(ConsignSaleEnum.AppletNodeDescEnum.VALUATE.getNode());
List<ConsignSaleRecord> consignSaleRecordList2 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.WAIT_USER_CONFIRM_VALUATE.getCode()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(consignSaleRecordList2)) {
appletStateNodeVo2.setDesc(ConsignSaleEnum.AppletNodeDescEnum.VALUATE.getDes());
} else {
appletStateNodeVo2.setDesc(consignSaleRecordList2.get(0).getContent()+";"+consignSaleRecordList2.get(0).getRemark());
}
appletStateNodeVoList.add(appletStateNodeVo2);
//送货至平台
AppletStateNodeVo appletStateNodeVo3 = new AppletStateNodeVo();
appletStateNodeVo3.setNode(ConsignSaleEnum.AppletNodeDescEnum.SEND.getNode());
List<ConsignSaleRecord> consignSaleRecordList3 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.USER_SEND.getCode()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(consignSaleRecordList3)) {
appletStateNodeVo3.setDesc(ConsignSaleEnum.AppletNodeDescEnum.SEND.getDes());
} else {
appletStateNodeVo3.setDesc(consignSaleRecordList3.get(0).getContent()+";"+consignSaleRecordList3.get(0).getRemark());
}
appletStateNodeVoList.add(appletStateNodeVo3);
//平台实物鉴定并定价
consignSaleRecordList.forEach(consignSaleRecord -> {
AppletStateNodeVo appletStateNodeVo = new AppletStateNodeVo();
String type = consignSaleRecord.getType().toString();
ConsignSaleEnum.AppletNodeDescEnum appletNodeDescEnum = ConsignSaleEnum.AppletNodeDescEnum.getAppletNodeDescByType(type);
if (appletNodeDescEnum != null) {
appletStateNodeVo.setNode(appletNodeDescEnum.getNode());
}
appletStateNodeVoList.add(appletStateNodeVo);
});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment