Authored by mali

Merge branch 'gray' into hotfix_areacode

... ... @@ -14,7 +14,7 @@ public interface BuyerOrderMapper {
int selectCountByStatus(List<Byte> statusList);
int selectCountByStatusForAbnormalSellerDelivery(@Param("list") List<Byte> statusList ,@Param("currentSecondMinus24Hours") Integer currentSecondMinus24Hours);
int selectCountByStatusForAbnormalSellerDelivery(@Param("list") List<Byte> statusList ,@Param("currentSecondMinus24Hours") Integer currentSecondMinus24Hours,@Param("maxCurrentSecondMinusHours") Integer maxCurrentSecondMinusHours);
int selectCountByStatusAndDepotNo(@Param("list")List<Byte> statusList, @Param("depotNo")Integer depotNo, @Param("platformExpressInfoFlag")String platformExpressInfoFlag);
... ... @@ -32,5 +32,7 @@ public interface BuyerOrderMapper {
// 修改订单的卖家发货 已处理
int updateSellerDeliveryDealByOrderCode(@Param("orderCode")long orderCode, @Param("uid")int uid);
// 修改订单的卖家发货 已处理
int updateSellerDeliveryDealAgainByOrderCode(@Param("orderCode")long orderCode, @Param("uid")int uid);
}
... ...
... ... @@ -56,7 +56,8 @@ public class BuyerOrder implements Serializable {
private Integer sellerDeliveryStatus;//卖家的发货物流:1 :已发货且有物流
private Integer sellerDeliveryDeal;//卖家的发货物流,操作员是否已经处理:0:未处理 ,1 :已处理
private Integer sellerDeliveryDeal;//卖家的24小时发货物流,操作员是否已经处理:0:未处理 ,1 :24小时已处理 ,
private Integer sellerDeliveryDealAgain;//卖家的48小时发货物流
public Integer getId() {
return id;
... ... @@ -201,4 +202,12 @@ public class BuyerOrder implements Serializable {
public void setSellerDeliveryDeal(Integer sellerDeliveryDeal) {
this.sellerDeliveryDeal = sellerDeliveryDeal;
}
public Integer getSellerDeliveryDealAgain() {
return sellerDeliveryDealAgain;
}
public void setSellerDeliveryDealAgain(Integer sellerDeliveryDealAgain) {
this.sellerDeliveryDealAgain = sellerDeliveryDealAgain;
}
}
... ...
... ... @@ -121,5 +121,7 @@ public class BuyerOrderReq extends PageRequestBO{
private Integer currentSecondMinus24Hours;
private Integer maxCurrentSecondMinusHours;
private String phoneUid;
}
... ...
... ... @@ -20,12 +20,13 @@
<result column="platform_delivery_status" jdbcType="INTEGER" property="platformDeliveryStatus" />
<result column="seller_delivery_status" jdbcType="INTEGER" property="sellerDeliveryStatus" />
<result column="seller_delivery_deal" jdbcType="INTEGER" property="sellerDeliveryDeal" />
<result column="seller_delivery_deal_again" jdbcType="INTEGER" property="sellerDeliveryDealAgain" />
</resultMap>
<sql id="Base_Column_List">
id, uid, order_code, seller_uid, client_type, payment, payment_type, is_cancel,
amount, ship_fee, status, create_time, update_time, channel_no, attributes ,platform_delivery_status,
seller_delivery_status,seller_delivery_deal
seller_delivery_status,seller_delivery_deal,seller_delivery_deal_again
</sql>
<select id="selectByOrderCode" resultMap="BaseResultMap">
... ... @@ -54,6 +55,9 @@
from buyer_order where 1=1
and seller_delivery_status = 0
and update_time &lt; #{currentSecondMinus24Hours}
<if test="maxCurrentSecondMinusHours != null">
and update_time >= #{maxCurrentSecondMinusHours}
</if>
<if test="list != null and list.size()>0">
and status in
<foreach collection="list" item="status" open="(" close=")" separator=",">
... ... @@ -127,6 +131,9 @@
<if test="buyerOrderReq.currentSecondMinus24Hours != null ">
and a.update_time &lt; #{buyerOrderReq.currentSecondMinus24Hours}
</if>
<if test="buyerOrderReq.maxCurrentSecondMinusHours != null">
and update_time >= #{buyerOrderReq.maxCurrentSecondMinusHours}
</if>
<if test="buyerOrderReq.status != null ">
and a.status = #{buyerOrderReq.status}
</if>
... ... @@ -255,4 +262,10 @@
where uid = #{uid,jdbcType=INTEGER} and order_code = #{orderCode,jdbcType=BIGINT}
</update>
<update id="updateSellerDeliveryDealAgainByOrderCode">
update buyer_order set
seller_delivery_deal_again = 1
where uid = #{uid,jdbcType=INTEGER} and order_code = #{orderCode,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
... ...
... ... @@ -63,7 +63,7 @@
and s.valid_status = #{sellerReqBO.validStatus}
</if>
<if test="sellerReqBO.sellerType != null and sellerReqBO.sellerType != 0 and sellerReqBO.sellerType != 4">
and s.entry_type = #{sellerReqBO.sellerType}
and s.entry_type = #{sellerReqBO.sellerType} and s.valid_status = 1
</if>
<if test="sellerReqBO.sellerType != null and sellerReqBO.sellerType == 4">
and (s.entry_type = null or s.entry_type = '' or s.entry_type is null or s.valid_status = 9)
... ...
... ... @@ -78,8 +78,16 @@ public class BuyerOrderController {
//更新订单异常物流的处理状态
@RequestMapping(value = "/updateSellerDeliveryDeal")
public ApiResponse updateSellerDeliveryDeal(BuyerOrderReq req) {
LOGGER.info("confirmReceive in. req is {}", req);
buyerOrderService.updateSellerDeliveryDeal(req);
LOGGER.info("updateSellerDeliveryDeal in. req is {}", req);
buyerOrderService.updateSellerDeliveryDeal(req,false);
return new ApiResponse.ApiResponseBuilder().code(200).message("处理订单成功").build();
}
//更新订单异常物流的处理状态
@RequestMapping(value = "/updateSellerDeliveryDealAgain")
public ApiResponse updateSellerDeliveryDealAgain(BuyerOrderReq req) {
LOGGER.info("updateSellerDeliveryDealAgain in. req is {}", req);
buyerOrderService.updateSellerDeliveryDeal(req,true);
return new ApiResponse.ApiResponseBuilder().code(200).message("处理订单成功").build();
}
... ...
... ... @@ -24,7 +24,7 @@ public interface IBuyerOrderService {
JSONObject confirmReceive(BuyerOrderReq req);
void updateSellerDeliveryDeal(BuyerOrderReq req);
void updateSellerDeliveryDeal(BuyerOrderReq req,boolean againFlag);
/**
* 客服取消订单
... ...
... ... @@ -377,7 +377,9 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
resultMap.put("num_10", buyerOrderMapper.selectCountByStatus(getStatusListByNavStatus(10)));//瑕疵确认通过
resultMap.put("num_11", buyerOrderMapper.selectCountByStatus(getStatusListByNavStatus(11)));//平台鉴定通过
int currentSecondMinus24Hours = DateUtil.getCurrentTimeSeconds() - 24*60*60;
resultMap.put("num_12", buyerOrderMapper.selectCountByStatusForAbnormalSellerDelivery(getStatusListByNavStatus(12),currentSecondMinus24Hours));//待卖家发货
int currentSecondMinus48Hours = DateUtil.getCurrentTimeSeconds() - 48*60*60;
resultMap.put("num_12", buyerOrderMapper.selectCountByStatusForAbnormalSellerDelivery(getStatusListByNavStatus(12),currentSecondMinus24Hours,currentSecondMinus48Hours));//待卖家发货
resultMap.put("num_13", buyerOrderMapper.selectCountByStatusForAbnormalSellerDelivery(getStatusListByNavStatus(13),currentSecondMinus48Hours,null));//待卖家发货
return resultMap;
}
... ... @@ -456,7 +458,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
List<ExpressCompany> companyList = expressCompanyMapper.selectByIdList(expressCompanyIdList);
companyMap = companyList.stream().collect(Collectors.toMap(ExpressCompany::getId, ExpressCompany::getCompanyName));
}
List<BuyerOrderResp> respList = convertToResp(orderList, buyerGoodsMap, sellerOrderMap, sellerGoodsMap,expressRecordMap, platformExpressRecordMap, companyMap,skupProductCodeMap,qualityCheckMap);
List<BuyerOrderResp> respList = convertToResp(req.getNavStatus(),orderList, buyerGoodsMap, sellerOrderMap, sellerGoodsMap,expressRecordMap, platformExpressRecordMap, companyMap,skupProductCodeMap,qualityCheckMap);
completeMp4VedioUrl(respList); // 查询是否有视频连接
... ... @@ -733,19 +735,30 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
}
@Override
public void updateSellerDeliveryDeal(BuyerOrderReq req){
public void updateSellerDeliveryDeal(BuyerOrderReq req,boolean againFlag){
String orderCode = req.getOrderCode();
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
if (null == buyerOrder) {
throw new ServiceException(400, "订单不存在");
}
if(1==buyerOrder.getSellerDeliveryDeal()){
return ;
}
//更新
buyerOrderMapper.updateSellerDeliveryDealByOrderCode(Long.valueOf(orderCode),buyerOrder.getUid());
int operateType ;
if(againFlag){
if(buyerOrder.getSellerDeliveryDealAgain()!=null&&1==buyerOrder.getSellerDeliveryDealAgain()){
return ;
}
operateType =OperateTypeEnum.SELLER_DELIVERY_DEAL_FLAG_AGAIN.getCode();
buyerOrderMapper.updateSellerDeliveryDealAgainByOrderCode(Long.valueOf(orderCode),buyerOrder.getUid());
}else{
if(buyerOrder.getSellerDeliveryDeal()!=null&&1==buyerOrder.getSellerDeliveryDeal()){
return ;
}
operateType =OperateTypeEnum.SELLER_DELIVERY_DEAL_FLAG.getCode();
buyerOrderMapper.updateSellerDeliveryDealByOrderCode(Long.valueOf(orderCode),buyerOrder.getUid());
}
//记录一条操作记录
int operateType =OperateTypeEnum.SELLER_DELIVERY_DEAL_FLAG.getCode();
UserHelper userHelper = new UserHelper();
saveOrderOperateRecord(buyerOrder.getOrderCode(), userHelper, operateType, "");
LOGGER.info("updateSellerDeliveryDeal saveOrderOperateRecord operateType={} ,order code ={} ,userHelper = {}",operateType,buyerOrder.getOrderCode() ,userHelper);
... ... @@ -2374,7 +2387,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
}
}
private List<BuyerOrderResp> convertToResp(List<BuyerOrder> orderList, Map<String, BuyerOrderGoods> buyerGoodsMap,
private List<BuyerOrderResp> convertToResp(Integer navStatus,List<BuyerOrder> orderList, Map<String, BuyerOrderGoods> buyerGoodsMap,
Map<Integer, SellerOrder> sellerOrderMap, Map<Integer, SellerOrderGoods> sellerGoodsMap, Map<String, ExpressRecord> expressInfoMap,
Map<String, ExpressRecord> platformExpressRecordMap, Map<Integer, String> companyMap,Map<Integer, String> skupProductCodeMap,Map<Long, QualityCheck> qualityCheckMap ){
List<BuyerOrderResp> respList = Lists.newArrayList();
... ... @@ -2404,8 +2417,15 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
resp.setSkup(skup);
resp.setSellerDeliveryDeal(item.getSellerDeliveryDeal());
resp.setSellerDeliveryDealDesc(1==item.getSellerDeliveryDeal()?"已处理":"未处理");
if(navStatus!=null){
if(12==navStatus){
resp.setSellerDeliveryDeal(item.getSellerDeliveryDeal());
resp.setSellerDeliveryDealDesc(1==item.getSellerDeliveryDeal()?"已处理":"未处理");
}else if(13==navStatus){
resp.setSellerDeliveryDeal(item.getSellerDeliveryDealAgain());
resp.setSellerDeliveryDealDesc(1==item.getSellerDeliveryDealAgain()?"已处理":"未处理");
}
}
resp.setSellerWaybillCode(null == expressInfoMap.get(item.getOrderCode()) ? "" : expressInfoMap.get(item.getOrderCode()).getWaybillCode());
resp.setSellerOrderCode(null == sellerOrder ? "-" : sellerOrder.getOrderCode());
... ... @@ -2561,6 +2581,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
case 11:
return Lists.newArrayList(Constant.BUYER_ORDER_STATUS_JUDGE_PASS.getByteVal());
case 12:
case 13:
return Lists.newArrayList(Constant.BUYER_ORDER_STATUS_ALLOCATING.getByteVal());
default:
return Lists.newArrayList();
... ... @@ -2577,7 +2598,14 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
//特殊处理:物流异常的订单
if(12==req.getNavStatus()){
int currentSecondMinus24Hours = DateUtil.getCurrentTimeSeconds() - 24*60*60;
int nowSnd=DateUtil.getCurrentTimeSeconds();
int currentSecondMinus24Hours = nowSnd - 24*60*60;
int maxCurrentSecondMinusHours =nowSnd -48*60*60;
req.setCurrentSecondMinus24Hours(currentSecondMinus24Hours);
req.setMaxCurrentSecondMinusHours(maxCurrentSecondMinusHours);
req.setSellerDeliveryStatus(0);
}else if(13==req.getNavStatus()){
int currentSecondMinus24Hours = DateUtil.getCurrentTimeSeconds() - 48*60*60;
req.setCurrentSecondMinus24Hours(currentSecondMinus24Hours);
req.setSellerDeliveryStatus(0);
}
... ...
... ... @@ -33,7 +33,8 @@
<li><a href="javascript:switchOrderStatus(5);">平台已发货(<span id="num_5"></span>)</a></li>
<li><a href="javascript:switchOrderStatus(6);">订单完成(<span id="num_6"></span>)</a></li>
<li><a href="javascript:switchOrderStatus(7);">已取消(<span id="num_7">)</span>)</a></li>
<li><a href="javascript:switchOrderStatus(12);">物流更新异常(<span id="num_12"></span>)</a></li>
<li><a href="javascript:switchOrderStatus(12);">物流更新异常24小时(<span id="num_12"></span>)</a></li>
<li><a href="javascript:switchOrderStatus(13);">物流更新异常48小时(<span id="num_13"></span>)</a></li>
</ul>
</div>
<br>
... ... @@ -205,7 +206,7 @@ $(function() {
function getOrderList(){
var navStatus = document.getElementById("navStatus").value;
var abnormalDeliveryTab=false;
if(12==navStatus){
if(12==navStatus||13==navStatus){
abnormalDeliveryTab=true;
}
$("#orderListTable").myDatagrid({
... ... @@ -311,7 +312,12 @@ function getOrderList(){
buttons += "<a role='cancelOrder' dataId='"+ rowData.orderCode +"' style='margin-left:10px;color:white;background-color: #D31225 !important;'>取消订单</a>";
if(abnormalDeliveryTab&&(1!=rowData.sellerDeliveryDeal)){
buttons += "<a role='sellerDeliveryDealOrder' dataId='"+ rowData.orderCode +"' style='margin-left:10px;color:white;background-color: #5bc0de !important;'>处理</a>";
if(12==navStatus){
buttons += "<a role='sellerDeliveryDealOrder' dataId='"+ rowData.orderCode +"' style='margin-left:10px;color:white;background-color: #5bc0de !important;'>处理</a>";
}else if(13==navStatus){
buttons += "<a role='sellerDeliveryDealOrderAgain' dataId='"+ rowData.orderCode +"' style='margin-left:10px;color:white;background-color: #5bc0de !important;'>处理</a>";
}
}
}
return buttons;
... ... @@ -353,6 +359,25 @@ function getOrderList(){
}
});
me.datagrid("getPanel").find("a[role='sellerDeliveryDealOrderAgain']").linkbutton({
onClick: function () {
var orderCode = $(this).attr("dataId");
$.post(contextPath + "/buyerOrder/updateSellerDeliveryDealAgain", {
orderCode : orderCode
}, function(data) {
if (data.code == 200) {
window.self.$.messager.show({
title : "提示",
msg : "处理订单成功!"
});
me.datagrid('reload');
}else {
window.self.$.messager.alert("失败", data.message, "error");
}
});
}
});
me.datagrid("getPanel").find("a[role='cancelOrder']").linkbutton({
onClick: function () {
var orderCode = $(this).attr("dataId");
... ... @@ -429,6 +454,7 @@ function getCountByNavStatus(){
$("#num_10").html(result.data.num_10);
$("#num_11").html(result.data.num_11);
$("#num_12").html(result.data.num_12);
$("#num_13").html(result.data.num_13);
}
else {
$.messager.alert("失败", result.message, "error");
... ...