소스 검색

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

# Conflicts:
#	watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
wangxiaoming 7 년 전
부모
커밋
6bbc812e58

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

@@ -63,6 +63,8 @@ public class CustomerInfo  implements Serializable {
     private Integer visitStatus;        //回访状态
     private Date visitCompleteDate;     //回访完成时间
 
+    private Visit visit = new Visit();  //回访
+
     public Integer getVisitStatus() {
         return visitStatus;
     }
@@ -334,4 +336,12 @@ public class CustomerInfo  implements Serializable {
     public void setCustomerQuestionTitle(String customerQuestionTitle) {
         this.customerQuestionTitle = customerQuestionTitle;
     }
+
+    public Visit getVisit() {
+        return visit;
+    }
+
+    public void setVisit(Visit visit) {
+        this.visit = visit;
+    }
 }

+ 10 - 9
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/Visit.java

@@ -11,31 +11,32 @@ public class Visit implements Serializable {
     private static final long serialVersionUID = 2472568693811968905L;
     private Integer visitId;
 
+    //客诉基本信息主键
     private Integer customerId;
-
+    //提醒人
     private Integer adminId;
-
+    //回访人姓名
     private String visitName;
-
+    //回访人手机号码
     private String visitTel;
-
+    //回访日期
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitDate;
 
     //回访时间选择 1: 9:00-12:00  2: 12:00-14:00   3: 14:00-18:00
     private Integer visitTimeSelect;
-
+    //回访状态
     private Integer visitStatus;
-
+    //回访完成日期
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date visitCompleteDate;
-
+    //回访联系人
     private String visitCompleteName;
-
+    //回访联系电话
     private String visitCompleteTel;
-
+    //回访回复备注
     private String visitCompleteRemark;
 
     @DateTimeFormat(pattern="yyyy-MM-dd")

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

@@ -13,6 +13,13 @@ import java.util.List;
 public interface CustomerService {
 
     /**
+     * 添加客诉
+     * @param customerInfo
+     * @return
+     */
+    Integer saveCustomerInfo(CustomerInfo customerInfo);
+
+    /**
      * 根据id获取客诉信息
      * @param customerId
      * @return

+ 27 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/CustomerServiceImpl.java

@@ -9,6 +9,7 @@ import com.iamberry.rst.service.cm.mapper.*;
 import com.iamberry.rst.util.PageUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -31,6 +32,32 @@ public class CustomerServiceImpl implements CustomerService {
     private ClosedFittingMapper closedFittingMapper;
     @Autowired
     private ClosedProdcueMapper closedProdcueMapper;
+    @Autowired
+    private VisitMapper visitMapper;
+
+    @Override
+    @Transactional
+    public Integer saveCustomerInfo(CustomerInfo customerInfo) {
+        //添加客诉基本信息
+        Integer flag = 0;
+        flag = customerInfoMapper.insert(customerInfo);
+
+        Visit visit = customerInfo.getVisit();
+        flag = visitMapper.addVisitInfo(visit);
+
+//        if(2 == customerInfo.getCustomerCounselType()){
+//            switch (customerInfo.getCustomerIsSolve()){
+//                case 3: //换新
+//                   // CustomerCommon
+//
+//            }
+//        }
+
+
+
+
+        return null;
+    }
 
     @Override
     public CustomerInfo getCustomerInfo(Integer customerId) {

+ 75 - 45
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -11,10 +11,6 @@ import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sys.SysService;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
-import com.iamberry.rst.faces.cm.CompanyInfoService;
-import com.iamberry.rst.faces.cm.SalesOrderService;
-import com.iamberry.rst.faces.cm.StoreInfoService;
-import com.iamberry.rst.utils.produceUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -75,9 +71,9 @@ public class AdminCustomerController {
     @RequiresPermissions("customer:list:customer")
     @RequestMapping("/_customer_list")
     public ModelAndView getCustomer(HttpServletRequest request, CustomerInfo customer,
-                                  @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
-                                  @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
-                                  @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
+                                    @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                    @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+                                    @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
         ModelAndView mv = new ModelAndView("cm/customer/custome_list");
 //        PagedResult<Customer> pagedResult = ptsBomService.listCustomer(pageNO, pageSize, ptsBom, totalNum == 0);
 //        if (totalNum != 0) {
@@ -119,7 +115,7 @@ public class AdminCustomerController {
         ModelAndView mv = new ModelAndView("cm/customer/order_list");
 
         //获取销售公司
-        List<CompanyInfo> companyInfoList =  companyInfoService.listCompanyInfo(new CompanyInfo());
+        List<CompanyInfo> companyInfoList = companyInfoService.listCompanyInfo(new CompanyInfo());
 
         mv.addObject("companyInfoList", companyInfoList);
         return mv;
@@ -128,6 +124,7 @@ public class AdminCustomerController {
 
     /**
      * 获取店铺集合
+     *
      * @param request
      * @param storeInfo
      * @return
@@ -135,14 +132,14 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping(value = "/select_storeInfo")
-    public ResponseJson listStoreInfo(HttpServletRequest request,StoreInfo storeInfo) {
+    public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo) {
         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);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("storeInfoList", storeInfoList);
             return rj;
         }
@@ -150,6 +147,7 @@ public class AdminCustomerController {
 
     /**
      * 获取订单集合
+     *
      * @param request
      * @param salesOrder
      * @return
@@ -157,10 +155,10 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping(value = "/select_salesOrder")
-    public ResponseJson listOrder(HttpServletRequest request,SalesOrder salesOrder) {
+    public ResponseJson listOrder(HttpServletRequest request, SalesOrder salesOrder) {
         List<SalesOrder> salesOrderList = salesOrderService.listSalesOrder(salesOrder);
 
-        for(SalesOrder order : salesOrderList){
+        for (SalesOrder order : salesOrderList) {
             SalesOrderItem salesOrderItem = new SalesOrderItem();
             salesOrderItem.setItemOrderId(order.getSalesId());
             List<SalesOrderItem> salesOrderItemList = salesOrderService.listSalesOrderItem(salesOrderItem);
@@ -170,7 +168,7 @@ public class AdminCustomerController {
         if (salesOrderList == null || salesOrderList.size() < 1) {
             return new ResponseJson(500, "查询失败", 500);
         } else {
-            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("salesOrderList", salesOrderList);
             return rj;
         }
@@ -178,6 +176,7 @@ public class AdminCustomerController {
 
     /**
      * 分页查询客诉列表信息
+     *
      * @param request
      * @param customerInfo
      * @param pageSize
@@ -188,10 +187,10 @@ public class AdminCustomerController {
      */
     @RequiresPermissions("customer:select:customer")
     @RequestMapping("/select_customer_list")
-    public ModelAndView selectCustomerList(HttpServletRequest request,CustomerInfo customerInfo,
+    public ModelAndView selectCustomerList(HttpServletRequest request, CustomerInfo customerInfo,
                                            @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
                                            @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
-                                           @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception{
+                                           @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
         ModelAndView mv = new ModelAndView("cm/customer/custome_list");
         PagedResult<CustomerInfo> pagedResult = customerService.listCustomer(pageNO, pageSize, customerInfo, totalNum == 0);
         if (totalNum != 0) {
@@ -207,15 +206,16 @@ public class AdminCustomerController {
         Admin admin = new Admin();
         admin.setAdminStatus(1);
         List<Admin> adminList = sysService.listSelectAdmin(admin);
-        mv.addObject("typeList",typeList);
-        mv.addObject("complaintTypeList",complaintTypeList);
-        mv.addObject("adminList",adminList);
+        mv.addObject("typeList", typeList);
+        mv.addObject("complaintTypeList", complaintTypeList);
+        mv.addObject("adminList", adminList);
         StitchAttrUtil.setModelAndView(customerInfo, mv, "/admin/customer/select_customer_list", pagedResult);
         return mv;
     }
 
     /**
      * 进入客诉基本信息页面
+     *
      * @param request
      * @return
      * @throws Exception
@@ -234,6 +234,7 @@ public class AdminCustomerController {
 
     /**
      * 添加回访信息
+     *
      * @param request
      * @param visit
      * @return
@@ -241,7 +242,7 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:add:visit")
     @RequestMapping("/add_visit_info")
-    public ResponseJson addVisitInfo(HttpServletRequest request,Visit visit) throws Exception {
+    public ResponseJson addVisitInfo(HttpServletRequest request, Visit visit) throws Exception {
         String visitAdminId = request.getParameter("visitAdminId");
         if (!StringUtils.isNotEmpty(visitAdminId)) {
             return new ResponseJson(500, "请选择回访人!", 500);
@@ -259,6 +260,7 @@ public class AdminCustomerController {
 
     /**
      * 修改客诉状态为已解决
+     *
      * @param request
      * @return
      */
@@ -293,6 +295,7 @@ public class AdminCustomerController {
 
     /**
      * 查询客服
+     *
      * @param request
      * @return
      */
@@ -304,9 +307,9 @@ public class AdminCustomerController {
         Integer adminId = AdminUtils.getLoginAdminId();
         Admin admin = new Admin();
         List<Admin> adminList = sysService.listSelectAdmin(admin);
-        if (adminList.size()> 0) {
-            rj.addResponseKeyValue("adminList",adminList);
-            rj.addResponseKeyValue("adminId",adminId);
+        if (adminList.size() > 0) {
+            rj.addResponseKeyValue("adminList", adminList);
+            rj.addResponseKeyValue("adminId", adminId);
             return rj;
         } else {
             return new ResponseJson(500, "查询失败!", 500);
@@ -315,6 +318,7 @@ public class AdminCustomerController {
 
     /**
      * 查询产品类型
+     *
      * @param request
      * @return
      */
@@ -327,8 +331,8 @@ public class AdminCustomerController {
         ProductType productType = new ProductType();
         List<ProductType> productTypeList = productService.listProductType(productType);
 
-        if (productTypeList != null && productTypeList.size()> 0) {
-            rj.addResponseKeyValue("productTypeList",productTypeList);
+        if (productTypeList != null && productTypeList.size() > 0) {
+            rj.addResponseKeyValue("productTypeList", productTypeList);
             return rj;
         } else {
             return new ResponseJson(500, "查询失败!", 500);
@@ -337,6 +341,7 @@ public class AdminCustomerController {
 
     /**
      * 查询产品
+     *
      * @param request
      * @return
      */
@@ -349,14 +354,14 @@ public class AdminCustomerController {
         Product product = new Product();
         List<Product> productList = productService.listProduce(product);
 
-        for(Product pro : productList){
-            ProductColor productColor  = new ProductColor();
+        for (Product pro : productList) {
+            ProductColor productColor = new ProductColor();
             productColor.setColorProductId(pro.getProductId());
             List<ProductColor> productColorList = productService.listProduceColor(productColor);
             pro.setColorList(productColorList);
         }
-        if (productList != null && productList.size()> 0) {
-            rj.addResponseKeyValue("productList",productList);
+        if (productList != null && productList.size() > 0) {
+            rj.addResponseKeyValue("productList", productList);
             return rj;
         } else {
             return new ResponseJson(500, "查询失败!", 500);
@@ -365,19 +370,20 @@ public class AdminCustomerController {
 
     /**
      * 查询产品
+     *
      * @param request
      * @return
      */
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping("/select_produce_fittings")
-    public ResponseJson selectProduceFittings(HttpServletRequest request,FittingsInfo fittingsInfo) {
+    public ResponseJson selectProduceFittings(HttpServletRequest request, FittingsInfo fittingsInfo) {
         ResponseJson rj = new ResponseJson(200, "查询成功!", 200);
 
         List<FittingsInfo> produceFittingsList = fittingsInfoService.listFittings(fittingsInfo);
 
-        if (produceFittingsList != null && produceFittingsList.size()> 0) {
-            rj.addResponseKeyValue("produceFittingsList",produceFittingsList);
+        if (produceFittingsList != null && produceFittingsList.size() > 0) {
+            rj.addResponseKeyValue("produceFittingsList", produceFittingsList);
             return rj;
         } else {
             return new ResponseJson(500, "查询失败!", 500);
@@ -386,15 +392,16 @@ public class AdminCustomerController {
 
     /**
      * 添加客诉
+     *
      * @param request
      * @return
      */
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping("/save_customer")
-    public ResponseJson addCustomer(HttpServletRequest request,CustomerInfo customerInfo) {
-
-
+    public ResponseJson addCustomer(HttpServletRequest request, CustomerInfo customerInfo) {
+        Integer flag = 0;
+        flag = customerService.saveCustomerInfo(customerInfo);
 
 //        if (produceFittingsList != null && produceFittingsList.size()> 0) {
 //
@@ -403,11 +410,24 @@ public class AdminCustomerController {
         return new ResponseJson(500, "查询失败!", 500);
     }
 
-
+    /**
+     * 验证方法
+     *
+     * @param customerInfo
+     * @return
+     */
+    public boolean isValiData(CustomerInfo customerInfo) {
+        boolean flag = true;
+//        if (customerInfo.getBomName() == null || "".equals(customerInfo.getBomName())) {
+//            return false;
+//        }
+        return flag;
+    }
 
 
     /**
      * 添加回访完成内容
+     *
      * @param request
      * @param visit
      * @return
@@ -415,7 +435,7 @@ public class AdminCustomerController {
     @ResponseBody
     @RequiresPermissions("customer:update:visit")
     @RequestMapping("/update_visit_finish")
-    public ResponseJson updateVisitFinish(HttpServletRequest request,Visit visit) throws Exception {
+    public ResponseJson updateVisitFinish(HttpServletRequest request, Visit visit) throws Exception {
         String customerId = request.getParameter("finish_customerId");
         if (!StringUtils.isNotEmpty(customerId)) {
             return new ResponseJson(500, "该客诉信息不存在!", 500);
@@ -433,6 +453,7 @@ public class AdminCustomerController {
 
     /**
      * 获取回访信息详情
+     *
      * @param request
      * @return
      */
@@ -452,13 +473,14 @@ public class AdminCustomerController {
             return new ResponseJson(500, "该客诉没有回访信息!", 500);
         }
         visit = visitList.get(0);
-        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
         rj.addResponseKeyValue("visit", visit);
         return rj;
     }
 
     /**
      * 获取问题描述信息
+     *
      * @param request
      * @return
      */
@@ -478,13 +500,14 @@ public class AdminCustomerController {
             return new ResponseJson(500, "该客诉信息没有问题描述!", 500);
         }
         describe = questionList.get(0);
-        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
         rj.addResponseKeyValue("describe", describe);
         return rj;
     }
 
     /**
      * 获取换新详情
+     *
      * @param request
      * @return
      */
@@ -511,7 +534,7 @@ public class AdminCustomerController {
             if (fittingList != null && fittingList.size() > 0) {
                 renewed.setClosedFittings(fittingList);
             }
-            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("renewed", renewed);
             return rj;
         }
@@ -519,6 +542,7 @@ public class AdminCustomerController {
 
     /**
      * 修改换新信息
+     *
      * @param request
      * @param renewed
      * @return
@@ -532,7 +556,7 @@ public class AdminCustomerController {
             return new ResponseJson(500, "该换新信息不能修改!", 500);
         }
         if (StringUtils.isNotEmpty(renewed.getRenewedBackPostage().toString())) {
-            renewed.setRenewedBackPostage(renewed.getRenewedBackPostage().intValue()*100);
+            renewed.setRenewedBackPostage(renewed.getRenewedBackPostage().intValue() * 100);
         }
         //修改换新信息
         int num = renewedService.updateRenewedInfo(renewed);
@@ -545,6 +569,7 @@ public class AdminCustomerController {
 
     /**
      * 进入修改维修页面
+     *
      * @param request
      * @return
      * @throws Exception
@@ -572,7 +597,7 @@ public class AdminCustomerController {
             if (fittingList != null && fittingList.size() > 0) {
                 repair.setClosedFittings(fittingList);
             }
-            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("repair", repair);
             return rj;
         }
@@ -580,6 +605,7 @@ public class AdminCustomerController {
 
     /**
      * 修改维修处理信息
+     *
      * @param request
      * @param repair
      * @return
@@ -605,7 +631,7 @@ public class AdminCustomerController {
             repair.setAreaNumber(Integer.parseInt(areaNumber));
         }
         if (StringUtils.isNotEmpty(repair.getRepairBackPostage().toString())) {
-            repair.setRepairBackPostage(repair.getRepairBackPostage().intValue()*100);
+            repair.setRepairBackPostage(repair.getRepairBackPostage().intValue() * 100);
         }
         //修改维修信息
         int num = repairService.updateRepairInfo(repair);
@@ -618,6 +644,7 @@ public class AdminCustomerController {
 
     /**
      * 进入修改售后退货页面
+     *
      * @param request
      * @return
      * @throws Exception
@@ -637,7 +664,7 @@ public class AdminCustomerController {
         if (backGoods == null) {
             return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
         } else {
-            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("backGoods", backGoods);
             return rj;
         }
@@ -645,6 +672,7 @@ public class AdminCustomerController {
 
     /**
      * 修改售后退货信息
+     *
      * @param request
      * @param backGoods
      * @return
@@ -658,7 +686,7 @@ public class AdminCustomerController {
             return new ResponseJson(500, "该售后退货信息不能修改!", 500);
         }
         if (StringUtils.isNotEmpty(backGoods.getBackGoodsBackPostage().toString())) {
-            backGoods.setBackGoodsBackPostage(backGoods.getBackGoodsBackPostage().intValue()*100);
+            backGoods.setBackGoodsBackPostage(backGoods.getBackGoodsBackPostage().intValue() * 100);
         }
         int num = backGoodsService.updateBackGoods(backGoods);
         if (num > 0) {
@@ -670,6 +698,7 @@ public class AdminCustomerController {
 
     /**
      * 进入修改补寄信息页面
+     *
      * @param request
      * @return
      */
@@ -688,7 +717,7 @@ public class AdminCustomerController {
         if (reissue == null) {
             return new ResponseJson(500, "该客诉没有售后退货信息!", 500);
         } else {
-            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
             rj.addResponseKeyValue("reissue", reissue);
             return rj;
         }
@@ -696,6 +725,7 @@ public class AdminCustomerController {
 
     /**
      * 修改售后补寄信息
+     *
      * @param request
      * @param reissue
      * @return

+ 135 - 63
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl

@@ -10,6 +10,7 @@
     <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
     <link href="${path}/common/lib/webuploader/0.1.5/webuploader.css" rel="stylesheet" type="text/css"/>
     <link href="${path}/common/lib/icheck/icheck.css" rel="stylesheet" type="text/css"/>
+
     <style>
         .tit{position: relative;text-align: left;font-size: 16px;padding-left: 10px;}
         .tit:after{content: '';position: absolute;left: 0;top: 20%;height: 60%;width: 3px;background-color: #32a3d8;}
@@ -60,7 +61,7 @@
 </nav>
 <article class="page-container" style="padding: 10px;">
     <div class="pd-20 cl">
-        <form action="${path}/admin/customer/save_customer" method="post" class="form form-horizontal" id="form-customer-add">
+        <form action="${path}/admin/customer/save_customer" method="post" class="form form-horizontal" id="form-customer-add"  onkeydown="if(event.keyCode==13)return false;">
             <div class="row cl">
 
                 <label class="form-label col-3">
@@ -161,7 +162,9 @@
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>问题内容:</label>
                 <div class="formControls col-5 col-sm-5">
-                    <script id="describeContent" type="text/plain" style="width:650px;height:250px;"></script>
+                    <input type="hidden" name="questionId" id="questionId">
+                    <script id="describeContentText" type="text/plain" style="width:650px;height:250px;"></script>
+                    <input type="hidden" name="describeContent" id="describeContent">
                 </div>
             </div>
             <div class="row cl">
@@ -182,7 +185,7 @@
                 </div>
             </div>
             <div class="row cl">
-                <label class="form-label col-1 col-sm-1"></label>
+                <label class="form-label col-1 col-sm-1">处理类型:</label>
                 <div class="formControls col-10 col-sm-10 skin-minimal">
                     <div class="radio-box" id="solved">
                         <input type="radio" id="customer-process-1" value="1" name="customerIsSolve" checked>
@@ -228,13 +231,13 @@
                     </ul>
                 </div>
             </div>
-            <div class="row cl" id="orderHead">
+            <div class="row cl" id="orderHead" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>订单信息:</label>
                 <div class="formControls col-1 col-sm-1">
                     <button type="button" class="btn btn-primary" id="selectOrder">搜索订单</button>
                 </div>
             </div>
-            <div class="row cl" id="order">
+            <div class="row cl" id="order" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-9 col-sm-9 text-c">
                     <table class="table table-border table-bg table-bordered">
@@ -261,7 +264,7 @@
                     </table>
                 </div>
             </div>
-            <div class="row cl" id="recipientInfo">
+            <div class="row cl" id="recipientInfo" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>收件信息:</label>
                 <div class="formControls col-2 col-sm-2">
                     <input type="text" class="input-text" value="" placeholder="填写收件人姓名" id="sendName" name="sendName">
@@ -270,7 +273,7 @@
                     <input type="text" class="input-text" value="" placeholder="填写收件人手机号" id="sendTel" name="sendTel">
                 </div>
             </div>
-            <div class="row cl" id="recipientAddress">
+            <div class="row cl" id="recipientAddress" style="display: none;">
                 <input type="hidden" id="addressInfo">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2">
@@ -293,15 +296,15 @@
                 </div>
 
             </div>
-            <div class="row cl" id="recipientAddressText">
+            <div class="row cl" id="recipientAddressText" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-5 col-sm-5">
                     <textarea name="" id="sendAddress" cols="" rows="2" class="textarea" placeholder="请填写详细地址"></textarea>
                     <span id="addrssMsg"></span>
                 </div>
             </div>
-            <div class="row cl" id="renewedProduct">
-                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>换新产品:</label>
+            <div class="row cl" id="renewedProduct" style="display: none;">
+                <label class="form-label col-1 col-sm-1"><span class="c-red">*</span><span id="relationProduct">换新产品</span>:</label>
                 <div class="formControls col-9 col-sm-9 text-c" id="produceSelect">
 
                     <#--<table class="table table-border table-bg table-bordered">
@@ -342,7 +345,7 @@
                 </div>
             </div>
 
-            <div class="row cl" id="TDScollect">
+            <div class="row cl" id="TDScollect" style="display: none;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>TDS收集:</label>
                 <div class="formControls col-2 col-sm-2" style="position: relative;">
                     <input type="hidden" name="arrcity_3word" id="arrcity_3word" value="" />
@@ -351,20 +354,20 @@
                 </div>
                 <div class="formControls col-2 col-sm-2">
 				<span class="select-box">
-				<select name="" class="select" id="TDSArea">
-					<option value="0">罗湖区</option>
-					<option value="1">福田区</option>
-				</select>
+                    <select name="" class="select" id="TDSArea" name="TDSArea">
+
+                    </select>
 				</span>
                 </div>
+                <input type="hidden" name="customerArea" id="customerArea">
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="进水tds数值" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="进水tds数值" id="customerInTDS" name="customerInTDS">
                 </div>
                 <div class="formControls col-2 col-sm-2">
-                    <input type="text" class="input-text" value="" placeholder="出水tds数值" id="" name="">
+                    <input type="text" class="input-text" value="" placeholder="出水tds数值" id="customerOutTDS" name="customerOutTDS">
                 </div>
             </div>
-            <div class="row cl" id="TDScollectShow">
+            <div class="row cl" id="TDScollectShow" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-6 col-sm-6">
                     tds收集:广东省-深圳市-福田区   进水:100ppm   出水:100ppm
@@ -373,13 +376,14 @@
             <div class="row cl" id="sendAddressInfo">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>寄回信息:</label>
                 <div class="formControls col-5 col-sm-5">
-				<textarea name="" cols="" rows="2" class="textarea" placeholder="说点什么...">邮寄地址:东莞清溪三中金龙工业区徐福记对面优尼雅电子科技,杨春有,13592708169邮寄备注:您好,麻烦您那边把机器邮寄前请将水箱、接水台中的水倒掉并擦干,不要留有水渍,避免运输途中水或奶粉
-溅入机器内部造成不必要的损失;用原包装或泡沫等材质包裹好机身。避免运输途中造成机器     磕碰、损坏。
+                        <textarea name="" cols="" rows="2" class="textarea" placeholder="说点什么...">邮寄地址:东莞清溪三中金龙工业区徐福记对面优尼雅电子科技,杨春有,13592708169邮寄备注:您好,麻烦您那边把机器邮寄前请将水箱、接水台中的水倒掉并擦干,不要留有水渍,避免运输途中水或奶粉
+                溅入机器内部造成不必要的损失;用原包装或泡沫等材质包裹好机身。避免运输途中造成机器     磕碰、损坏。
 请勿寄顺丰、圆通、EMS以及到付件快递,其他快递物流随意,寄回时,麻烦您在产品里面留下故障原因说明,
 提示:寄回后把单号给我们提供下然后提供下您的姓名、地址和电话方便我们修好后给您寄回去。</textarea>
+
                 </div>
             </div>
-            <div class="row cl" id="sendAddressByPhone">
+            <div class="row cl" id="sendAddressByPhone" style="display: none;">
                 <label class="form-label col-1 col-sm-1"></label>
                 <div class="formControls col-2 col-sm-2">
                     <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
@@ -388,7 +392,7 @@
                     <input type="button" class="btn btn-primary" value="发短信給用户">
                 </div>
             </div>
-            <div class="row cl" id="updateProduct">
+            <div class="row cl" id="updateProduct" style="display: none;">
                 <label class="form-label col-1 col-sm-1">更换产品:</label>
                 <div class="formControls col-7 col-sm-7" id="back-product">
 
@@ -426,14 +430,14 @@
                         </tr>
                         </tbody>
                     </table>-->
-
                 </div>
 
             </div>
             <div class="row cl">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>处理描述:</label>
                 <div class="formControls col-5 col-sm-5">
-                    <script id="describeHandleDesc" type="text/plain" style="width:1024px;height:300px;"></script>
+                    <script id="describeHandleDescText" type="text/plain" style="width:1024px;height:300px;"></script>
+                    <input type="hidden" id="describeHandleDesc" name="describeHandleDesc">
                 </div>
             </div>
             <div class="row cl">
@@ -453,31 +457,31 @@
                 <div class="row cl" id="needToVisit">
                     <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访人:</label>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" class="input-text" value="" placeholder="填写回访人姓名" id="" name="">
+                        <input type="text" class="input-text" value="" placeholder="填写回访人姓名" id="" name="visit.visitName">
                     </div>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" class="input-text" value="" placeholder="填写回访人手机号" id="" name="">
+                        <input type="text" class="input-text" value="" placeholder="填写回访人手机号" id="" name="visit.visitTel">
                     </div>
                 </div>
                 <div class="row cl">
                     <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访日期:</label>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" placeholder="请选择回访日期" id="datemin" class="input-text Wdate" readonly="readonly">
+                        <input type="text" placeholder="请选择回访日期" id="datemin"  name="visit.visitDate" class="input-text Wdate" onclick="WdatePicker({skin:'whyGreen',minDate:'%y-%M-%d'})"  readonly="readonly">
                     </div>
                 </div>
                 <div class="row cl">
                     <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>回访时间:</label>
                     <div class="formControls col-10 col-sm-10 skin-minimal">
                         <div class="radio-box">
-                            <input type="radio" id="visit-time-1" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-1" name="visit.visitTimeSelect">
                             <label for="visit-time-1">09:00-12:00</label>
                         </div>
                         <div class="radio-box">
-                            <input type="radio" id="visit-time-2" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-2" name="visit.visitTimeSelect">
                             <label for="visit-time-2">12:00-14:00</label>
                         </div>
                         <div class="radio-box">
-                            <input type="radio" id="visit-time-3" name="visitTimeSelect">
+                            <input type="radio" id="visit-time-3" name="visit.visitTimeSelect">
                             <label for="visit-time-3">14:00-18:00</label>
                         </div>
                     </div>
@@ -485,7 +489,7 @@
                 <div class="row cl">
                     <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>提醒人:</label>
                     <div class="formControls col-4 col-sm-4"> <span class="select-box">
-                    <select name="" class="select" id="visitAdminId">
+                    <select name="" class="select" id="visitAdminId" name="visit.adminId">
 
                     </select>
                     </span>
@@ -516,11 +520,16 @@
 <#--<script type="text/javascript" src="${path}/common/lib/cm.lib/dimensions.js"></script>-->
 <script type="text/javascript" src="${path}/common/lib/cm.lib/suggest.js"></script>
 
+<#--时间控件-->
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+
+<#--百度富文本编译器-->
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.config.js"></script>
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.all.js"></script>
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/ueditor.parse.js"></script>
 <script type="text/javascript" charset="utf-8" src="${path}/common/lib/ueditor/1.4.3/lang/zh-cn/zh-cn.js"></script>
 
+
 <script type="text/javascript">
     $(function(){
         $("#province").ProvinceCity();
@@ -540,18 +549,25 @@
 
     $(document).on('click', '.dalog-ask .answer', function() {
         var msg = $(this).find("span").text();
-        UE.getEditor('describeContent').setContent(msg,false);
+        UE.getEditor('describeContentText').setContent(msg,false);
+
+        $("#questionId").val($(this).find(".quesId").val());
 
         //$("#answer-textarea").text();
         //$(".dalog-ask").hide(); 隐藏qa
     });
 
+    /*实时监听文本框-- 员工编号*/
+    document.getElementById("suggest").addEventListener("div", function(){
+        alert(1);
+    });
 </script>
+
 <script>
     /*问题描述*/
-    var describeContent = UE.getEditor('describeContent');
+    var describeContentText = UE.getEditor('describeContentText');
     /*处理描述*/
-    var describeHandleDesc = UE.getEditor('describeHandleDesc');
+    var describeHandleDescText = UE.getEditor('describeHandleDescText');
 </script>
 <script type="text/javascript">
 
@@ -580,18 +596,18 @@
         /* 初始化单选框样式 */
         initCheck();
 
+        /*初始化产品类型 --  客诉头部的产品类型单选 */
+        initProduceType();
+
         /*初始化问题分类*/
         initComplaintTypeInfo();
 
         /*初始化客服*/
         initSysAdmin();
 
-        /*初始化回访跟踪客服*/
+        /*初始化回访客服*/
         initVisitSysAdmin();
 
-        /*初始化产品类型 --  客诉头部的产品类型单选 */
-        initProduceType();
-
         /*初始化选择处理结果 -- type : 1 :已解决  2:未解决  3:换新  4:维修  5:补发   6:退货  7:无理由退货 */
         initProcessResult(1);
 
@@ -751,7 +767,7 @@
                     for(var i=0;i<data.returnMsg.productTypeList.length;i++){
                         var produce = data.returnMsg.productTypeList[i];
                         html += ' <div class="radio-box">' +
-                                '<input type="radio" id="produce-type-'+ i +'" name="produceType" datatype="*" value="'+ produce.typeId +'"  '+ check +' nullmsg="请选择产品类型!" >' +
+                                '<input type="radio" id="produce-type-'+ i +'" name="typeId"  datatype="*" value="'+ produce.typeId +'"  '+ check +' nullmsg="请选择产品类型!" >' +
                                 ' <label for="produce-type-'+ i +'">'+ produce.typeName +'</label>' +
                                 ' </div>';
                         check = "";
@@ -815,6 +831,7 @@
                     break;
                 case 3: //换新
                     result = isSolve.renewed;
+                    $("#relationProduct").html("换新产品");
                     $("#processResultStatus").show();
                     $("#orderHead").show();
                     $("#order").show();
@@ -830,6 +847,7 @@
                     break;
                 case 4: //维修
                     result = isSolve.maintain;
+                    $("#relationProduct").html("维修产品");
                     $("#processResultStatus").show();
                     $("#orderHead").show();
                     $("#order").show();
@@ -845,6 +863,7 @@
                     break;
                 case 5://补发
                     result = isSolve.reissue;
+                    $("#relationProduct").html("补发产品");
                     $("#processResultStatus").show();
                     $("#orderHead").show();
                     $("#order").show();
@@ -860,6 +879,7 @@
                     break;
                 case 6: //退货
                     result = isSolve.backGoods;
+                    $("#relationProduct").html("退货产品");
                     $("#processResultStatus").show();
                     $("#orderHead").show();
                     $("#order").show();
@@ -875,6 +895,7 @@
                     break;
                 case 7://无理由退货
                     result = isSolve.noReasonBack;
+                    $("#relationProduct").html("退货产品");
                     $("#processResultStatus").show();
                     $("#orderHead").show();
                     $("#order").show();
@@ -919,7 +940,7 @@
     /*初始化问题大类*/
     function initComplaintTypeInfo() {
         //默认为售前咨询
-        var customerCounselTypeOverall = 1;
+        var customerCounselTypeOverall = allCustomerInfoType;
         var html = "";
         $.ajax({
             type: "POST",
@@ -997,8 +1018,9 @@
                 if (data.returnCode == 200) {
                     for(var i=0;i<data.returnMsg.complaintQuestionInfoList.length;i++){
                         var complaintQuestion= data.returnMsg.complaintQuestionInfoList[i];
-                        html += '<li class="ask">'+ complaintQuestion.questionName +'</li>' +
-                                '<li class="answer" style="height: 65px;overflow: hidden;">答:<span>'+ complaintQuestion.questionProfile +'</span></li>';
+                        html += '<li class="ask">'+ complaintQuestion.questionName +'' +
+                                '</li>' +
+                                '<li class="answer" style="height: 65px;overflow: hidden;">答:<span>'+ complaintQuestion.questionProfile +'</span><input class="quesId" value="'+ complaintQuestion.questionId +'"></li>';
                     }
                 }else{
                     html = '';
@@ -1025,7 +1047,7 @@
      * 打开搜索订单框
      */
     function selectOrder(){
-        layer_show("搜索订单","${path}/admin/customer/select_order","1000","350");
+        layer_show("搜索订单","${path}/admin/customer/select_order","1000","500");
     }
 
     /**
@@ -1223,6 +1245,30 @@
         }
     }
 
+    /* TDS收集设置区 */
+    var TDSCity = '';
+    function linkageSetDistrict(){
+        var arrcity_3word = $("#arrcity_3word").val();
+        var cityName = '北京';
+        for(var i = 0;i<citys.length;i++){
+            for(var j=0;j<citys[i].length;j++){
+                if(j == 0 && arrcity_3word == citys[i][j]){
+                    cityName = citys[i][1];
+                }
+            }
+        }
+        TDSCity = cityName;
+        var selectCity = listCity(null,cityName);
+        var cityId = selectCity[0].cityId;
+        var selectDistrict = listDistrict(cityId,"");
+        var html = '';
+        for(var i=0;i<selectDistrict.length;i++){
+            html += '<option value="'+ selectDistrict[i].districtId +'">'+ selectDistrict[i].district +'</option>';
+        }
+        $("#TDSArea").html(html);
+        $("#TDSArea").find("option").eq(0).prop("selected",true);
+    }
+
     /**
      * 展示产品
      * @param orderItemList
@@ -1313,8 +1359,6 @@
             success: function(data){
                 if (data.returnCode == 200) {
                     productList = data.returnMsg.productList;
-                }else{
-
                 }
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){
@@ -1409,7 +1453,7 @@
 </script>
 <script>
     $(function(){
-        $("#form-bom-add").Validform({
+        $("#form-customer-add").Validform({
             tiptype: function (msg, o, cssctl) {
                 if (o.type == 3) {//失败
                     layer.msg(msg, {icon: 5, time: 3000});
@@ -1417,48 +1461,76 @@
                 }
             },
             datatype: {//自定义验证类型
-                "select": function (gets, obj, curform, regxp) {
-                    if (gets == "") {
-                        return false;
-                    } else {
-                        return true;
-                    }
-                }
+
             },
             ignoreHidden: true,
             tipSweep: true, //若为true,则只在表单提交时验证
             ajaxPost: true, //异步提交
             beforeCheck: function (curform) {  //验证通过之前执行的函数
+
             },
             beforeSubmit: function (curform) {  //验证通过之后执行的函数
-
+                addCustomerReady();
             },
             callback: function (data) {//异步回调函数
+                return ;
                 if (data) {
                     var index = layer.alert(data.resultMsg, function () {
                         if (data.resultCode == 200) {
-                            location.href = "${path}/admin/bom/_bom_list";
+                            //location.href = "${path}/admin/bom/_bom_list";
                         } else {
-                            layer.close(index);
+                            //layer.close(index);
                         }
+                        return ;
                     });
                 }
             }
         });
     })
 
+    /* 添加客诉的准备 */
+    function addCustomerReady(){
 
-    /* 添加客诉 */
-    function save_submit(){
-        var customerSourceType = $("input[name='customerSourceType']:checked").val();
-        if(customerSourceType == 3){
-            var customerSource = $("#customerSource").val();
-            if(customerSource == null || customerSource ==""){
-                showErrorMsg($("#customerSource"),"请输入来源入口!");
+        /*----TDS收集模块--start-----*/
+        var valicity = $(".ac_result_tip").html();
+        if(valicity == null || valicity == "" || typeof(valicity)=="undefined"){
+            $("#TDSArea").html("");
+        }else if(valicity.indexOf("对不起,找不到") > 0 ){
+            $("#TDSArea").html("");
+            $("#customerArea").val("");
+        }else{
+            var TDSArea = $("#TDSArea").find("option:selected").text();
+            if(TDSArea != null && TDSArea != ""){
+                var area = TDSCity + "-" + TDSArea
+                $("#customerArea").val(area);
             }
         }
+        /*----TDS收集模块--end-----*/
+
+        /*----问题描述- start --*/
+        var describeContentText = UE.getEditor('describeContentText').getContent();
+        $("#describeContent").val(describeContentText);
+        /*----问题描述--end-----*/
+
+        /*----处理描述- start --*/
+        var describeHandleDescText = UE.getEditor('describeHandleDescText').getContent();
+        $("#describeHandleDesc").val(describeHandleDescText);
+        /*----处理描述--end-----*/
+
+
     }
 
+    /* 添加客诉 */
+//    function save_submit(){
+//        var customerSourceType = $("input[name='customerSourceType']:checked").val();
+//        if(customerSourceType == 3){
+//            var customerSource = $("#customerSource").val();
+//            if(customerSource == null || customerSource ==""){
+//                showErrorMsg($("#customerSource"),"请输入来源入口!");
+//            }
+//        }
+//    }
+
     /*提示错误信息*/
     function showErrorMsg(node,msg){
         node.select();

+ 14 - 7
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl

@@ -52,7 +52,7 @@
     <div class="text-c">
         <form action="" method="post">
             <div class="row cl">
-                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                <div class="formControls col-2 col-sm-2" > <span class="select-box">
                     <select name="" class="select" id="companyId">
                          <option value="">销售公司</option>
                         <#if companyInfoList?? &&  (companyInfoList?size > 0) >
@@ -63,12 +63,12 @@
                     </select>
                     </span>
                 </div>
-                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                <div class="formControls col-2 col-sm-2" > <span class="select-box">
                     <select name="" class="select" id="storeId">
                     </select>
                     </span>
                 </div>
-                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                <div class="formControls col-2 col-sm-2"> <span class="select-box">
                     <select name="" class="select" id="storeId">
                         <option value="">所有类型</option>
                         <option value="0">取消订单</option>
@@ -89,13 +89,17 @@
                     </select>
                     </span>
                 </div>
-                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+                <div class="formControls col-3 col-sm-3" >
                     <input type="text" class="input-text" value="" placeholder="订单编号" id="salesId" name="">
                 </div>
-                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+            </div>
+
+            <div class="row cl" style="margin-top: 10px;">
+
+                <div class="formControls col-2 col-sm-2" >
                     <input type="text" class="input-text" value="" placeholder="收货人姓名" id="salesAddressName" name="">
                 </div>
-                <div class="formControls col-2 col-sm-2" style="width: 150px;">
+                <div class="formControls col-2 col-sm-2">
                     <input type="text" class="input-text" value="" placeholder="收货人电话" id="salesAddressTel" name="">
                 </div>
                 <div class="formControls col-1 col-sm-1">
@@ -157,6 +161,9 @@
         $(document).on('click', '#searchOrder', function() {
             searchOrder();
         });
+
+        /*初始化  搜索订单  */
+        searchOrder();
     })
 
     /*获取销售公司下的所有店铺*/
@@ -209,7 +216,7 @@
                 salesAddressTel : salesAddressTel
             },
             url: "${path}/admin/customer/select_salesOrder",
-            async: false,
+            async: true,
             success: function(data){
                 if (data.returnCode == 200) {
                     for(var i=0;i<data.returnMsg.salesOrderList.length;i++){

+ 12 - 4
watero-rst-web/src/main/webapp/common/lib/cm.lib/suggest.js

@@ -65,7 +65,7 @@
 					break;
 					case 27: //	escape
 					$results.hide();
-					break}					
+					break}
 			}else if($input.val().length != prevLength) {
 				if (timeout) 
 					clearTimeout(timeout);
@@ -119,8 +119,8 @@
 					$currentResult = false;
 					return $currentResult}
 			
-			function selectCurrentResult() {			
-				$currentResult = getCurrentResult();			
+			function selectCurrentResult() {
+				$currentResult = getCurrentResult();
 				if ($currentResult) {
 					$input.val($currentResult.children('a').html().replace(/<span>.+?<\/span>/i,''));
 					$results.hide();
@@ -129,7 +129,15 @@
 					if (options.onSelect) {
 						options.onSelect.apply($input[0])}
 				}
-			
+                linkageDistrict(); //联动区
+			}
+
+			/*联动区*/
+			function linkageDistrict(){
+                var TDSArea=document.getElementById("TDSArea");
+                if(TDSArea != null && typeof(TDSArea)!="undefined" ){
+                    linkageSetDistrict();
+				}
 			}
 			
 			function nextResult() {