浏览代码

优化代码

xian 4 年之前
父节点
当前提交
c9fdf57347

+ 3 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -688,11 +688,11 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         // 计算金额
         calculationTotal(mainOrder,mainOrder.getSalesOrderItemList());
 
-        //2019年12月27日15:49:16新增快递策略 分配物流方式
+        // 2019年12月27日15:49:16新增快递策略 分配物流方式
         List<SalesOrder> listS = new ArrayList<>();
         listS.add(mainOrder);
         setStrategyLogistics(listS);
-        //子订单根据快递策略分配物流方式
+        // 子订单根据快递策略分配物流方式
         setStrategyLogistics(listSalesOrder);
 
         if(mainOrder.getSalesDeliver() == null){
@@ -707,7 +707,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         for (SalesOrderItem item : mainOrder.getSalesOrderItemList()) {
             item.setItemOrderId(mainOrder.getSalesId());
         }
-        //批量添加订单项数据
+        // 批量添加订单项数据
         res = salesOrderMapper.addOrderItemList(mainOrder.getSalesOrderItemList());
         if (res <= 0) {
             throw  new RuntimeException("添加订单出错,保存订单项失败");
@@ -721,7 +721,6 @@ public class SalesOrderServiceImpl implements SalesOrderService {
                     listSalesOrder.get(i).setSalesOrderId(listSalesOrder.get(i).getSalesOrderId()+"-"+(i+1));
                 }
                 // 主订单id
-
                 if(listSalesOrder.get(i).getSalesDeliver() == null){
                     listSalesOrder.get(i).setSalesDeliver(1);
                 }

+ 2 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -31,6 +31,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.MessageFormat;
@@ -73,7 +74,7 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
     private LogisticsInfoService logisticsInfoService;
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = {Exception.class}, isolation = Isolation.REPEATABLE_READ)
     public Integer insert(ComplaintSignclosedInfo record, String orderItemString, String[] componentsImgs) {
         Integer msg = 0;
         int num = 0;

+ 39 - 40
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintSignclosedInfoMapper.xml

@@ -121,46 +121,46 @@
   </select>
   <select id="listSignclosed" resultMap="complaintSignclosedInfoMap" parameterType="ComplaintSignclosedInfo" >
     SELECT
-    cs.signclosed_id,
-    cs.signclosed_logistics,
-    cs.signclosed_logistics_number,
-    cs.signclosed_send_name,
-    cs.signclosed_send_tel,
-    cs.signclosed_addr_provinces,
-    cs.signclosed_addr_city,
-    cs.signclosed_addr_area,
-    cs.signclosed_date,
-    cs.signclosed_customer_id,
-    cs.signclosed_desc,
-    cs.signclosed_create_time,
-    cs.signclosed_update_time,
-    cs.signclosed_customer_desc,
-    cs.signclosed_is_receiving,
-    cs.sendback_id,
-    cs.signclosed_is_whetherLess,
-    cs.signclosed_store_id,
-    ap.province signclosedAddrProvincesName,
-    ac.city signclosedAddrCityName,
-    ad.district signclosedAddrAreaName,
-    qd.describe_title customerIdDescribe,
-    li.logistics_name signclosedLogisticsName,
-    cs.signclosed_company_id signclosedCompanyId,
-    si.store_name signclosedStoreName,
-    cd.detect_number detectNumber,
-    cpm.proc_method_name procMethodName,
-    cpt.proc_type_name procTypeName,
-    cd.detect_production detectProduction,
-    cd.detect_fuselage_barcode detectFuselageBarcode,
-    cd.detect_phenomenon detectPhenomenon,
-    cd.detect_classification detectClassification,
-    cd.detect_failure_cause detectFailureCause,
-    cd.detect_results detectResults,
-    cd.detect_point detectPoint,
-    cd.detect_nalysis detectNalysis,
-    cd.detect_content detectContent,
-    cd.detect_is_refurbishing detectIsRefurbishing
+      cs.signclosed_id,
+      cs.signclosed_logistics,
+      cs.signclosed_logistics_number,
+      cs.signclosed_send_name,
+      cs.signclosed_send_tel,
+      cs.signclosed_addr_provinces,
+      cs.signclosed_addr_city,
+      cs.signclosed_addr_area,
+      cs.signclosed_date,
+      cs.signclosed_customer_id,
+      cs.signclosed_desc,
+      cs.signclosed_create_time,
+      cs.signclosed_update_time,
+      cs.signclosed_customer_desc,
+      cs.signclosed_is_receiving,
+      cs.sendback_id,
+      cs.signclosed_is_whetherLess,
+      cs.signclosed_store_id,
+      ap.province signclosedAddrProvincesName,
+      ac.city signclosedAddrCityName,
+      ad.district signclosedAddrAreaName,
+      qd.describe_title customerIdDescribe,
+      li.logistics_name signclosedLogisticsName,
+      cs.signclosed_company_id signclosedCompanyId,
+      si.store_name signclosedStoreName,
+      cd.detect_number detectNumber,
+      cpm.proc_method_name procMethodName,
+      cpt.proc_type_name procTypeName,
+      cd.detect_production detectProduction,
+      cd.detect_fuselage_barcode detectFuselageBarcode,
+      cd.detect_phenomenon detectPhenomenon,
+      cd.detect_classification detectClassification,
+      cd.detect_failure_cause detectFailureCause,
+      cd.detect_results detectResults,
+      cd.detect_point detectPoint,
+      cd.detect_nalysis detectNalysis,
+      cd.detect_content detectContent,
+      cd.detect_is_refurbishing detectIsRefurbishing
     FROM
-    tb_rst_complaint_signclosed cs
+      tb_rst_complaint_signclosed cs
     LEFT JOIN tb_rst_address_province ap ON cs.signclosed_addr_provinces = ap.province_id
     LEFT JOIN tb_rst_address_city ac ON cs.signclosed_addr_city = ac.city_id
     LEFT JOIN tb_rst_address_district ad on ad.district_id = cs.signclosed_addr_area
@@ -171,7 +171,6 @@
     LEFT JOIN tb_rst_cm_relation cr ON cs.signclosed_customer_id = cr.customer_id
     LEFT JOIN tb_rst_cm_proc_method cpm ON cr.proc_method_id = cpm.proc_method_id
     LEFT JOIN tb_rst_cm_proc_type cpt ON cpm.proc_type_id = cpt.proc_type_id
-
     <where>
       <if test="signclosedSendName != null and signclosedSendName != ''" >
         cs.signclosed_send_name = #{signclosedSendName}

+ 34 - 17
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderDepartServiceImpl.java

@@ -1,10 +1,12 @@
 package com.iamberry.rst.service.order;
 
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.cm.StoreInfo;
 import com.iamberry.rst.core.order.OrderDepart;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.order.OrderDepartService;
 import com.iamberry.rst.service.order.mapper.OrderDepartMapper;
+import com.iamberry.wechat.tools.DateTimeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,31 +47,46 @@ public class OrderDepartServiceImpl  implements OrderDepartService {
 
     @Override
     public Integer[] getDepartStoreIds(Integer adminId) {
+        // 缓存在Redis中的key
+        String key = "DEPART_STORE_" + adminId;
+        // 首先从Redis中获取,如果获取不到,再从数据库查询
+        Integer[] integers = RedisUtils.get(key, Integer[].class);
+        if (integers != null && integers.length >= 1) {
+            return integers;
+        }
+
+        // 数据库查询当前管理员管理的店铺
         OrderDepart orderDepart = new OrderDepart();
         orderDepart.setAdminId(adminId);
         List<OrderDepart> orderDepartList = orderDepartMapper.getOrderDepartList(orderDepart);
         if(orderDepartList == null || orderDepartList.size() < 1){
             return new Integer[0];
-        }else{
-            Set<Integer> storeIds = new HashSet<>();
-            Set<Integer> companyIds = new HashSet<>();
-            for (OrderDepart od : orderDepartList) {
-                if(od.getOrderDepartType() == 1){    //类型 1.销售公司 2.销售店铺
-                    companyIds.add(od.getCompanyId());
-                }else{
-                    storeIds.add(od.getStoreId());
-                }
+        }
+        // 查询到了数据
+        Set<Integer> storeIds = new HashSet<>();
+        Set<Integer> companyIds = new HashSet<>();
+        for (OrderDepart od : orderDepartList) {
+            if(od.getOrderDepartType() == 1){
+                // 1.销售公司
+                companyIds.add(od.getCompanyId());
+            }else{
+                // 2.销售店铺
+                storeIds.add(od.getStoreId());
             }
-            if(companyIds.size() > 0 ){
-                Integer[] compantStoreIds = companyIds.toArray(new Integer[]{});
-                List<StoreInfo> storeInfoList = storeInfoService.getStoreInfoByCompantIds(compantStoreIds);
-                for (StoreInfo si : storeInfoList) {
-                    storeIds.add(si.getStoreId());
-                }
+        }
+        // 如果管理的是销售公司,则需查询当前销售公司下方所有的店铺
+        if(companyIds.size() > 0 ){
+            Integer[] compantStoreIds = companyIds.toArray(new Integer[]{});
+            List<StoreInfo> storeInfoList = storeInfoService.getStoreInfoByCompantIds(compantStoreIds);
+            for (StoreInfo si : storeInfoList) {
+                storeIds.add(si.getStoreId());
             }
-            Integer[] siIds = storeIds.toArray(new Integer[]{});
-            return siIds;
         }
+        // 缓存到Redis中,过期时间为3小时
+        integers = storeIds.toArray(new Integer[]{});
+        RedisUtils.put(key, integers);
+        RedisUtils.expire(key, DateTimeUtil.addHour(3));
+        return integers;
     }
 
     /**

+ 6 - 9
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminSignclosedController.java

@@ -101,12 +101,11 @@ public class AdminSignclosedController {
                                          ComplaintSignclosedInfo signclosedInfo) {
         ModelAndView mv = new ModelAndView("cm/signclosed/signclosed_list");
         if(signclosedInfo.getIsBinding() != null && signclosedInfo.getIsBinding() == 1){
+            // 是否绑定客诉
             mv = new ModelAndView("cm/signclosed/customer_signclosed_list");
         }
-
-        StringBuilder url = new StringBuilder("/admin/signclosed/select_signclosed_list?pageSize=" + pageSize);
         // 封装请求数据
-        PageRequest<ComplaintSignclosedInfo> pageRequest = new PageRequest<>(signclosedInfo, pageNO, pageSize, pageTotal == null);
+        PageRequest<ComplaintSignclosedInfo> pageRequest = new PageRequest<>(signclosedInfo, pageNO, pageSize, true);
         // 查询订单列表
         PagedResult<ComplaintSignclosedInfo> result = complaintSignclosedInfoService.listSignclosed(pageRequest);
         long total = 0;
@@ -116,11 +115,9 @@ public class AdminSignclosedController {
             total = pageTotal;
             result.setPages(total);
         }
-       /* url.append("&pageTotal=").append(total).append("&pageNO=");
-        mv.addObject("page", result);
-        mv.addObject("url", url.toString());*/
-         StitchAttrUtil.getSa().addDatePro("yyyy-MM-dd","signclosedDate")
-                 .setModelAndView(signclosedInfo, mv, "/admin/signclosed/select_signclosed_list", result);
+        StitchAttrUtil.getSa()
+                .addDatePro("yyyy-MM-dd","signclosedDate")
+                .setModelAndView(signclosedInfo, mv, "/admin/signclosed/select_signclosed_list", result);
         return mv;
     }
 
@@ -184,7 +181,7 @@ public class AdminSignclosedController {
         }
         JSONArray jsonArray = JSONArray.fromObject(orderItemString);
         JSONObject jsonArray2  = jsonArray.getJSONObject(0);
-        if(jsonArray2.get("itemNum").equals("")){
+        if("".equals(jsonArray2.get("itemNum"))){
             msg.setResultCode(200);
              msg.setReturnCode(503);
             return msg;

+ 10 - 13
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -120,10 +120,10 @@ public class AdminSalesOrderController {
 
         // 不查询客诉添加的订单
         salesOrder.setIsSelectCustomer(2);
-        //分页获取订单信息
+        // 分页获取订单信息
         PagedResult<SalesOrder> pagedResult = PageUtil.getPage();
 
-        //判断用户只能查看自己所能查询的公司的订单
+        // 判断用户只能查看自己所能查询的公司的订单
         Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
         if(storeIds.length > 0){
             salesOrder.setStoreIds(storeIds);
@@ -137,10 +137,7 @@ public class AdminSalesOrderController {
         List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
         // 查询产品颜色
         List<ProductColor> productColorList = productService.listproductAndColor(productColor);
-
-        /*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")
@@ -844,7 +841,7 @@ public class AdminSalesOrderController {
             }
             salesOrderService.addRstOrderinfo(salesOrder,new ArrayList<SalesOrder>(),detectIds);
 
-            //添加操作跟踪记录
+            // 添加操作跟踪记录
             OrderTracking orderTracking = new OrderTracking();
             orderTracking.setAdminId(admin.getAdminId());
             orderTracking.setSalesDealCode(salesOrder.getSalesDealCode());
@@ -901,7 +898,7 @@ public class AdminSalesOrderController {
                 order.setSalesAddressProvinceName(salesOrderInfos[0]);
                 order.setSalesAddressCityName(salesOrderInfos[1]);
                 order.setSalesAddressCountryName(salesOrderInfos[2]);
-                //为了防止,后面的详细地址里面有省市区,so 从市来获取位置,加1,要去掉空格
+                // 为了防止,后面的详细地址里面有省市区,so 从市来获取位置,加1,要去掉空格
                 int descNumber = salesOrderInfo.indexOf(salesOrderInfos[2]) + salesOrderInfos[2].length() +1 ;
                 String salesAddressDesc = "";
                 if(descNumber > 0){
@@ -913,13 +910,13 @@ public class AdminSalesOrderController {
             e.printStackTrace();
         }
 
-        //判断该订单为什么类型订单
-        Integer orderType = 0;  //0为其他  1为微商城推送订单   2为手动添加  3位导单
-        if(order.getSalesBatchId().indexOf("SD") > -1){
+        //判断该订单为什么类型订单 0为其他  1为微商城推送订单   2为手动添加  3位导单
+        int orderType = 0;
+        if(order.getSalesBatchId().contains("SD")){
             orderType = 2;
-        }else if(order.getSalesBatchId().indexOf("SC") > -1){
+        }else if(order.getSalesBatchId().contains("SC")){
             orderType = 3;
-        }else if (order.getSalesBatchId().indexOf("SW") > -1){
+        }else if (order.getSalesBatchId().contains("SW")){
             orderType = 3;
         }