diff --git a/dal/src/main/java/com/yoho/order/dal/BuyerOrderMapper.java b/dal/src/main/java/com/yoho/order/dal/BuyerOrderMapper.java index 1142d82..91524b4 100644 --- a/dal/src/main/java/com/yoho/order/dal/BuyerOrderMapper.java +++ b/dal/src/main/java/com/yoho/order/dal/BuyerOrderMapper.java @@ -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); } diff --git a/dal/src/main/java/com/yoho/order/model/BuyerOrder.java b/dal/src/main/java/com/yoho/order/model/BuyerOrder.java index 90a0d09..185a94a 100644 --- a/dal/src/main/java/com/yoho/order/model/BuyerOrder.java +++ b/dal/src/main/java/com/yoho/order/model/BuyerOrder.java @@ -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; + } } diff --git a/dal/src/main/java/com/yoho/order/model/BuyerOrderReq.java b/dal/src/main/java/com/yoho/order/model/BuyerOrderReq.java index 4b246e8..5412ead 100644 --- a/dal/src/main/java/com/yoho/order/model/BuyerOrderReq.java +++ b/dal/src/main/java/com/yoho/order/model/BuyerOrderReq.java @@ -121,5 +121,7 @@ public class BuyerOrderReq extends PageRequestBO{ private Integer currentSecondMinus24Hours; + private Integer maxCurrentSecondMinusHours; + private String phoneUid; } diff --git a/dal/src/main/resources/META-INF/mybatis/BuyerOrderMapper.xml b/dal/src/main/resources/META-INF/mybatis/BuyerOrderMapper.xml index d21aca0..470508c 100644 --- a/dal/src/main/resources/META-INF/mybatis/BuyerOrderMapper.xml +++ b/dal/src/main/resources/META-INF/mybatis/BuyerOrderMapper.xml @@ -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 < #{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 < #{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 diff --git a/dal/src/main/resources/META-INF/mybatis/ZhimaCertMapper.xml b/dal/src/main/resources/META-INF/mybatis/ZhimaCertMapper.xml index 6cfccec..a97e8f6 100644 --- a/dal/src/main/resources/META-INF/mybatis/ZhimaCertMapper.xml +++ b/dal/src/main/resources/META-INF/mybatis/ZhimaCertMapper.xml @@ -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) diff --git a/order/src/main/java/com/yoho/ufo/order/controller/BuyerOrderController.java b/order/src/main/java/com/yoho/ufo/order/controller/BuyerOrderController.java index 834e7a4..93bb0c1 100644 --- a/order/src/main/java/com/yoho/ufo/order/controller/BuyerOrderController.java +++ b/order/src/main/java/com/yoho/ufo/order/controller/BuyerOrderController.java @@ -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(); } diff --git a/order/src/main/java/com/yoho/ufo/order/service/IBuyerOrderService.java b/order/src/main/java/com/yoho/ufo/order/service/IBuyerOrderService.java index 300b15a..3266f01 100644 --- a/order/src/main/java/com/yoho/ufo/order/service/IBuyerOrderService.java +++ b/order/src/main/java/com/yoho/ufo/order/service/IBuyerOrderService.java @@ -24,7 +24,7 @@ public interface IBuyerOrderService { JSONObject confirmReceive(BuyerOrderReq req); - void updateSellerDeliveryDeal(BuyerOrderReq req); + void updateSellerDeliveryDeal(BuyerOrderReq req,boolean againFlag); /** * 客服取消订单 diff --git a/order/src/main/java/com/yoho/ufo/order/service/impl/BuyerOrderServiceImpl.java b/order/src/main/java/com/yoho/ufo/order/service/impl/BuyerOrderServiceImpl.java index d7b169e..777b933 100644 --- a/order/src/main/java/com/yoho/ufo/order/service/impl/BuyerOrderServiceImpl.java +++ b/order/src/main/java/com/yoho/ufo/order/service/impl/BuyerOrderServiceImpl.java @@ -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); } diff --git a/web/src/main/webapp/html/orderManage/list.html b/web/src/main/webapp/html/orderManage/list.html index c09fb21..1ff5348 100644 --- a/web/src/main/webapp/html/orderManage/list.html +++ b/web/src/main/webapp/html/orderManage/list.html @@ -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");