فهرست منبع

评价:完善卖家到期评价

wangdy 8 سال پیش
والد
کامیت
7321e36e9a

+ 8 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/PurchaseService.java

@@ -131,6 +131,14 @@ public interface PurchaseService {
 	 */
 	Page<Purchase> findPageByStatus(PageInfo pageInfo, String keyword);
 
+	/**
+	 * 根据状态查找采购单
+	 *
+	 * @param status the status
+	 * @return list
+	 */
+	List<Purchase> findByStatus(Integer status);
+
 	/**
 	 * 平台管理员获取采购单
 	 *

+ 5 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -646,6 +646,11 @@ public class PurchaseServiceImpl implements PurchaseService {
 		}, pageInfo);
 	}
 
+	@Override
+	public List<Purchase> findByStatus(Integer status) {
+		return purchaseDao.findByStatus(status);
+	}
+
 	@Override
 	public Purchase findByPurchaseid(String purchaseid) {
 		Purchase purchase = purchaseDao.findByPurchaseid(purchaseid);

+ 11 - 0
src/main/java/com/uas/platform/b2c/trade/rate/service/RateService.java

@@ -66,6 +66,17 @@ public interface RateService {
      */
     RateBuyer saveAfterRateBuyer(RateBuyer rateBuyer);
 
+    /**
+     * (到期自动评价)卖家对买家的初评
+     * @param ids
+     */
+    void autosaveVendorRate(String ids);
+
+    /**
+     * (到期自动追评价)卖家对买家的初评
+     * @param ids
+     */
+    void autosaveAfterVendorRate(String ids);
     /**
      * 保存评价模版
      * @param rateTemplate

+ 52 - 0
src/main/java/com/uas/platform/b2c/trade/rate/service/impl/RateServiceImpl.java

@@ -3,8 +3,10 @@ package com.uas.platform.b2c.trade.rate.service.impl;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
+import com.uas.platform.b2c.trade.order.dao.PurchaseDao;
 import com.uas.platform.b2c.trade.order.model.Order;
 import com.uas.platform.b2c.trade.order.model.OrderDetail;
+import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.rate.dao.RateBuyerDao;
 import com.uas.platform.b2c.trade.rate.dao.RateGoodsDao;
 import com.uas.platform.b2c.trade.rate.dao.RateTemplateDao;
@@ -53,6 +55,9 @@ public class RateServiceImpl implements RateService{
     @Autowired
     OrderDao orderDao;
 
+    @Autowired
+    PurchaseDao purchaseDao;
+
     final private short isAnony = 1;
 
     @Override
@@ -164,6 +169,53 @@ public class RateServiceImpl implements RateService{
         return rateBuyerDao.save(rateBuyer);
     }
 
+    @Override
+    public void autosaveVendorRate(String ids) {
+        String[] idArray = ids.split(SplitChar.HYPHEN);
+        for (String id : idArray) {
+            //订单状态变更
+            Purchase purchase = purchaseDao.findByPurchaseid(id);
+            if (purchase.getStatus().intValue() != Status.COMPLETED.value()) {
+                throw new IllegalOperatorException("当前订单未完成,不能初评!");
+            }
+            RateBuyer rateBuyer = new RateBuyer();
+            rateBuyer.setLevel(isAnony);
+            rateBuyer.setOrderId(purchase.getOrderid());
+            rateBuyer.setStoreId(purchase.getStoreid());
+            rateBuyer.setPurchaseId(purchase.getPurchaseid());
+            rateBuyer.setUserEnuu(purchase.getBuyerenuu());
+            rateBuyer.setUserUU(purchase.getBuyeruu());
+            rateBuyer.setVendorRate("此店铺未及时做出评价,系统默认好评!");
+            rateBuyer.setEnuu(purchase.getSellerenuu());
+            rateBuyer.setVendorRateTime(new Date(System.currentTimeMillis()));
+            rateBuyerDao.save(rateBuyer);
+
+            purchase.setTobeRate(SystemSession.getUser().getUserUU());
+            purchaseDao.save(purchase);
+        }
+    }
+
+    @Override
+    public void autosaveAfterVendorRate(String ids) {
+        String[] idArray = ids.split(SplitChar.HYPHEN);
+        for (String id : idArray) {
+            //订单状态变更
+            Purchase purchase = purchaseDao.findByPurchaseid(id);
+            if (purchase.getStatus().intValue() != Status.COMPLETED.value()) {
+                throw new IllegalOperatorException("当前订单未完成初评,不能追评!");
+            }
+            RateBuyer rateBuyer;
+            try {
+                 rateBuyer = rateBuyerDao.findByOrderId(purchase.getOrderid()).get(0);
+            }catch (Exception e){
+                throw new IllegalOperatorException("当前订单未完成初评,不能追评!");
+            }
+            rateBuyer.setVendorAfterRateTime(new Date(System.currentTimeMillis()));
+            purchase.setTobeAfterRate(SystemSession.getUser().getUserUU());
+            purchaseDao.save(purchase);
+        }
+    }
+
     @Override
     public RateTemplate saveRateTemplate(RateTemplate rateTemplate) {
         return rateTemplateDao.save(rateTemplate);

+ 52 - 4
src/main/java/com/uas/platform/b2c/trade/rate/task/RateTask.java

@@ -14,8 +14,10 @@ import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.model.Order;
+import com.uas.platform.b2c.trade.order.model.Purchase;
 import com.uas.platform.b2c.trade.order.model.StatusHistory;
 import com.uas.platform.b2c.trade.order.service.OrderService;
+import com.uas.platform.b2c.trade.order.service.PurchaseService;
 import com.uas.platform.b2c.trade.presale.dao.TradeBasicPropertiesDao;
 import com.uas.platform.b2c.trade.rate.service.RateService;
 import com.uas.platform.core.exception.IllegalOperatorException;
@@ -45,6 +47,8 @@ public class RateTask {
 
     private final OrderService orderService;
 
+    private final PurchaseService purchaseService;
+
     private final TradeBasicPropertiesDao tradeBasicPropertiesDao;
 
     private final UserDao userDao;
@@ -59,9 +63,10 @@ public class RateTask {
     private static final UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
 
     @Autowired
-    public RateTask(OrderDao orderDao, OrderService orderService, TradeBasicPropertiesDao tradeBasicPropertiesDao, UserDao userDao, SysConf sysConf, EnterpriseDao enterpriseDao, RateService rateService) {
+    public RateTask(OrderDao orderDao, OrderService orderService,PurchaseService purchaseService, TradeBasicPropertiesDao tradeBasicPropertiesDao, UserDao userDao, SysConf sysConf, EnterpriseDao enterpriseDao, RateService rateService) {
         this.orderDao = orderDao;
         this.orderService = orderService;
+        this.purchaseService = purchaseService;
         this.tradeBasicPropertiesDao = tradeBasicPropertiesDao;
         this.userDao = userDao;
         this.sysConf = sysConf;
@@ -117,7 +122,7 @@ public class RateTask {
                         shipTime.setMinutes(0);
                         shipTime.setSeconds(0);
                         if(compareTimeIsGigger24Hours(time, shipTime)) {
-                            ids = ids + order.getId() + "-";
+                            ids = ids + order.getOrderid() + "-";
                         }
                     }
                 }
@@ -128,12 +133,13 @@ public class RateTask {
                 rateService.autosavebuyerRate(ids);
             }
             logger.log("自动初评", "买家自动初评订单:" + ids);
+            autoVendorRate(automaticReceipt);
         }catch (Exception e) {
         } finally {
         }
     }
     /**
-     * 对超过追评时间的订单,自动
+     * 对超过追评时间的订单,自动
      */
     @Transactional
     public void autoAfterRate() {
@@ -179,7 +185,7 @@ public class RateTask {
                         shipTime.setMinutes(0);
                         shipTime.setSeconds(0);
                         if(compareTimeIsGigger24Hours(time, shipTime)) {
-                            ids = ids + order.getId() + "-";
+                            ids = ids + order.getOrderid() + "-";
                         }
                     }
                 }
@@ -189,11 +195,53 @@ public class RateTask {
                 rateService.autosaveAfterbuyerRate(ids);
             }
             logger.log("自动追评", "买家自动追加评价:" + ids);
+            autoVendorRate(automaticReceipt);
         }catch (Exception e) {
         } finally {
         }
     }
 
+    /**
+     * 卖家的自动评价操作
+     * @param automaticReceipt
+     */
+    private void autoVendorRate(Integer automaticReceipt) {
+        try {
+            //采购单的自动初评
+            List<Purchase> purchasesList = purchaseService.findByStatus(Status.COMPLETED.value());
+            String pids = "-";
+            for (Purchase purchase : purchasesList) {
+                List<StatusHistory> statusHistories = FastjsonUtils.fromJsonArray(purchase.getStatushistory(), StatusHistory.class);
+                for (int i = statusHistories.size() - 1; i > 0 ; i--) {
+                    StatusHistory statusHistory = statusHistories.get(i);
+                    if(statusHistory.getStatus().intValue() == Status.COMPLETED.value()) {
+                        Calendar calendar = Calendar.getInstance();
+                        Date date = new Date();
+                        calendar.setTime(date);
+                        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - automaticReceipt);
+                        Date time = calendar.getTime();
+                        time.setHours(0);
+                        time.setMinutes(0);
+                        time.setSeconds(0);
+                        Date shipTime = statusHistory.getTime();
+                        shipTime.setHours(0);
+                        shipTime.setMinutes(0);
+                        shipTime.setSeconds(0);
+                        if(compareTimeIsGigger24Hours(time, shipTime)) {
+                            pids = pids + purchase.getPurchaseid() + "-";
+                        }
+                    }
+                }
+
+            }
+            if(pids.length() > 1) {
+                pids = pids.substring(1, pids.length() - 1);
+                rateService.autosaveVendorRate(pids);
+            }
+            logger.log("自动初评", "卖家自动初评订单:" + pids);
+        }catch (Exception e){}
+        finally {}
+    }
 
     /**
      * 比较日期的大小(只比较年、月、日),,相隔的时间是否超过24小时

+ 5 - 0
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_order_ctrl.js

@@ -388,6 +388,11 @@ define(['app/app'], function (app) {
                                    order.isEachRate = true;
                                }
                             });
+                            angular.forEach(JSON.parse(order.statushistory),function (data) {
+                                if (data.status == 520){
+                                    order.complete = data.time;
+                                }
+                            });
                         });
                         getExMsgState(); // 获取异常消息状态
                         getReturnByPurchaseIds(); // 获取退货单信息

+ 2 - 2
src/main/webapp/resources/view/usercenter/forstore/buyer_order.html

@@ -759,10 +759,10 @@
                                   <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="order.availabletime | restTime"></em>
                               </div>
 								<div ng-if="order.status == 520" class="clock-mind">
-                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="order.reciptTime + 1728000000 | restTime"></em>
+                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="order.reciptTime + 1728000000 | restTime"></em><!--暂时设定30天自动初评-->
                               </div>
 								<div ng-if="order.status == 523" class="clock-mind">
-                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="order.reciptTime + 15552000000 | restTime"></em>
+                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="order.reciptTime + 15552000000 | restTime"></em><!--暂时设定180天自动追评-->
                               </div>
                               <a class="action-link operate-height" ng-if="order.status == 503 || order.status == 501 || order.status == 502" style="display: block;line-height: 20px; height: 20px;" ng-click="cancle(order.orderid)">
                                   取消订单

+ 6 - 0
src/main/webapp/resources/view/vendor/forstore/vendor_order.html

@@ -976,6 +976,12 @@
                                 <a class="order-operation" href="javascript:void(0)" ng-if="purchase.status == 404 && purchase.lgtId&&!purchase.uasPurcid" ng-click="toBeShiped(purchase)" style="position: relative;">修改物流</a>
 								<a class="order-operation" href="javascript:void(0)" ng-click="getModal(purchase,'addRate')" style="position: relative;" ng-if="purchase.status == 523">追加评价</a>
 								<a class="order-operation" href="javascript:void(0)" style="position: relative;" ng-click="getModal(purchase,'firstRate')" ng-if="purchase.status == 520">评价</a>
+								<div ng-if="purchase.status == 520" class="clock-mind">
+                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="purchase.complete + 1728000000 | restTime"></em><!--暂时设定30天自动初评-->
+                              </div>
+								<div ng-if="purchase.status == 523" class="clock-mind">
+                                  <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp; <em ng-bind="purchase.complete + 15552000000 | restTime"></em><!--暂时设定180天自动追评-->
+                              </div>
 								<div class="seller-ship-tip" ng-if="purchase.status == 404 && purchase.lgtId &&!purchase.uasPurcid" style="position: relative;">
                                     <img src="static/img/common/notice-tip.png" ng-mouseover="purchase.noticeTip = true" ng-mouseleave="purchase.noticeTip = false"/>
                                     <div class="ship-notify" ng-if="purchase.noticeTip">