소스 검색

添加待办事项

liujiankang 7 년 전
부모
커밋
baa8129218

+ 9 - 2
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/CustomerCommon.java

@@ -19,6 +19,8 @@ public class CustomerCommon implements Serializable {
     private Integer orderId;
     //仓储任务(签收id) 
     private Integer signclosedId;
+    //跟进客服id
+    private Integer adminId;
     //发出Efast订单号 
     private String relationBackEfastOrderId;
     // TODO: 2018/3/23  寄回状态变更顺序: 1 -> 2  -> 4  -> 3
@@ -64,7 +66,7 @@ public class CustomerCommon implements Serializable {
     private String relationAlipay;
     //是否已转账邮费  0:不需要 1:已转  2:已申请待转账   3:未申请
     private Integer relationIsTransfer;
-    //创建时间 
+    //创建时间
     private Date relationCreateTime;
     // 修改时间,
     private Date relationUpdateTime;
@@ -373,6 +375,11 @@ public class CustomerCommon implements Serializable {
         this.customerIsSolve = customerIsSolve;
     }
 
+    public Integer getAdminId() {
+        return adminId;
+    }
 
-
+    public void setAdminId(Integer adminId) {
+        this.adminId = adminId;
+    }
 }

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerCommonService.java

@@ -19,4 +19,11 @@ public interface CustomerCommonService {
      */
     List<CustomerCommon> listCustomerCommon(CustomerCommon customerCommon);
 
+    /**
+     * 根据寄回状态查询对应的客诉数量
+     * @param customerCommon
+     * @return
+     */
+    Integer listCustomerCommonByStatus(CustomerCommon customerCommon);
+
 }

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/CustomerService.java

@@ -145,5 +145,5 @@ public interface CustomerService {
     /*删除旧的售后信息*/
     void deleteCustomerAfterSales(CustomerInfo customer);
 
-    Integer selectNotSolvedCustomer();
+    Integer selectNotSolvedCustomer(CustomerInfo customer);
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerCommonServiceImpl.java

@@ -95,5 +95,10 @@ public class CustomerCommonServiceImpl implements CustomerCommonService {
         return customerCommonList;
     }
 
+    @Override
+    public Integer listCustomerCommonByStatus(CustomerCommon customerCommon) {
+        return customerCommonMapper.listCustomerCommonByStatus(customerCommon);
+    }
+
 
 }

+ 1 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -587,9 +587,7 @@ public class CustomerServiceImpl implements CustomerService {
     }
 
     @Override
-    public Integer selectNotSolvedCustomer() {
-        CustomerInfo customerInfo = new CustomerInfo();
-        customerInfo.setCustomerIsSolve(2);
+    public Integer selectNotSolvedCustomer(CustomerInfo customerInfo) {
         List<CustomerInfo> listCustomer = customerInfoMapper.listCustomer(customerInfo);
         return listCustomer.size();
     }

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

@@ -12,5 +12,11 @@ public interface CustomerCommonMapper {
      * @return
      */
     List<CustomerCommon> listCustomerCommon(CustomerCommon customerCommon);
+    /**
+     * 根据寄回状态查询对应的客诉数量
+     * @param customerCommon
+     * @return
+     */
+    Integer listCustomerCommonByStatus(CustomerCommon customerCommon);
 }
 

+ 78 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/customerCommonMapper.xml

@@ -49,7 +49,7 @@
                 noreason_back_back_logistics_company AS relationBackLogisticsCompany,
                 noreason_back_back_logistics_no AS relationBackLogisticsNo
             FROM tb_rst_noreason_back
-        )cc
+        )cc LEFT JOIN tb_rst_customer_info c on cc.customerId = c.customer_id
         <where>
             <if test="customerId != null and customerId != ''">
                 AND cc.customerId = #{customerId}
@@ -57,7 +57,84 @@
             <if test="relationBackStatus != null and relationBackStatus != ''">
                 AND cc.relationBackStatus = #{relationBackStatus}
             </if>
+            <if test="adminId != null and adminId != ''">
+                and c.admin_id = #{adminId}
+            </if>
         </where>
   </select>
 
+
+    <select id="listCustomerCommonByStatus" parameterType="CustomerCommon" resultType="Integer">
+        SELECT count(1)
+        FROM (
+        SELECT
+        '3' AS customerIsSolve,
+        renewed_id AS relationId,
+        customer_id AS customerId,
+        renewed_back_status  AS relationBackStatus,
+        renewed_back_logistics_company AS relationBackLogisticsCompany,
+        renewed_back_logistics_no AS relationBackLogisticsNo,
+        renewed_create_time AS relationCreateTime,
+        renewed_back_efast_order_id AS relationBackEfastOrderId
+        FROM tb_rst_renewed
+        UNION ALL
+        SELECT
+        '4' AS customerIsSolve,
+        repair_id AS relationId,
+        customer_id AS customerId,
+        repair_back_status  AS relationBackStatus,
+        repair_back_logistics_company AS relationBackLogisticsCompany,
+        repair_back_logistics_no AS relationBackLogisticsNo,
+        repair_create_time AS relationCreateTime,
+        repair_back_efast_order_id AS relationBackEfastOrderId
+        FROM tb_rst_repair
+        UNION ALL
+        SELECT
+        '5' AS customerIsSolve,
+        reissue_id AS relationId,
+        customer_id AS customerId,
+        NULL  AS relationBackStatus,
+        NULL AS relationBackLogisticsCompany,
+        NULL AS relationBackLogisticsNo,
+        reissue_create_time AS relationCreateTime,
+        reissue_back_efast_order_id AS relationBackEfastOrderId
+        FROM tb_rst_reissue
+        UNION ALL
+        SELECT
+        '6' AS customerIsSolve,
+        back_goods_id AS relationId,
+        customer_id AS customerId,
+        back_goods_back_status  AS relationBackStatus,
+        back_goods_back_logistics_company AS relationBackLogisticsCompany,
+        back_goods_back_logistics_no AS relationBackLogisticsNo,
+        back_goods_create_time AS relationCreateTime,
+        '0' AS relationBackEfastOrderId
+        FROM tb_rst_back_goods
+        UNION ALL
+        SELECT
+        '7' AS customerIsSolve,
+        noreason_back_id AS relationId,
+        customer_id AS customerId,
+        noreason_back_back_status  AS relationBackStatus,
+        noreason_back_back_logistics_company AS relationBackLogisticsCompany,
+        noreason_back_back_logistics_no AS relationBackLogisticsNo,
+        noreason_back_create_time AS relationCreateTime,
+        '0' AS relationBackEfastOrderId
+        FROM tb_rst_noreason_back
+        )cc LEFT JOIN tb_rst_customer_info c on cc.customerId = c.customer_id
+        <where>
+            <if test="relationBackStatus != null and relationBackStatus != ''">
+                AND cc.relationBackStatus = #{relationBackStatus}
+            </if>
+            <if test="relationBackStatus == 3 ">
+                AND cc.relationBackEfastOrderId IS NULL
+            </if>
+            <if test="relationCreateTime != null and relationCreateTime != ''">
+                AND DATEDIFF(#{relationCreateTime}, cc.relationCreateTime) &gt; 3
+            </if>
+            <if test="adminId != null and adminId != ''">
+                and c.admin_id = #{adminId}
+            </if>
+        </where>
+    </select>
 </mapper>

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

@@ -169,6 +169,44 @@
             WHERE noreason_back_back_logistics_no = #{sendLogisticsNo}
         )
       </if>
+      <if test="backStatus != null and backStatus != ''">
+        and c.customer_id in (
+            SELECT customer_id
+            FROM tb_rst_renewed trr
+            WHERE renewed_back_status = #{backStatus}
+            UNION ALL
+            SELECT customer_id
+            FROM tb_rst_repair
+            WHERE repair_back_status =#{backStatus}
+            UNION ALL
+            SELECT customer_id
+            FROM tb_rst_back_goods
+            WHERE back_goods_back_status = #{backStatus}
+            UNION ALL
+            SELECT customer_id
+            FROM tb_rst_noreason_back
+            WHERE noreason_back_back_status = #{backStatus}
+        )
+      </if>
+      <if test="backStatus == 1">
+        and c.customer_id in (
+        SELECT customer_id
+        FROM tb_rst_renewed trr
+        WHERE DATEDIFF(NOW(), renewed_create_time) &gt; 3
+        UNION ALL
+        SELECT customer_id
+        FROM tb_rst_repair
+        WHERE DATEDIFF(NOW(), repair_create_time) &gt; 3
+        UNION ALL
+        SELECT customer_id
+        FROM tb_rst_back_goods
+        WHERE DATEDIFF(NOW(), back_goods_create_time) &gt; 3
+        UNION ALL
+        SELECT customer_id
+        FROM tb_rst_noreason_back
+        WHERE DATEDIFF(NOW(), noreason_back_create_time) &gt; 3
+        )
+      </if>
     </where>
 
     ORDER BY c.customer_id desc

+ 22 - 10
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -36,10 +36,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Created by wxm
@@ -1657,22 +1654,37 @@ public class AdminCustomerController {
      * 查询未解决客诉数量
      */
     @ResponseBody
-    @RequestMapping(value = "/selectTodo")
+    @RequestMapping(value = "/selectNumberBacklog")
     public ResultMsg selectTodo(HttpServletRequest request){
         ResultMsg msg = new ResultMsg();
         CustomerInfo customerInfo = new CustomerInfo();
+        //获取登录员工id
+        Integer adminId = AdminUtils.getLoginAdminId();
+        customerInfo.setAdminId(adminId);
         customerInfo.setCustomerIsSolve(2);
         //未解决客诉数量
-        Integer notSolvedCustomer = customerService.selectNotSolvedCustomer();
+        Integer notSolvedCustomer = customerService.selectNotSolvedCustomer(customerInfo);
         //需要向工厂确认所有已签收的产品数量
-
+        CustomerCommon customerCommon = new CustomerCommon();
+        customerCommon.setAdminId(adminId);
+        customerCommon.setRelationBackStatus(4);
+        Integer amountReceivedCustomer = customerCommonService.listCustomerCommonByStatus(customerCommon);
         //需要填写Efast订单号的客诉数量
-
+        customerCommon.setRelationBackStatus(3);
+        Integer noEntryCustomer = customerCommonService.listCustomerCommonByStatus(customerCommon);
         //客诉录入后,三天后未寄回的客诉数量
-
+        customerCommon.setRelationBackStatus(1);
+        customerCommon.setRelationCreateTime(new Date());
+        Integer notSendCustomer = customerCommonService.listCustomerCommonByStatus(customerCommon);
+
+        Map<String,Integer> numberMap = new HashMap<>();
+        numberMap.put("notSolvedCustomer",notSolvedCustomer);
+        numberMap.put("amountReceivedCustomer",amountReceivedCustomer);
+        numberMap.put("noEntryCustomer",noEntryCustomer);
+        numberMap.put("notSendCustomer",notSendCustomer);
         msg.setResultCode(ResultInfo.SUCCESSCODE);
         msg.setStatus(true);
-        msg.setData(null);
+        msg.setData(numberMap);
         return msg;
     }
 }

+ 38 - 9
watero-rst-web/src/main/webapp/WEB-INF/views/home/pc_index.ftl

@@ -94,10 +94,10 @@
     <div id="selectTodo" class="menu_dropdown bk_2" style="display:none">
         <div>
 
-            <a onclick="toOrserList('${path}/admin/order/selectShopOrder?orderStatus=paySuccess')"  ><span>(</span><span id="sendTheGoods" style="color: #f00">0</span><span>)待发货订单</span></a><br>
-            <a onclick="toOrserList('${path}/admin/order/selectShopOrder?orderStatus=returnOrder')"  ><span>(</span><span id="returnGoods" style="color: #f00">0</span><span>)申请退款订单</span></a><br>
-            <a onclick="toOrserList('${path}/admin/order/selectShopOrder?orderStatus=returnOrderEtc')"  ><span>(</span><span id="returnRefund" style="color: #f00">0</span><span>)申请退货订单</span></a><br>
-            <a onclick="toOrserList('${path}/admin/order/selectShopOrder?orderStatus=inOrder')"  ><span>(</span><span id="exchange" style="color: #f00">0</span><span>)申请换货订单</span></a>
+            <a onclick="toOrserList('${path}/admin/customer/select_customer_list?customerIsSolve=2&isFirst=1')"  ><span>(</span><span id="notSolvedCustomer" style="color: #f00">0</span><span>)未解决客诉数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/customer/select_customer_list?backStatus=4&isFirst=1')"  ><span>(</span><span id="amountReceivedCustomer" style="color: #f00">0</span><span>)需要向工厂确认是否已签收的产品数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/customer/select_customer_list?backStatus=3&isFirst=1')"  ><span>(</span><span id="noEntryCustomer" style="color: #f00">0</span><span>)需要填写Efast订单号的客诉数量</span></a><br>
+            <a onclick="toOrserList('${path}/admin/customer/select_customer_list?backStatus=1&isFirst=1')"  ><span>(</span><span id="notSendCustomer" style="color: #f00">0</span><span>)录入三天后未寄回的客诉数量</span></a>
         </div>
     </div>
 </section>
@@ -114,16 +114,16 @@
 <script>
     $.ajax({
         "type" : "post",
-        "url" : "/tooth/admin/order/selectTodo",
+        "url" : "${path}/admin/customer/selectNumberBacklog",
         /*"url" : "/admin/order/selectTodo",*/
         "dataType" : "json",
         async:false,
         "success" : function(data) {
             if(data.status){
-                $("#sendTheGoods").html(data.data.sendTheGoods);
-                $("#returnGoods").html(data.data.returnGoods);
-                $("#returnRefund").html(data.data.returnRefund);
-                $("#exchange").html(data.data.exchange);
+                $("#notSolvedCustomer").html(data.data.notSolvedCustomer);
+                $("#amountReceivedCustomer").html(data.data.amountReceivedCustomer);
+                $("#noEntryCustomer").html(data.data.noEntryCustomer);
+                $("#notSendCustomer").html(data.data.notSendCustomer);
             }
         },
         "error":function(data){
@@ -138,5 +138,34 @@
         offset: 'rb',
         shade: 0
     });
+
+    function toOrserList(url){
+        //去除其它选项选中样式
+        $("#min_title_list li").removeClass("active");
+        //判断是否已存在订单列表选项卡
+        /*alert($("#min_title_list li span").text());*/
+        var bolean = true;
+        $(function() {
+            $("#min_title_list li").each(function() {
+                if(($(this).find("span").text()) == "客诉列表"){
+                    $(this).addClass("active");
+                    bolean = false;
+                }
+            })
+
+        });
+        if(bolean){
+            //新增一个选项卡标题
+            $("#min_title_list").append('<li id="orderTitleId" class="active"><span data-href="/admin/order/selectShopOrder">客诉列表</span><i></i><em></em></li>')
+            //获取前面ul个数计算新增的选项卡位置
+            var left = $("#min_title_list>li").length*133;//获取前面ul位置长度
+            $("#min_title_list").css("width",left+"px");
+        }
+        //隐藏其它选项卡内容
+        $("#iframe_box .show_iframe").css("display","none");
+        //新增选项卡内容
+        $("#iframe_box").append('<div class="show_iframe">' +
+                '<div style="display: none" class="loading"></div><iframe id="indexframe" scrolling="yes" frameborder="0" src="'+url+'"></iframe></div>');
+    }
 </script>
 </html>