Commit c37447a0 authored by shiyu's avatar shiyu

后台鉴定单审核流程

parent 45f39837
......@@ -123,6 +123,8 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/admin/user/**", "anon");
filterChainDefinitionMap.put("/admin/sysDistributionOrder/**", "anon");
filterChainDefinitionMap.put("/admin/imageCatelog/**", "anon");
filterChainDefinitionMap.put("/admin/identifyOrder/**", "anon");
filterChainDefinitionMap.put("/admin/invitationCode/**", "anon");
// filterChainDefinitionMap.put("/admin/**", "anon");
......
......@@ -14,6 +14,11 @@ public class SysDistributionOrderVo implements Entity {
*/
private String distributionOrderId;
/**
* 鉴定单号
*/
private String identifyOrderId;
/**
* 预支付id
*/
......@@ -208,6 +213,11 @@ public class SysDistributionOrderVo implements Entity {
*/
private Integer approved;
/**
* 不通过原因
*/
private String approvedRemark;
/**
* 退回收货人名称
......
......@@ -43,10 +43,7 @@ import org.springframework.util.StringUtils;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -124,6 +121,7 @@ public class SysIdentifyOrderServiceImpl implements SysIdentifyOrderService {
SupplierItem supplierItem = supplierItemDao.findById(identifyOrder.getItemId());
distributionOrderVo.setItemName(supplierItem.getName());
long itemPrice = distributionOrder.getAmount() / distributionOrder.getItemNum();
distributionOrderVo.setIdentifyOrderId(identifyOrder.getIdentifyOrderId());
distributionOrderVo.setAmount(PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()));
distributionOrderVo.setReturnName(identifyOrder.getReturnName());
distributionOrderVo.setReturnPhone(identifyOrder.getReturnPhone());
......@@ -150,10 +148,40 @@ public class SysIdentifyOrderServiceImpl implements SysIdentifyOrderService {
@Override
public Result findDetail(IdentifyOrderRequestDto dto) {
try {
IdentifyOrder identifyOrder = identifyOrderDao.findByDistributionOrderId(dto.getDistributionOrderId());
DistributionOrder distributionOrder = distributionOrderDao.findById(dto.getDistributionOrderId());
SysDistributionOrderVo distributionOrderVo = new SysDistributionOrderVo();
EntityMapper.copyAttribute(distributionOrder, distributionOrderVo);
SupplierItem supplierItem = supplierItemDao.findById(identifyOrder.getItemId());
distributionOrderVo.setItemName(supplierItem.getName());
long itemPrice = distributionOrder.getAmount() / distributionOrder.getItemNum();
distributionOrderVo.setAmount(PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()));
distributionOrderVo.setReturnName(identifyOrder.getReturnName());
distributionOrderVo.setReturnPhone(identifyOrder.getReturnPhone());
distributionOrderVo.setReturnAddress(identifyOrder.getReturnAddress());
distributionOrderVo.setItemPrice(PriceUtil.convertPriceFenToYuan(itemPrice));
distributionOrderVo.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(identifyOrder.getState()));
distributionOrderVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(distributionOrder.getType()));
distributionOrderVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
distributionOrderVo.setLogisticsName(LogisticsEnum.getNameByCode(distributionOrder.getLogisticsCode()));
distributionOrderVo.setBuyerName(cacheUtil.getAppletUserNameById(distributionOrder.getBuyerId()));
distributionOrderVo.setTransferState(identifyOrder.getState());
distributionOrderVo.setTransferStateName(DistributionEnum.IdentifyOrderStateEnum.getNameByCode(identifyOrder.getState()));
distributionOrderVo.setApproved(identifyOrder.getApproved());
distributionOrderVo.setApprovedRemark(identifyOrder.getRemark());
distributionOrderVo.setSellerName(identifyOrder.getSellerId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "系统账号" : cacheUtil.getAppletUserNameById(identifyOrder.getSellerId()));
Map<String, Object> map = new HashMap<>();
map.put("data", distributionOrderVo);
//查询物流信息
String fromLogisticsInfo = LogisticsEnum.getNameByCode(identifyOrder.getFromLogisticsCode()) + "," +identifyOrder.getFromWaybill();
String deliveryLogisticsInfo = LogisticsEnum.getNameByCode(distributionOrder.getLogisticsCode()) + "," +distributionOrder.getWaybill();
String returnLogisticsInfo = LogisticsEnum.getNameByCode(identifyOrder.getOutLogisticsCode()) + "," + identifyOrder.getOutWaybill();
map.put("fromLogisticsInfo", fromLogisticsInfo.length() < 11 ? null : fromLogisticsInfo);
map.put("deliveryLogisticsInfo", deliveryLogisticsInfo.length() < 11 ? null : deliveryLogisticsInfo);
map.put("returnLogisticsInfo", returnLogisticsInfo.length() < 11 ? null : returnLogisticsInfo);
return Result.success(map);
} catch (Exception e) {
logger.error("鉴定单审核 error:{}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.error("鉴定单详情 error:{}", e);
}
return Result.failed();
}
......@@ -177,9 +205,6 @@ public class SysIdentifyOrderServiceImpl implements SysIdentifyOrderService {
DistributionOrderRequestDto distributionOrderRequestDto = new DistributionOrderRequestDto();
distributionOrderRequestDto.setDistributionOrderId(dto.getDistributionOrderId());
refund(distributionOrderRequestDto);
/*
distributionOrderDao.updateState(dto.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
distributorProfitDao.updateValidState(dto.getDistributionOrderId(), false);*/
}
identifyOrder.setUpdateTime(new Date());
identifyOrderDao.update(identifyOrder);
......@@ -250,7 +275,7 @@ public class SysIdentifyOrderServiceImpl implements SysIdentifyOrderService {
//修改鉴定单状态
IdentifyOrder identifyOrder = new IdentifyOrder();
identifyOrder.setIdentifyOrderId(dto.getIdentifyOrderId());
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_SENDED.getCode());
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_RETURNED.getCode());
identifyOrder.setOutLogisticsCode(dto.getOutLogisticsCode());
identifyOrder.setOutWaybill(dto.getOutWaybill());
identifyOrderDao.update(identifyOrder);
......
......@@ -55,6 +55,14 @@ public interface CommConsts {
*/
public static final String DEFAULT_BACKGROUND_URL = "https://cdn.wanwudezhi.com/static/web-static/image/1c679aa4e27789e491c070d52577efb1_1125x480.png";
/**
* 退款单前缀
*/
public final static String REFUND_ORDER_PREFIX = "RF";
/**
* 平台中转鉴定单前缀
*/
public final static String IDENTIFY_ORDER_PREFIX = "IE";
}
......@@ -21,6 +21,8 @@ import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.core.entity.DistributionOrderNoticeMsg;
import com.wwdz.ch.core.entity.PayNoticeMsg;
import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.db.dto.request.distribution.IdentifyOrderRequestDto;
import com.wwdz.ch.wx.service.distribution.IdentifyOrderService;
import com.wwdz.ch.wx.service.distribution.SupplierItemService;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils;
......@@ -89,6 +91,9 @@ public class WxPayCallbackController {
@Autowired
WxAppletApi wxAppletApi;
@Autowired
IdentifyOrderService identifyOrderService;
@RequestMapping(value ="/getPayNotify")
public String payNotify(HttpServletRequest request) throws IOException {
logger.info("------------------ 收到微信支付回调通知 ------------------");
......@@ -348,6 +353,8 @@ public class WxPayCallbackController {
String msg = "您的藏馆收到一个新订单,请前往" + url + "查看";
aliSmsSender.sendSms(distributionOrder.getSellerId(), msg);
}
//创建鉴定单
identifyOrderService.createIdentifyOrder(distributionOrderId);
return Result.success();
} catch (Exception e) {
logger.error(">>>>>>>>>>>> 藏馆订单,微信支付回调通知处理失败 error :{}", e);
......
......@@ -195,5 +195,44 @@ public class DistributionOrderDetailVo implements Entity {
*/
private String introduceRebate;
/**
* 藏馆订单中转状态
*/
private Integer transferState;
/**
* 鉴定单不通过的原因
*/
private String approvedRemark;
/**
* 发出的快递公司编码
*/
private String outLogisticsCode;
private String outLogisticsName;
/**
* 发出的物流单号
*/
private String outWaybill;
/**
* 寄到平台的快递公司编码
*/
private String fromLogisticsCode;
private String fromLogisticsName;
/**
* 寄来的物流单号
*/
private String fromWaybill;
/**
* 审核结果
* 0不通过; 1通过
*/
private Integer approved;
}
......@@ -16,6 +16,7 @@ import com.wwdz.ch.db.domain.FollowFansRecord;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.IdentifyOrderRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.wwdz.ch.core.api.WxAppletApi;
import com.wwdz.ch.core.entity.AuctionOfferNoticeMsg;
......@@ -26,6 +27,7 @@ import com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo;
import com.wwdz.ch.wx.service.distribution.DistributionOrderService;
import com.wwdz.ch.wx.service.distribution.DistributorProfitService;
import com.wwdz.ch.core.service.SendMsgService;
import com.wwdz.ch.wx.service.distribution.IdentifyOrderService;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import org.redisson.api.RLock;
......@@ -115,6 +117,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Autowired
IdentifyOrderDao identifyOrderDao;
@Autowired
IdentifyOrderService identifyOrderService;
@Transactional
@Override
public Result createDistributionOrder(DistributionOrderRequestDto dto) {
......@@ -478,12 +483,6 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributorProfit.setCreateTime(new Date());
distributorProfit.setIsValid(false);
distributorProfitDao.insert(distributorProfit);
//创建鉴定单
/**
*
*/
return Result.success(map);
} catch (Exception e) {
logger.error("创建藏品一口价订单失败 error : {}", e);
......@@ -837,12 +836,23 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Long distributionTotalPrice = distributorProfit.getItemCost();
distributionOrderDetailVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(distributionTotalPrice));
distributionOrderDetailVo.setChannelCost("6‰");
/* //通道费
double channelCost = distributionOrder.getAmount().doubleValue() * 0.006;
if (channelCost < 1) {
channelCost = 0;
//藏馆订单中转审核不通过要展示原因
if (distributionOrder.getType() == DistributionEnum.DistributionTypeEnum.COLLECT.getCode()) {
IdentifyOrder identifyOrder = identifyOrderDao.findByDistributionOrderId(dto.getDistributionOrderId());
distributionOrderDetailVo.setFromLogisticsCode(identifyOrder.getFromLogisticsCode());
distributionOrderDetailVo.setFromLogisticsName(LogisticsEnum.getNameByCode(identifyOrder.getFromLogisticsCode()));
distributionOrderDetailVo.setFromWaybill(identifyOrder.getFromWaybill());
distributionOrderDetailVo.setApproved(identifyOrder.getApproved());
distributionOrderDetailVo.setTransferState(identifyOrder.getState());
//已取消的藏馆订单查询鉴定单信息
if (distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.REFUNDING.getCode()
|| distributionOrder.getState() == DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode()) {
distributionOrderDetailVo.setApprovedRemark(identifyOrder.getRemark());
distributionOrderDetailVo.setOutLogisticsCode(identifyOrder.getOutLogisticsCode());
distributionOrderDetailVo.setOutLogisticsName(LogisticsEnum.getNameByCode(identifyOrder.getOutLogisticsCode()));
distributionOrderDetailVo.setOutWaybill(identifyOrder.getOutWaybill());
}
}
distributionOrderDetailVo.setChannelCost(PriceUtil.convertDoubleToString(channelCost));*/
//利润
Double profit = distributorProfit.getProfit().doubleValue();
//一口价支付截止时间为下单半小时后,竞拍为24小时
......
package com.wwdz.ch.wx.impl.distribution;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.IdUtils;
import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.distribution.IdentifyOrderDao;
import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.distribution.IdentifyOrder;
import com.wwdz.ch.db.dto.request.distribution.IdentifyOrderRequestDto;
import com.wwdz.ch.wx.service.distribution.IdentifyOrderService;
......@@ -22,11 +26,20 @@ public class IdentifyOrderServiceImpl implements IdentifyOrderService {
@Autowired
IdentifyOrderDao identifyOrderDao;
@Autowired
DistributionOrderDao distributionOrderDao;
@Override
public Result createIdentifyOrder(IdentifyOrderRequestDto dto) {
public Result createIdentifyOrder(String distributionOrderId) {
try {
DistributionOrder distributionOrder = distributionOrderDao.findById(distributionOrderId);
String identifyOrderId = IdUtils.getOrderNumber(CommConsts.IDENTIFY_ORDER_PREFIX);
IdentifyOrder identifyOrder = new IdentifyOrder();
EntityMapper.copyAttribute(dto, identifyOrder);
identifyOrder.setDistributionOrderId(distributionOrderId);
identifyOrder.setItemId(distributionOrder.getItemId());
identifyOrder.setItemNum(distributionOrder.getItemNum());
identifyOrder.setSellerId(distributionOrder.getSellerId());
identifyOrder.setIdentifyOrderId(identifyOrderId);
identifyOrder.setState(DistributionEnum.IdentifyOrderStateEnum.CHANNEL_WAIT_RECEIVE.getCode());
identifyOrder.setCreateTime(new Date());
identifyOrder.setUpdateTime(new Date());
......@@ -34,7 +47,6 @@ public class IdentifyOrderServiceImpl implements IdentifyOrderService {
return Result.success();
} catch (Exception e) {
logger.error("创建鉴定单失败 error : {}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
......
......@@ -8,8 +8,8 @@ public interface IdentifyOrderService {
/**
* 创建鉴定单
* @param dto
* @param distributionOrderId
* @return
*/
Result createIdentifyOrder(IdentifyOrderRequestDto dto);
Result createIdentifyOrder(String distributionOrderId);
}
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