Ver código fonte

小亚通接口修改,定时任务每10分钟一次
订单权限管理

wangxiaoming 5 anos atrás
pai
commit
34370ca524

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/StoreInfo.java

@@ -30,6 +30,8 @@ public class StoreInfo implements Serializable {
     //发货人地址
     private String storeShipAddress;
 
+    private Integer[] storeIds;              //控制可以获得哪些店铺的订单
+
     //客户id
     private Integer dealerId;
 
@@ -144,4 +146,12 @@ public class StoreInfo implements Serializable {
     public void setDealerId(Integer dealerId) {
         this.dealerId = dealerId;
     }
+
+    public Integer[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(Integer[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderBatch.java

@@ -51,6 +51,8 @@ public class OrderBatch  implements  Serializable{
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date endDate;                   //结束时间
 
+    private Integer[] storeIds;              //控制可以获得哪些店铺的订单
+
     public String getBatchId(){
         return batchId;
     }
@@ -178,4 +180,12 @@ public class OrderBatch  implements  Serializable{
     public void setSalesCompanyId(Integer salesCompanyId) {
         this.salesCompanyId = salesCompanyId;
     }
+
+    public Integer[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(Integer[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }

+ 12 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -210,6 +210,12 @@
                         #{node}
                     </foreach >
                 </if>
+                <if test="storeIds != null">
+                    AND sales_store_id IN
+                    <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                        #{storeId}
+                    </foreach >
+                </if>
                 <if test="salesWarehouseId != null ">
                     AND sales_warehouse_id = #{salesWarehouseId}
                 </if>
@@ -686,6 +692,12 @@
                     #{node}
                 </foreach >
             </if>
+            <if test="storeIds != null">
+                AND sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
             <if test="salesWarehouseId != null ">
                 AND sales_warehouse_id = #{salesWarehouseId}
             </if>

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/storeInfoMapper.xml

@@ -66,6 +66,12 @@
       <if test="storeName != null">
         and store_name LIKE CONCAT('%',#{storeName},'%')
       </if>
+      <if test="storeIds != null">
+        AND store_id IN
+        <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+          #{storeId}
+        </foreach >
+      </if>
     </where>
   </select>
 

+ 2 - 12
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderDepartServiceImpl.java

@@ -60,23 +60,13 @@ public class OrderDepartServiceImpl  implements OrderDepartService {
                 }
             }
             if(companyIds.size() > 0 ){
-                Integer[] compantStoreIds = new Integer[companyIds.size()];
-                Integer i=0;
-                for (Integer companyId : companyIds) {
-                    compantStoreIds[i]  = companyId;
-                    i++;
-                }
+                Integer[] compantStoreIds = companyIds.toArray(new Integer[]{});
                 List<StoreInfo> storeInfoList = storeInfoService.getStoreInfoByCompantIds(compantStoreIds);
                 for (StoreInfo si : storeInfoList) {
                     storeIds.add(si.getStoreId());
                 }
             }
-            Integer[] siIds = new Integer[storeIds.size()];
-            Integer y=0;
-            for (Integer siId : storeIds) {
-                siIds[y] = siId;
-                y++;
-            }
+            Integer[] siIds = storeIds.toArray(new Integer[]{});
             return siIds;
         }
     }

+ 0 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -832,8 +832,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                         String shopIdStr = String.valueOf(shopId);
                         switch (platformId){
                             case "TMALL":{
-                                /*if(Objects.equals("天猫店铺号",shopIdStr)){
-                                }*/
                                 salesOrder.setSalesStoreId(86);     //天猫爱贝源旗舰店
                                 salesOrder.setSalesCompanyId(1);    //深圳爱贝源
                                 salesOrder.setSalesPayType(5);//付款方式5:支付宝支付

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/orderBatchMapper.xml

@@ -42,6 +42,12 @@
             <if test="salesCompanyId != null and salesCompanyId != ''">
                 AND soi.sales_company_id = #{salesCompanyId}
             </if>
+            <if test="storeIds != null">
+                AND soi.sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
         </where>
         GROUP BY soi.sales_batch_id
         ORDER BY t.batch_create_time DESC

+ 15 - 8
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -20,6 +20,7 @@ import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSmallClassInfoService;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
+import com.iamberry.rst.faces.order.OrderDepartService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.faces.sys.SysService;
@@ -109,6 +110,8 @@ public class AdminCustomerController {
     private LogisticsInfoService logisticsInfoService;
     @Autowired
     private ComplaintDetectInfoService complaintDetectInfoService;
+    @Autowired
+    private OrderDepartService orderDepartService;
 
     /**
      * 获取客诉列表
@@ -401,22 +404,26 @@ public class AdminCustomerController {
      *
      * @param request
      * @param storeInfo
+     * @param isMyStore 为1则需要判断是否是自己包含的店铺,  为其他则查询所有店铺
      * @return
      */
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping(value = "/select_storeInfo")
-    public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo) {
+    public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo,Integer isMyStore) {
+
+        if(isMyStore == 1){
+            //判断用户只能查看自己所能查询的公司的订单
+            Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+            storeInfo.setStoreIds(storeIds);
+        }
+
         storeInfo.setStoreStatus(1);
         List<StoreInfo> storeInfoList = storeInfoService.listStore(storeInfo);
 
-        if (storeInfoList == null || storeInfoList.size() < 1) {
-            return new ResponseJson(500, "查询失败", 500);
-        } else {
-            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
-            rj.addResponseKeyValue("storeInfoList", storeInfoList);
-            return rj;
-        }
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("storeInfoList", storeInfoList);
+        return rj;
     }
 
     /**

+ 20 - 20
watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java

@@ -599,36 +599,36 @@ public class MQTask implements InitializingBean {
 		    return;
         }
         for (SalesOrder salesOrder:salesOrderList) {
-            // 查询订单对应的物流公司
-            LogisticsInfo log = new LogisticsInfo();
-            log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
-            List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
-            if(listlog.size() > 0){
-            	if(listlog.get(0).getLogisticsIsSynchronous() == 1){
-					// 调用第三方接口查询物流信息
-					Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0),salesOrder.getSalesPostNum());
-					if(date == null){
-						continue;
-					}
-					// 编辑订单的揽件时间
-					SalesOrder so = new SalesOrder();
-					so.setSalesId(salesOrder.getSalesId());
-					so.setOrderCaseDate(date);
-					if(salesOrderService.update(so) <= 0){
-						logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
-					}
+		// 查询订单对应的物流公司
+		LogisticsInfo log = new LogisticsInfo();
+		log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
+		List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
+		if(listlog.size() > 0){
+			if(listlog.get(0).getLogisticsIsSynchronous() == 1){
+				// 调用第三方接口查询物流信息
+				Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0),salesOrder.getSalesPostNum());
+				if(date == null){
+					continue;
+				}
+				// 编辑订单的揽件时间
+				SalesOrder so = new SalesOrder();
+				so.setSalesId(salesOrder.getSalesId());
+				so.setOrderCaseDate(date);
+				if(salesOrderService.update(so) <= 0){
+					logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
 				}
 			}
+		}
 
-        }
 	}
+}
 
 
 	/**
 	 * 定时拉取小亚通订单
 	 */
 //	@Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次
-	@Scheduled(cron = "0 0/30 * * * ?")//每半个小时执行一次
+	@Scheduled(cron = "0 0/10 * * * ?")//每十分钟执行一次
 	public void syncXytOrder(){
 		logger.info("-----定时拉取小亚通订单-开始----");
 		Integer num = orderSyncLogService.syncXYTOrder(1,null);

+ 29 - 11
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderBatchController.java

@@ -8,6 +8,8 @@ import com.iamberry.rst.core.tools.LogisticsInfo;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
 import com.iamberry.rst.faces.order.OrderBatchService;
+import com.iamberry.rst.faces.order.OrderDepartService;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
 
 @Controller
@@ -34,6 +37,8 @@ public class AdminOrderBatchController {
     private SalesOrderService salesOrderService;
     @Autowired
     private LogisticsInfoService logisticsInfoService;
+    @Autowired
+    private OrderDepartService orderDepartService;
     private static final Logger LOGGER = LoggerFactory.getLogger(AdminOrderBatchController.class);
     /**
      * 批次列表
@@ -48,21 +53,34 @@ public class AdminOrderBatchController {
                                          @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
         ModelAndView mv = new ModelAndView("order/bacth/order_batch_list");
 
-        Admin admin = AdminUtils.getLoginAdmin();
-        Integer identity = admin.getAdminDept();
-        if(identity == 2){
-            orderBatch.setSalesAdminId(admin.getAdminId());
-        }
-
-        PagedResult<OrderBatch> pagedResult = orderBatchService.listOrderBatchPage(pageNO, pageSize, orderBatch, totalNum == 0);
-        if (totalNum != 0){
-            pagedResult.setTotal(totalNum);
+//        Admin admin = AdminUtils.getLoginAdmin();
+//        Integer identity = admin.getAdminDept();
+//        if(identity == 2){
+//            orderBatch.setSalesAdminId(admin.getAdminId());
+//        }
+
+        //判断用户只能查看自己所能查询的公司的订单
+        Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+        PagedResult<OrderBatch> pagedResult = null;
+        if(storeIds.length < 1){
+            pagedResult = PageUtil.getPage(new ArrayList<OrderBatch>());
+            pagedResult.setTotal(0);
+            pagedResult.setPageNo(1);
+            pagedResult.setPages(0);
+            pagedResult.setPageSize(20);
+            if (totalNum != 0){
+                pagedResult.setTotal(totalNum);
+            }
+        }else{
+            orderBatch.setStoreIds(storeIds);
+            pagedResult = orderBatchService.listOrderBatchPage(pageNO, pageSize, orderBatch, totalNum == 0);
+            if (totalNum != 0){
+                pagedResult.setTotal(totalNum);
+            }
         }
-
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .setModelAndView(orderBatch, mv, "/admin/order_batch/batch_list", pagedResult);
-
         return mv;
     }
 

+ 37 - 38
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -23,6 +23,7 @@ import com.iamberry.rst.faces.order.*;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.util.GenerateKeyUtil;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.ExcelUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
@@ -122,46 +123,44 @@ public class AdminSalesOrderController {
         List<ProductColor> productColorList = productService.listproductAndColor(productColor);
 
         //判断用户只能查看自己所能查询的公司的订单
-//        Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
-//        if(storeIds.length < 1){
-//            // 不查询客诉添加的订单
-//            salesOrder.setIsSelectCustomer(2);
-//            //分页获取订单信息
-//            PagedResult<SalesOrder> pagedResult = PageUtil.getPage(new ArrayList<SalesOrder>());
-//            pagedResult.setTotal(0);
-//            pagedResult.setPageNo(1);
-//            pagedResult.setPages(0);
-//            pagedResult.setPageSize(20);
-//
-//            if (totalNum != 0) {
-//                pagedResult.setTotal(totalNum);
-//            }
-//            ModelAndView mv = new ModelAndView("order/salesOrder/sales_order_list");
-//            StitchAttrUtil.getSa()
-//                    .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
-//                    .addNoPro("suSalesOrderItemList")
-//                    .addNoPro("salesOrderItemList")
-//                    .setModelAndView(salesOrder, mv, "/admin/salesOrder/list_order_page", pagedResult);
-//            salesOrder.setSalesOrderItemList(null);
-//
-//            // 查询订单各个状态数量
-//            mv.addObject("orderNum",salesOrderService.getStatusNum());
-//            mv.addObject("listStoreInfo",listStoreInfo);
-//            mv.addObject("logisticsInfoList",logisticsInfoList);
-//            mv.addObject("identity",AdminUtils.getLoginAdmin().getAdminDept());
-//            mv.addObject("productColorList",productColorList);
-//            mv.addObject("admin",AdminUtils.getLoginAdmin());
-//            return mv;
-//        }else{
-//            salesOrder.setStoreIds(storeIds);
-//        }
-
-        // 开始装配查询订单的数据
-        if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
-            // 如果是销售部门,只允许查看自己的订单
-            salesOrder.setSalesAdminId(AdminUtils.getLoginAdmin().getAdminId());
+        Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+        if(storeIds.length < 1){
+            // 不查询客诉添加的订单
+            salesOrder.setIsSelectCustomer(2);
+            //分页获取订单信息
+            PagedResult<SalesOrder> pagedResult = PageUtil.getPage(new ArrayList<SalesOrder>());
+            pagedResult.setTotal(0);
+            pagedResult.setPageNo(1);
+            pagedResult.setPages(0);
+            pagedResult.setPageSize(20);
+
+            if (totalNum != 0) {
+                pagedResult.setTotal(totalNum);
+            }
+            ModelAndView mv = new ModelAndView("order/salesOrder/sales_order_list");
+            StitchAttrUtil.getSa()
+                    .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
+                    .addNoPro("suSalesOrderItemList")
+                    .addNoPro("salesOrderItemList")
+                    .setModelAndView(salesOrder, mv, "/admin/salesOrder/list_order_page", pagedResult);
+            salesOrder.setSalesOrderItemList(null);
+
+            // 查询订单各个状态数量
+            mv.addObject("orderNum",salesOrderService.getStatusNum());
+            mv.addObject("listStoreInfo",listStoreInfo);
+            mv.addObject("logisticsInfoList",logisticsInfoList);
+            mv.addObject("identity",AdminUtils.getLoginAdmin().getAdminDept());
+            mv.addObject("productColorList",productColorList);
+            mv.addObject("admin",AdminUtils.getLoginAdmin());
+            return mv;
+        }else{
+            salesOrder.setStoreIds(storeIds);
         }
 
+        // 搜索店铺
+        storeInfo.setStoreIds(storeIds);
+        listStoreInfo = storeInfoService.listStore(storeInfo);
+
         // 不查询客诉添加的订单
         salesOrder.setIsSelectCustomer(2);
         //分页获取订单信息

+ 2 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -384,7 +384,8 @@
         $.ajax({
             type: "POST",
             data: {
-                companyId : companyId
+                companyId : companyId,
+                isMyStore : 1
             },
             url: "${path}/admin/customer/select_storeInfo",
             success: function(data){