Commit cea5f99e authored by shiyu's avatar shiyu

小程序寄售详情

parent 08718b93
...@@ -103,6 +103,7 @@ public class ConsignSaleEnum { ...@@ -103,6 +103,7 @@ public class ConsignSaleEnum {
FINISH(90, "寄售单完成"), FINISH(90, "寄售单完成"),
CUSTOM_CANCEL(100, "用户取消寄售"), CUSTOM_CANCEL(100, "用户取消寄售"),
SYS_CANCEL(101, "平台取消寄售"), SYS_CANCEL(101, "平台取消寄售"),
TIME_OUT_CANCEL(102, "超时未确认,取消寄售"),
; ;
private int code; private int code;
......
package com.wwdz.ch.core.consts;
public enum LogisticsEnum {
JD("JD", "京东快递"),
SF("SF", "顺丰快递"),
STO("STO", "申通快递"),
YTO("YTO", "圆通快递"),
ZTO("ZTO", "中通快递"),
YUNDA("YUNDA", "韵达快递"),
;
private String code;
private String name;
LogisticsEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static String getNameByCode(String code) {
for (LogisticsEnum logisticsEnum : LogisticsEnum.values()) {
if (code.equals(logisticsEnum.getCode())) {
return logisticsEnum.getName();
}
}
return null;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class ConsignSaleRecordVo implements Entity {
private String content;
private String remark;
private String saleId;
private String itemName;
private String image;
private Date time;
/**
* 是否有估价
*/
private Boolean isHasPrice;
/**
* 是否超时未确认
*/
private Boolean isTimeOut;
private String tip;
/**
* 客户端状态
*/
private Integer customState;
/**
* 客户端状态
*/
private String customStateName;
}
...@@ -40,8 +40,8 @@ public class WebMvcConfiguration implements WebMvcConfigurer { ...@@ -40,8 +40,8 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
.excludePathPatterns("/*.html", "/**/*.html", "/**/*.css", "/**/*.js" .excludePathPatterns("/*.html", "/**/*.html", "/**/*.css", "/**/*.js"
, "/wx/user/loginByWx", "/wx/user/finishLogin", "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha", "/wx/user/login", "/wx/user/fillCode", , "/wx/user/loginByWx", "/wx/user/finishLogin", "/wx/user/loginByMobile", "/wx/user/loginRegCaptcha", "/wx/user/updateRegCaptcha", "/wx/user/login", "/wx/user/fillCode",
"/officialAccountCallback/**", "/officialAccountCallback/**",
"/imCallback/**", "/wx/category/**" "/imCallback/**", "/wx/category/**",
// "/wx/consignSale/**", "/wx/item/**" "/wx/consignSale/**", "/wx/item/**"
/* "/wx/officialAccount/**", /* "/wx/officialAccount/**",
"/wx/item/**", "/wx/item/**",
"/wx/aiAssistant/**", "/wx/aiAssistant/**",
......
...@@ -22,13 +22,24 @@ public class ConsignSaleAppletVo implements Entity { ...@@ -22,13 +22,24 @@ public class ConsignSaleAppletVo implements Entity {
/** /**
* 商品名称 * 商品名称
*/ */
private String name; private String itemName;
/** /**
* 寄售单号 * 寄售单号
*/ */
private String saleId; private String saleId;
/**
* 客户端状态
*/
private Integer customState;
/**
* 客户端状态
*/
private String customStateName;
/** /**
* 下单时间 * 下单时间
*/ */
......
...@@ -4,6 +4,7 @@ import com.alibaba.dubbo.config.annotation.Reference; ...@@ -4,6 +4,7 @@ import com.alibaba.dubbo.config.annotation.Reference;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.wwdz.ch.core.consts.ConsignSaleEnum; import com.wwdz.ch.core.consts.ConsignSaleEnum;
import com.wwdz.ch.core.consts.ItemStateEnum; import com.wwdz.ch.core.consts.ItemStateEnum;
import com.wwdz.ch.core.entity.ConsignSaleRecordVo;
import com.wwdz.ch.core.entity.ConsignSaleVo; import com.wwdz.ch.core.entity.ConsignSaleVo;
import com.wwdz.ch.core.type.PageSearchResult; import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
...@@ -21,8 +22,10 @@ import com.wwdz.ch.db.domain.User; ...@@ -21,8 +22,10 @@ import com.wwdz.ch.db.domain.User;
import com.wwdz.ch.db.dto.request.CoinRequestDto; import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
import com.wwdz.ch.wx.entity.vo.AppletStateNodeVo; import com.wwdz.ch.wx.entity.vo.AppletStateNodeVo;
import com.wwdz.ch.wx.entity.vo.ConsignSaleAppletVo;
import com.wwdz.ch.wx.service.ConsignSaleService; import com.wwdz.ch.wx.service.ConsignSaleService;
import com.wwdz.user.api.service.user.UserReadService; import com.wwdz.user.api.service.user.UserReadService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper; import com.xxdxxs.utils.EntityMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -175,73 +178,228 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -175,73 +178,228 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Override @Override
public Result findDetail(ConsignSaleRequestDto dto) { public Result findDetail(ConsignSaleRequestDto dto) {
String saleId = dto.getSaleId(); ConsignSaleAppletVo consignSaleAppletVo = new ConsignSaleAppletVo();
List<ConsignSaleRecord> consignSaleRecordList = consignSaleRecordDao.find(saleId); try {
List<AppletStateNodeVo> appletStateNodeVoList = new ArrayList<>(); String saleId = dto.getSaleId();
List<ConsignSaleRecord> consignSaleRecordList = consignSaleRecordDao.find(saleId);
ConsignSaleEnum.AppletNodeDescEnum[] appletNodeDescEnums = ConsignSaleEnum.AppletNodeDescEnum.values(); List<AppletStateNodeVo> appletStateNodeVoList = new ArrayList<>();
List<ConsignSaleEnum.AppletNodeDescEnum> appletNodeDescEnumList = Arrays.stream(appletNodeDescEnums).collect(Collectors.toList()); ConsignSale consignSale = consignSaleDao.findById(saleId);
//判断最终状态是否取消寄售 long itemId = consignSale.getItemId();
long cancelTypeRecordNum = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getCode() Item item = itemDao.findById(itemId);
|| a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode()).count();
//没有取消寄售,则时间线最终的状态为寄售完成 consignSaleAppletVo.setSaleId(saleId);
if (cancelTypeRecordNum == 0) { consignSaleAppletVo.setImage(item.getImages().split(";")[0]);
appletNodeDescEnumList.remove((appletNodeDescEnumList.size() -1)); consignSaleAppletVo.setItemName(item.getName());
} consignSaleAppletVo.setSaleTime(consignSale.getSaleTime());
consignSaleAppletVo.setLogisticsCode(consignSale.getLogisticsCode());
consignSaleAppletVo.setLogisticsName(consignSale.getLogisticsCode());
consignSaleAppletVo.setWaybill(consignSale.getWaybill());
consignSaleAppletVo.setSendType("自行寄出");
consignSaleAppletVo.setCustomState(consignSale.getCustomState());
consignSaleAppletVo.setCustomStateName(ConsignSaleEnum.SaleForUserStateEnum.getNameByCode(consignSale.getCustomState()));
ConsignSaleEnum.AppletNodeDescEnum[] appletNodeDescEnums = ConsignSaleEnum.AppletNodeDescEnum.values();
List<ConsignSaleEnum.AppletNodeDescEnum> appletNodeDescEnumList = Arrays.stream(appletNodeDescEnums).collect(Collectors.toList());
for (ConsignSaleEnum.AppletNodeDescEnum appletNodeDescEnum : appletNodeDescEnumList) {
AppletStateNodeVo appletStateNodeVo = new AppletStateNodeVo();
appletStateNodeVo.setNode(appletNodeDescEnum.getNode());
appletStateNodeVo.setDesc(appletStateNodeVo.getDesc());
appletStateNodeVo.setPassed(false);
appletStateNodeVoList.add(appletStateNodeVo);
}
//逐一判断节点 for (ConsignSaleRecord consignSaleRecord : consignSaleRecordList) {
//下单成功 if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.CREATE_ORDER.getCode()) {
AppletStateNodeVo appletStateNodeVo1 = new AppletStateNodeVo(); appletStateNodeVoList.get(0).setPassed(true);
appletStateNodeVo1.setNode(ConsignSaleEnum.AppletNodeDescEnum.CREATE_ORDER.getNode()); appletStateNodeVoList.get(0).setTime(consignSaleRecord.getCreateTime());
ConsignSaleRecord consignSaleRecord1 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.CREATE_ORDER.getCode()).collect(Collectors.toList()).get(0); appletStateNodeVoList.get(1).setPassed(true);
appletStateNodeVo1.setTime(consignSaleRecord1.getCreateTime()); appletStateNodeVoList.get(1).setDesc(ConsignSaleEnum.AppletNodeDescEnum.VALUATE.getDes());
appletStateNodeVoList.add(appletStateNodeVo1); } else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getCode()) {
appletStateNodeVoList.get(7).setPassed(true);
appletStateNodeVoList.get(7).setDesc(consignSaleRecord.getContent() + ";" + consignSaleRecord.getRemark());
break;
} else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode()) {
appletStateNodeVoList.get(7).setPassed(true);
appletStateNodeVoList.get(7).setDesc(consignSaleRecord.getContent() + ";" + consignSaleRecord.getRemark());
break;
} else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.TIME_OUT_CANCEL.getCode()) {
appletStateNodeVoList.get(7).setPassed(true);
appletStateNodeVoList.get(7).setDesc(consignSaleRecord.getContent());
break;
}
//图文估价
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.VALUATE.getCode()) {
appletStateNodeVoList.get(1).setDesc(consignSaleRecord.getContent() + ";" + consignSaleRecord.getRemark());
}
//送货至平台
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.USER_SEND.getCode()) {
appletStateNodeVoList.get(2).setPassed(true);
appletStateNodeVoList.get(2).setDesc(consignSaleRecord.getContent() + ";" + consignSaleRecord.getRemark());
consignSaleAppletVo.setSendTime(consignSaleRecord.getCreateTime());
}
// 平台事务鉴定并定价,尚未鉴定
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.IDENTIFY.getCode()) {
appletStateNodeVoList.get(3).setPassed(true);
appletStateNodeVoList.get(3).setDesc(ConsignSaleEnum.AppletNodeDescEnum.IDENTIFY.getDes());
}
// 平台事务鉴定并定价,鉴定后
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.WAIT_USER_CONFIRM_IDENTIFY.getCode()) {
appletStateNodeVoList.get(3).setPassed(true);
appletStateNodeVoList.get(3).setDesc(consignSaleRecord.getContent() + ";" + consignSaleRecord.getRemark());
}
// 寄售中
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.SALEING.getCode()) {
appletStateNodeVoList.get(4).setPassed(true);
}
// 货品售出,待结款
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.SALED.getCode()) {
appletStateNodeVoList.get(5).setPassed(true);
appletStateNodeVoList.get(5).setDesc(ConsignSaleEnum.AppletNodeDescEnum.PRE_PAY.getDes());
}
// 平台完成结款
else if (consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.FINISH.getCode()) {
appletStateNodeVoList.get(6).setPassed(true);
consignSaleAppletVo.setFinishTime(consignSaleRecord.getCreateTime());
}
//平台依据图文估价 }
AppletStateNodeVo appletStateNodeVo2 = new AppletStateNodeVo(); //判断最终状态是否取消寄售,如果是取消寄售,需要把中间没有经历的节点删除
appletStateNodeVo2.setNode(ConsignSaleEnum.AppletNodeDescEnum.VALUATE.getNode()); if (appletStateNodeVoList.get(7).getPassed()) {
List<ConsignSaleRecord> consignSaleRecordList2 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.WAIT_USER_CONFIRM_VALUATE.getCode()).collect(Collectors.toList()); appletStateNodeVoList = appletStateNodeVoList.stream().filter(appletStateNodeVo -> appletStateNodeVo.getPassed()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(consignSaleRecordList2)) { } else {
appletStateNodeVo2.setDesc(ConsignSaleEnum.AppletNodeDescEnum.VALUATE.getDes()); //没有取消寄售,则取消最后的取消节点
} else { appletStateNodeVoList.remove(7);
appletStateNodeVo2.setDesc(consignSaleRecordList2.get(0).getContent()+";"+consignSaleRecordList2.get(0).getRemark()); }
consignSaleAppletVo.setNodeVoList(appletStateNodeVoList);
return Result.success(consignSaleAppletVo);
} catch (Exception e) {
logger.error("寄售单详情查询 error : {}", e);
} }
appletStateNodeVoList.add(appletStateNodeVo2); return Result.failed();
}
//送货至平台 @Override
AppletStateNodeVo appletStateNodeVo3 = new AppletStateNodeVo(); public Result findImgValuateDetail(ConsignSaleRequestDto dto) {
appletStateNodeVo3.setNode(ConsignSaleEnum.AppletNodeDescEnum.SEND.getNode()); try {
List<ConsignSaleRecord> consignSaleRecordList3 = consignSaleRecordList.stream().filter(a->a.getType().intValue()==ConsignSaleEnum.OperateTypeEnum.USER_SEND.getCode()).collect(Collectors.toList()); //首先检验有没有超时
if (CollectionUtils.isEmpty(consignSaleRecordList3)) { String saleId = dto.getSaleId();
appletStateNodeVo3.setDesc(ConsignSaleEnum.AppletNodeDescEnum.SEND.getDes()); List<ConsignSaleRecord> consignSaleRecordList = consignSaleRecordDao.find(saleId);
} else { ConsignSale consignSale = consignSaleDao.findById(saleId);
appletStateNodeVo3.setDesc(consignSaleRecordList3.get(0).getContent()+";"+consignSaleRecordList3.get(0).getRemark()); long itemId = consignSale.getItemId();
Item item = itemDao.findById(itemId);
ConsignSaleRecordVo consignSaleRecordVo = new ConsignSaleRecordVo();
consignSaleRecordVo.setImage(item.getImages().split(";")[0]);
consignSaleRecordVo.setItemName(item.getName());
consignSaleRecordVo.setCustomState(consignSale.getCustomState());
consignSaleRecordVo.setIsTimeOut(false);
consignSaleRecordList = consignSaleRecordList.stream().filter(consignSaleRecord -> consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.VALUATE.getCode()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(consignSaleRecordList)) {
consignSaleRecordVo.setIsHasPrice(false);
} else {
consignSaleRecordVo.setIsHasPrice(true);
consignSaleRecordVo.setContent(consignSaleRecordList.get(0).getContent());
consignSaleRecordVo.setRemark(consignSaleRecordList.get(0).getRemark());
consignSaleRecordVo.setTime(consignSaleRecordList.get(0).getCreateTime());
}
consignSaleRecordVo.setTip("初步估价结果仅供参考,想要获得真实的报价需要将货品送至平台,由平台专家对实物进行专业鉴定才可以得出结果。");
long num = consignSaleRecordList.stream().filter(consignSaleRecord -> consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.USER_CONFIRM_VALUATE.getCode()).count();
//尚未确认
if (num == 0) {
Date startTime = consignSaleRecordList.get(0).getCreateTime();
Date endTime = new Date();
long diffInMillies = Math.abs(endTime.getTime() - startTime.getTime());
long diffInHours = diffInMillies / (60 * 60 * 1000);
if (diffInHours >= 24) {
consignSaleRecordVo.setIsTimeOut(true);
//超时了,但是当前寄售单不是取消状态,就更新寄售单状态
if (consignSale.getCustomState().intValue() != ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode()) {
//超时取消
timeOutForCancel(dto);
consignSaleRecordVo.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode());
logger.info(">>>>>> 寄售单图文估价超时未确认,更改寄售单状态为已取消,并记录操作节点 <<<<<<<");
} else {
logger.info(">>>>>> 寄售单号:{} , 查看图文估价详情,已是取消状态 <<<<<<<", saleId);
}
}
}
return Result.success(consignSaleRecordVo);
} catch (Exception e) {
logger.error("图文估价详情 error : {}", e);
} }
appletStateNodeVoList.add(appletStateNodeVo3); return Result.failed();
}
//平台实物鉴定并定价
consignSaleRecordList.forEach(consignSaleRecord -> { @Override
AppletStateNodeVo appletStateNodeVo = new AppletStateNodeVo(); public Result findIdentifyDetail(ConsignSaleRequestDto dto) {
String type = consignSaleRecord.getType().toString(); try {
ConsignSaleEnum.AppletNodeDescEnum appletNodeDescEnum = ConsignSaleEnum.AppletNodeDescEnum.getAppletNodeDescByType(type); String saleId = dto.getSaleId();
if (appletNodeDescEnum != null) { ConsignSale consignSale = consignSaleDao.findById(saleId);
appletStateNodeVo.setNode(appletNodeDescEnum.getNode()); long itemId = consignSale.getItemId();
Item item = itemDao.findById(itemId);
ConsignSaleRecordVo consignSaleRecordVo = new ConsignSaleRecordVo();
consignSaleRecordVo.setImage(item.getImages().split(";")[0]);
consignSaleRecordVo.setItemName(item.getName());
consignSaleRecordVo.setCustomState(consignSale.getCustomState());
consignSaleRecordVo.setIsTimeOut(false);
List<ConsignSaleRecord> consignSaleRecordList = consignSaleRecordDao.find(saleId);
consignSaleRecordList = consignSaleRecordList.stream().filter(consignSaleRecord -> consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.IDENTIFY.getCode()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(consignSaleRecordList)) {
consignSaleRecordVo.setIsHasPrice(false);
} else {
consignSaleRecordVo.setIsHasPrice(true);
consignSaleRecordVo.setContent(consignSaleRecordList.get(0).getContent());
consignSaleRecordVo.setRemark(consignSaleRecordList.get(0).getRemark());
consignSaleRecordVo.setTime(consignSaleRecordList.get(0).getCreateTime());
} }
long num = consignSaleRecordList.stream().filter(consignSaleRecord -> consignSaleRecord.getType().intValue() == ConsignSaleEnum.OperateTypeEnum.USER_CONFIRM_IDENTIFY.getCode()).count();
//尚未确认
appletStateNodeVoList.add(appletStateNodeVo); if (num == 0) {
}); Date startTime = consignSaleRecordList.get(0).getCreateTime();
Date endTime = new Date();
long diffInMillies = Math.abs(endTime.getTime() - startTime.getTime());
long diffInHours = diffInMillies / (60 * 60 * 1000);
return null; if (diffInHours >= 24) {
consignSaleRecordVo.setIsTimeOut(true);
//超时了,但是当前寄售单不是取消状态,就更新寄售单状态
if (consignSale.getCustomState().intValue() != ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode()) {
//超时取消
timeOutForCancel(dto);
consignSaleRecordVo.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode());
logger.info(">>>>>> 寄售单实物鉴定超时未确认,更改寄售单状态为已取消,并记录操作节点 <<<<<<<");
} else {
logger.info(">>>>>> 寄售单号:{} , 查看实物鉴定详情,已是取消状态 <<<<<<<", saleId);
}
}
}
return Result.success(consignSaleRecordVo);
} catch (Exception e) {
logger.error("实物鉴定详情 error : {}", e);
}
return Result.failed();
} }
@Transactional
@Override
public Result timeOutForCancel(ConsignSaleRequestDto dto) {
try {
ConsignSale consignSale = new ConsignSale();
consignSale.setSaleId(dto.getSaleId());
consignSale.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.CANCEL.getCode());
consignSale.setSystemState(ConsignSaleEnum.SaleForSysStateEnum.CANCEL.getCode());
consignSaleDao.update(consignSale);
//用户超时未确认,取消寄售单
consignSaleRecordDao.insert(dto.getSaleId(), "超时未确认,取消寄售", ConsignSaleEnum.OperateTypeEnum.TIME_OUT_CANCEL.getCode(), null);
return Result.success();
} catch (Exception e) {
logger.error("用户超时未确认,取消寄售单 error : {}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
@Override @Override
public Result confirmForImgValuate(ConsignSaleRequestDto dto) { public Result confirmForImgValuate(ConsignSaleRequestDto dto) {
......
...@@ -36,6 +36,20 @@ public interface ConsignSaleService { ...@@ -36,6 +36,20 @@ public interface ConsignSaleService {
*/ */
Result findDetail(ConsignSaleRequestDto dto); Result findDetail(ConsignSaleRequestDto dto);
/**
* 图文估价详情
* @param dto
* @return
*/
Result findImgValuateDetail(ConsignSaleRequestDto dto);
/**
* 实物鉴定详情
* @param dto
* @return
*/
Result findIdentifyDetail(ConsignSaleRequestDto dto);
/** /**
* 图文鉴定后用户确认 * 图文鉴定后用户确认
...@@ -44,6 +58,14 @@ public interface ConsignSaleService { ...@@ -44,6 +58,14 @@ public interface ConsignSaleService {
*/ */
Result confirmForImgValuate(ConsignSaleRequestDto dto); Result confirmForImgValuate(ConsignSaleRequestDto dto);
/**
* 超时未确认取消寄售单
* @param dto
* @return
*/
Result timeOutForCancel(ConsignSaleRequestDto dto);
/** /**
* 用户寄出商品 * 用户寄出商品
* @param dto * @param dto
......
package com.wwdz.ch.wx.web; package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.LogisticsEnum;
import com.wwdz.ch.core.consts.ResultCode; import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
...@@ -19,7 +20,8 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -19,7 +20,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
import java.util.*;
/** /**
* 寄售单 * 寄售单
...@@ -104,6 +106,47 @@ public class ConsignSaleController { ...@@ -104,6 +106,47 @@ public class ConsignSaleController {
} }
@ApiOperation(value = "用户查询寄售单详情")
@PostMapping("/findDetail")
public Result findDetail(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】用户查询寄售单详情,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
return consignSaleService.findDetail(dto);
}
@ApiOperation(value = "图文估价详情")
@PostMapping("/findImgValuateDetail")
public Result findImgValuateDetail(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】图文估价详情,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
return consignSaleService.findImgValuateDetail(dto);
}
@ApiOperation(value = "实物鉴定详情")
@PostMapping("/findIdentifyDetail")
public Result findIdentifyDetail(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】实物鉴定详情,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
return consignSaleService.findIdentifyDetail(dto);
}
@ApiOperation(value = "图文鉴定后用户确认") @ApiOperation(value = "图文鉴定后用户确认")
@PostMapping("/confirmForImgValuate") @PostMapping("/confirmForImgValuate")
...@@ -144,6 +187,20 @@ public class ConsignSaleController { ...@@ -144,6 +187,20 @@ public class ConsignSaleController {
} }
@ApiOperation(value = "超时未确认取消寄售单")
@PostMapping("/timeOutForcancel")
public Result timeOutForcancel(@RequestBody ConsignSaleRequestDto dto) {
logger.info("【请求开始】超时未确认取消寄售单,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("saleId", "寄售单号").must().string()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
return consignSaleService.timeOutForCancel(dto);
}
@ApiOperation(value = "用户取消寄售单") @ApiOperation(value = "用户取消寄售单")
@PostMapping("/cancel") @PostMapping("/cancel")
public Result cancel(@RequestBody ConsignSaleRequestDto dto) { public Result cancel(@RequestBody ConsignSaleRequestDto dto) {
...@@ -157,4 +214,25 @@ public class ConsignSaleController { ...@@ -157,4 +214,25 @@ public class ConsignSaleController {
} }
return consignSaleService.customCancel(dto); return consignSaleService.customCancel(dto);
} }
@ApiOperation(value = "获取快递公司列表")
@PostMapping("/getLogisticsList")
public Result getLogisticsList() {
try {
LogisticsEnum[] logisticsEnums = LogisticsEnum.values();
List<Map<String, String>> mapList = new ArrayList<>();
Arrays.stream(logisticsEnums).forEach(logisticsEnum -> {
mapList.add(new HashMap() {{
put("code", logisticsEnum.getCode());
}});
mapList.add(new HashMap() {{
put("name", logisticsEnum.getName());
}});
});
return Result.success(mapList);
} catch (Exception e) {
return Result.failed();
}
}
} }
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