Selaa lähdekoodia

Merge remote-tracking branch 'liujiankang/master'

# Conflicts:
#	watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java
#	watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java
#	watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java
#	watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java
liujiankang 7 vuotta sitten
vanhempi
commit
06f5f41beb
26 muutettua tiedostoa jossa 889 lisäystä ja 58 poistoa
  1. 20 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/ProductColor.java
  2. 9 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java
  3. 39 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java
  4. 18 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/StoreInfoService.java
  5. 27 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/order/EfastOrderService.java
  6. 8 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java
  7. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintQuestionInfoServiceImpl.java
  8. 39 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  9. 24 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/StoreInfoServiceImpl.java
  10. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ComplaintQuestionInfoMapper.java
  11. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java
  12. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/StoreInfoMapper.java
  13. 19 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintQuestionInfoMapper.xml
  14. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintSmallClassInfoMapper.xml
  15. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/complaintTypeInfoMapper.xml
  16. 38 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  17. 16 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/storeInfoMapper.xml
  18. 74 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/EfastOrderServiceImpl.java
  19. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java
  20. 8 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java
  21. 34 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/productMapper.xml
  22. 13 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  23. 33 17
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java
  24. 147 20
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java
  25. 129 20
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  26. 140 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl

+ 20 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/ProductColor.java

@@ -35,6 +35,26 @@ public class ProductColor implements Serializable {
 
     private Date colorUpdateTime;   //修改时间
 
+    private String productName;     //产品名称
+
+    private Integer productType;    //产品类型
+
+    public String getProductName() {
+        return productName;
+    }
+
+    public void setProductName(String productName) {
+        this.productName = productName;
+    }
+
+    public Integer getProductType() {
+        return productType;
+    }
+
+    public void setProductType(Integer productType) {
+        this.productType = productType;
+    }
+
     public Integer getColorId() {
         return colorId;
     }

+ 9 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/ComplaintQuestionInfoService.java

@@ -1,6 +1,9 @@
 package com.iamberry.rst.faces.cm;
 
 import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
+import com.iamberry.rst.core.cm.ComplaintSmallClassInfo;
+
+import java.util.List;
 
 /**
  * 客诉-客诉问题Service
@@ -21,4 +24,10 @@ public interface ComplaintQuestionInfoService {
      * @return
      */
     int updateQuestionById(ComplaintQuestionInfo record);
+
+    /**
+     * 查询所有客诉类型
+     * @return
+     */
+    List<ComplaintQuestionInfo> listComplaintQuestionInfo(ComplaintQuestionInfo complaintQuestionInfo);
 }

+ 39 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -0,0 +1,39 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.SalesOrder;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/10/31.
+ */
+public interface SalesOrderService {
+
+    /**
+     * 添加订单信息
+     * @param salesOrder
+     * @return
+     */
+    Integer addSalesOrder(SalesOrder salesOrder);
+
+    /**
+     * 根据id查询订单信息
+     * @param salesId
+     * @return
+     */
+    SalesOrder getSalesOrderById(Integer salesId);
+
+    /**
+     * 修改订单信息
+     * @param salesOrder
+     * @return
+     */
+    Integer updateSalesOrder(SalesOrder salesOrder);
+
+    /**
+     * 批量添加订单信息
+     * @param list
+     * @return
+     */
+    Integer addSalesOrderList(List<SalesOrder> list);
+}

+ 18 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/StoreInfoService.java

@@ -0,0 +1,18 @@
+package com.iamberry.rst.faces.cm;
+
+import com.iamberry.rst.core.cm.StoreInfo;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/11/1.
+ */
+public interface StoreInfoService {
+
+    /**
+     * 根据条件查询店铺信息
+     * @param storeInfo
+     * @return
+     */
+    List<StoreInfo> listStore(StoreInfo storeInfo);
+}

+ 27 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/order/EfastOrderService.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.faces.order;
 
 import com.iamberry.rst.core.order.EfastOrder;
 import com.iamberry.rst.core.order.OrderItem;
+import net.sf.json.JSONObject;
 
 import java.util.List;
 
@@ -41,4 +42,30 @@ public interface EfastOrderService {
      * @return
      */
     boolean invalidOrderFromEfast(String orderId) throws Exception;
+
+    /**
+     * 批量查询百胜订单数据
+     * @param pageNo
+     * @param pageSize
+     * @param date
+     * @return
+     * @throws Exception
+     */
+    JSONObject listOrderInfoFormEfast(int pageNo,int pageSize, String date) throws Exception;
+
+    /**
+     * 获取百胜订单信息
+     * @param orderid
+     * @return
+     * @throws Exception
+     */
+    JSONObject getOrderFormEfast(String orderid) throws Exception;
+
+    /**
+     * 根据百胜支付类型获取系统对应支付类型
+     * @param payName
+     * @return
+     * @throws Exception
+     */
+    int getPayType(String payName) throws Exception;
 }

+ 8 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/product/ProductService.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.faces.product;
 
 import com.iamberry.rst.core.order.Product;
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.product.Gift;
 import com.iamberry.rst.core.product.OrderGift;
 
@@ -46,6 +47,13 @@ public interface ProductService {
     List<Product> listProduce();
 
     /**
+     * 查询产品和产品颜色集合
+     * @param productColor
+     * @return
+     */
+    List<ProductColor> listproductAndColor(ProductColor productColor);
+
+    /**
      * 获取单个水机  奶机
      * @return
      */

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/ComplaintQuestionInfoServiceImpl.java

@@ -10,6 +10,8 @@ import com.iamberry.rst.service.cm.mapper.ComplaintQuestionInfoMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class ComplaintQuestionInfoServiceImpl implements ComplaintQuestionInfoService {
     @Autowired
@@ -29,4 +31,11 @@ public class ComplaintQuestionInfoServiceImpl implements ComplaintQuestionInfoSe
     public int updateQuestionById(ComplaintQuestionInfo record) {
         return complaintDetectInfoMapper.updateQuestionById(record);
     }
+
+    @Override
+    public List<ComplaintQuestionInfo> listComplaintQuestionInfo(ComplaintQuestionInfo complaintQuestionInfo) {
+        return complaintDetectInfoMapper.listComplaintQuestionInfo(complaintQuestionInfo);
+    }
+
+
 }

+ 39 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -0,0 +1,39 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.faces.cm.SalesOrderService;
+import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/10/31.
+ */
+@Service
+public class SalesOrderServiceImpl implements SalesOrderService {
+
+    @Autowired
+    private SalesOrderMapper salesOrderMapper;
+
+    @Override
+    public Integer addSalesOrder(SalesOrder salesOrder) {
+        return salesOrderMapper.addSalesOrder(salesOrder);
+    }
+
+    @Override
+    public SalesOrder getSalesOrderById(Integer salesId) {
+        return salesOrderMapper.getSalesOrderById(salesId);
+    }
+
+    @Override
+    public Integer updateSalesOrder(SalesOrder salesOrder) {
+        return salesOrderMapper.updateSalesOrder(salesOrder);
+    }
+
+    @Override
+    public Integer addSalesOrderList(List<SalesOrder> list) {
+        return salesOrderMapper.addSalesOrderList(list);
+    }
+}

+ 24 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/StoreInfoServiceImpl.java

@@ -0,0 +1,24 @@
+package com.iamberry.rst.service.cm;
+
+import com.iamberry.rst.core.cm.StoreInfo;
+import com.iamberry.rst.faces.cm.StoreInfoService;
+import com.iamberry.rst.service.cm.mapper.StoreInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * Created by liuzhiwei on 2017/11/1.
+ */
+@Service
+public class StoreInfoServiceImpl implements StoreInfoService {
+
+    @Autowired
+    private StoreInfoMapper storeInfoMapper;
+
+    @Override
+    public List<StoreInfo> listStore(StoreInfo storeInfo) {
+        return storeInfoMapper.listStore(storeInfo);
+    }
+}

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/ComplaintQuestionInfoMapper.java

@@ -1,6 +1,9 @@
 package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
+
+import java.util.List;
+
 /**
  * 客诉-客诉问题mapper
  */
@@ -20,4 +23,10 @@ public interface ComplaintQuestionInfoMapper {
      * @return
      */
     int updateQuestionById(ComplaintQuestionInfo record);
+
+    /**
+     * 查询所有客诉类型
+     * @return
+     */
+    List<ComplaintQuestionInfo> listComplaintQuestionInfo(ComplaintQuestionInfo complaintQuestionInfo);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.SalesOrder;
 
+import java.util.List;
+
 public interface SalesOrderMapper {
 
     /**
@@ -24,4 +26,11 @@ public interface SalesOrderMapper {
      * @return
      */
     Integer updateSalesOrder(SalesOrder salesOrder);
+
+    /**
+     * 批量添加订单信息
+     * @param list
+     * @return
+     */
+    Integer addSalesOrderList(List<SalesOrder> list);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/StoreInfoMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.StoreInfo;
 
+import java.util.List;
+
 public interface StoreInfoMapper {
 
     /**
@@ -24,4 +26,11 @@ public interface StoreInfoMapper {
      * @return
      */
     Integer updateStoreInfo(StoreInfo storeInfo);
+
+    /**
+     * 根据条件查询店铺信息
+     * @param storeInfo
+     * @return
+     */
+    List<StoreInfo> listStore(StoreInfo storeInfo);
 }

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

@@ -28,6 +28,25 @@
     from tb_rst_complaint_question
     where question_id = #{questionId,jdbcType=INTEGER}
   </select>
+
+  <select id="listComplaintQuestionInfo" resultMap="BaseResultMap" parameterType="ComplaintQuestionInfo" >
+    select
+    question_id, small_class_id, question_name, question_state, question_is_qc_detect,question_profile,
+    question_create_time, question_update_time
+    from tb_rst_complaint_question
+    <where>
+      <if test="smallClassId !=null">
+        AND small_class_id = #{smallClassId}
+      </if>
+      <if test="questionName !=null and questionName !=''">
+        AND question_name like CONCAT('%',#{questionName},'%')
+      </if>
+      AND question_state = 1
+    </where>
+    ORDER BY question_create_time DESC
+    limit 0,3
+  </select>
+
   <insert id="insert" parameterType="ComplaintQuestionInfo" >
     insert into tb_rst_complaint_question (question_id, small_class_id, question_name, 
       question_state, question_is_qc_detect, question_create_time, 

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

@@ -26,6 +26,12 @@
     select
     <include refid="Base_Column_List" />
     from tb_rst_complaint_small_class
+    <where>
+      <if test="complaintId !=null">
+        AND complaint_id = #{complaintId}
+      </if>
+      AND small_class_state = 1
+    </where>
   </select>
 
   <insert id="insert" parameterType="ComplaintSmallClassInfo" >

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

@@ -25,6 +25,12 @@
     select
     <include refid="Base_Column_List" />
     from tb_rst_complaint_type
+    <where>
+      <if test="complaintConsultingType !=null">
+        AND complaint_consulting_type = #{complaintConsultingType}
+      </if>
+      AND complaint_class_state = 1
+    </where>
   </select>
 
 

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

@@ -68,11 +68,48 @@
       #{salesAddressInfo,jdbcType=VARCHAR}, #{salesAddressTel,jdbcType=VARCHAR}, #{salesAddressName,jdbcType=VARCHAR}, 
       #{salesAmount,jdbcType=INTEGER}, #{salesPayMoney,jdbcType=INTEGER}, #{salesPayType,jdbcType=INTEGER}, 
       #{salesWaitMoney,jdbcType=INTEGER}, #{salesLastMoney,jdbcType=INTEGER}, #{salesShippingFee,jdbcType=INTEGER}, 
-      #{salesPayTime,jdbcType=TIMESTAMP}, NOW(), #{salesAdminRemark,jdbcType=VARCHAR},
+      #{salesPayTime,jdbcType=TIMESTAMP}, #{salesCreateTime,jdbcType=TIMESTAMP}, #{salesAdminRemark,jdbcType=VARCHAR},
       #{salesUserRemark,jdbcType=VARCHAR}, #{salesPayNumber,jdbcType=VARCHAR}, #{salesStoreId,jdbcType=INTEGER}, 
       #{salesCompanyId,jdbcType=INTEGER}, #{salesType,jdbcType=INTEGER})
   </insert>
 
+  <!--<insert id="addOrderItemList" parameterType="ArrayList">
+    INSERT INTO tb_rst_sales_order_item
+      (
+
+      )
+  </insert>-->
+
+  <!-- 批量添加订单信息 -->
+  <insert id="addSalesOrderList" parameterType="ArrayList" >
+    insert into tb_rst_sales_order_info (
+      sales_id, sales_orderId, sales_openId,
+      sales_discount_money, sales_pledge_money, sales_remain_deposit,
+      sales_status, sales_send_type, sales_send_time,
+      sales_sales_time, sales_post_num, sales_post_firm,
+      sales_address_info, sales_address_tel, sales_address_name,
+      sales_amount, sales_pay_money, sales_pay_type,
+      sales_wait_money, sales_last_money, sales_shipping_fee,
+      sales_pay_time, sales_create_time, sales_admin_remark,
+      sales_user_remark, sales_pay_number, sales_store_id,
+      sales_company_id, sales_type)
+    values
+    <foreach collection="list" item="item" separator=",">
+    (
+      #{item.salesId}, #{item.salesOrderid}, #{item.salesOpenid},
+      #{item.salesDiscountMoney}, #{item.salesPledgeMoney}, #{item.salesRemainDeposit},
+      #{item.salesStatus}, #{item.salesSendType}, #{item.salesSendTime},
+      #{item.salesSalesTime}, #{item.salesPostNum}, #{item.salesPostFirm},
+      #{item.salesAddressInfo}, #{item.salesAddressTel}, #{item.salesAddressName},
+      #{item.salesAmount}, #{item.salesPayMoney}, #{item.salesPayType},
+      #{item.salesWaitMoney}, #{item.salesLastMoney}, #{item.salesShippingFee},
+      #{item.salesPayTime}, #{item.salesCreateTime}, #{item.salesAdminRemark},
+      #{item.salesUserRemark}, #{item.salesPayNumber}, #{item.salesStoreId},
+      #{item.salesCompanyId}, #{item.salesType}
+    )
+    </foreach>
+  </insert>
+
   <!-- 修改订单信息 -->
   <update id="updateSalesOrder" parameterType="SalesOrder" >
     update tb_rst_sales_order_info

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

@@ -22,6 +22,22 @@
     where store_id = #{storeId,jdbcType=INTEGER}
   </select>
 
+  <!-- 根据条件查询店铺信息 -->
+  <select id="listStore" parameterType="StoreInfo" resultType="StoreInfo">
+    select
+      *
+    from
+      tb_rst_store_info
+    <where>
+      <if test="storeEfast != null">
+        store_efast = #{storeEfast}
+      </if>
+      <if test="storeStatus != null">
+        and storeStatus = #{storeStatus}
+      </if>
+    </where>
+  </select>
+
   <!-- 添加店铺信息 -->
   <insert id="addStoreInfo" parameterType="StoreInfo" >
     insert into tb_rst_store_info (store_id, company_id, store_efast, 

+ 74 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/order/EfastOrderServiceImpl.java

@@ -39,6 +39,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
     private static final String EFAST_ORDER_ADD = "efast.trade.new.add";
     private static final String EFAST_ORDER_SELECT = "efast.trade.detail.get";
     private static final String EFAST_ORDER_INVALID = "efast.trade.invalid";
+    private static final String EFAST_ORDER_SELECT_LIST = "efast.trade.list.get";
     private static final String COMPANY_TEL = "075523605578";
     private static Logger logger = LoggerFactory.getLogger(EfastOrderServiceImpl.class);
     private static final String[] PAY_TYPE = {"","weixinpay","cash","","bank","alipay"};
@@ -319,6 +320,38 @@ public class EfastOrderServiceImpl implements EfastOrderService {
     }
 
     @Override
+    public JSONObject getOrderFormEfast(String orderid) throws Exception {
+        if(StringUtils.isEmpty(orderid)) return null;
+
+        Map<String, String> requestData = getRequestData(EFAST_ORDER_SELECT);
+        requestData.put("oid", orderid);
+        requestData.put("feilds","order_status,shipping_status");   //1.order_status 订单状态:0(未确认)1(确认)2(挂起)3(作废)     2.shipping_status发货状态: 0(未发货)1(已发货,即已扫描出库)3(备货中)
+
+        try {
+            String result = HttpClient431Util.doGet(requestData, EFAST_BASE_URL);
+            result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
+            Matcher m = p.matcher(result);
+            if (m.find()) {
+                result = m.replaceAll("");
+            }
+            logger.info("rst-推送百胜订单号-->>" + orderid + ",百胜返回信息-->" + result);
+            // parse JSON String to Object
+            JSONObject jsonObject = JSONObject.fromObject(result);
+            JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+            if (respData != null) {
+                return respData;
+            } else {
+                logger.error("rst-获取百胜出错,订单号-->>" + orderid + ",百胜返回信息-->" + result);
+                throw new Exception(respData.getString("msg"));
+            }
+        } catch (Exception e) {
+            logger.error("rst-获取百胜出错,订单号-->>" + orderid + ",catch");
+            throw e;
+        }
+    }
+
+    @Override
     public boolean invalidOrderFromEfast(String orderId) throws Exception {
         if(StringUtils.isEmpty(orderId)) {
             logger.error("rst-作废百胜订单出错,传入参数订单号为空-->>");
@@ -349,4 +382,45 @@ public class EfastOrderServiceImpl implements EfastOrderService {
             throw e;
         }
     }
+
+    @Override
+    public JSONObject listOrderInfoFormEfast(int pageNo,int pageSize, String date) throws Exception {
+        java.text.SimpleDateFormat sim = new java.text.SimpleDateFormat("yyyy-MM-dd");
+        // 组装数据
+        Map<String, String> requestData = new HashMap<String, String>();
+        requestData.put("app_nick", NameUtils.getConfig("app_nick"));
+        requestData.put("app_key", NameUtils.getConfig("app_key"));
+        requestData.put("app_secret", NameUtils.getConfig("app_secret"));
+        requestData.put("timestamp",DateTimeUtil.format(new Date(),"yyyyMMddHHmmss"));
+        requestData.put("app_act", EFAST_ORDER_SELECT_LIST);
+        requestData.put("start_time", date);
+        requestData.put("page_no", String.valueOf(pageNo));
+        requestData.put("page_size", String.valueOf(pageSize));
+        try {
+            String resultJson = HttpClient431Util.doPost(requestData, NameUtils.getConfig("efast_base_url"));
+            resultJson = StringEscapeUtils.unescapeJava(resultJson); // unicode
+            logger.info("get-百胜订单列表,百胜返回信息:" + resultJson);
+            JSONObject jsonObject = JSONObject.fromObject(resultJson);
+
+            // default HTTP SUCCESS
+            JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+            // 发货状态 : shipping_status
+            logger.info("get-百胜订单列表,百胜返回信息:" + resultJson);
+            return respData;
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            logger.info("get-百胜订单列表,百胜返回信息,发生错误:" + e.getMessage());
+            return null;
+        }
+    }
+
+    @Override
+    public int getPayType(String payName) throws Exception {
+        int payType = 0;
+        switch (payName) {
+            case "weixinpay":payType = 1;break;
+            default:payType = 1;break;
+        }
+        return payType;
+    }
 }

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/product/ProductServiceImpl.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.service.product;
 
 import com.iamberry.rst.core.order.Product;
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.product.Gift;
 import com.iamberry.rst.core.product.OrderGift;
 import com.iamberry.rst.faces.product.ProductService;
@@ -102,6 +103,11 @@ public class ProductServiceImpl implements ProductService {
     }
 
     @Override
+    public List<ProductColor> listproductAndColor(ProductColor productColor) {
+        return productMapper.listproductAndColor(productColor);
+    }
+
+    @Override
     public Product getProduce(String productId) {
         return productMapper.getProduce(productId);
     }

+ 8 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/ProductMapper.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.service.product.mapper;
 
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.product.OrderGift;
 
@@ -26,6 +27,13 @@ public interface ProductMapper {
      * @return
      */
     List<Product> listProduce();
+
+    /**
+     * 查询产品和产品颜色集合
+     * @param productColor
+     * @return
+     */
+    List<ProductColor> listproductAndColor(ProductColor productColor);
     /**
      * 获取单个水机  奶机
      * @return

+ 34 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/product/mapper/productMapper.xml

@@ -18,6 +18,40 @@
         </if>
     </select>
 
+    <!--根据产品颜色查询产品信息 -->
+    <select id="listproductAndColor" parameterType="ProductColor" resultType="ProductColor">
+        select
+            c.color_id colorId,
+            c.color_product_id colorProductId,
+            c.color_name colorName,
+            c.color_discount colorDiscount,
+            c.color_price colorPrice,
+            c.color_bar colorBar,
+            c.color_picture colorPicture,
+            c.color_status colorStatus,
+            c.color_cretae_time colorCretaeTime,
+            c.color_update_time colorUpdateTime,
+            p.product_name productName,
+            p.Product_type productType
+        from
+          tb_rst_product_color c
+        LEFT JOIN tb_rst_product_info p ON c.color_product_id = p.product_id
+        <where>
+            <if test="colorId != null">
+                color_id = #{colorId}
+            </if>
+            <if test="colorProductId != null">
+                and color_product_id = #{colorProductId}
+            </if>
+            <if test="colorBar != null">
+                and color_bar = #{colorBar}
+            </if>
+            <if test="colorStatus != null">
+                and color_status = #{colorStatus}
+            </if>
+        </where>
+    </select>
+
     <select id="listProduce"  resultType="product">
         select * from tb_rst_product_info where product_type = 1
     </select>

+ 13 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -60,6 +60,19 @@ public class AdminCustomerController {
         return mv;
     }
 
+    /**
+     * 客诉搜索订单列表
+     *
+     * @return
+     */
+    @RequiresPermissions("customer:add:customer")
+    @RequestMapping(value = "/select_order")
+    public ModelAndView selectOrder(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("cm/customer/order_list");
+
+
+        return mv;
+    }
 
 
 

+ 33 - 17
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/ComplaintQuestionInfoController.java

@@ -1,7 +1,9 @@
 package com.iamberry.rst.controllers.cm;
 
+import com.iamberry.rst.core.cm.ComplaintQuestionInfo;
 import com.iamberry.rst.core.cm.ComplaintSmallClassInfo;
 import com.iamberry.rst.core.cm.ComplaintTypeInfo;
+import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService;
 import com.iamberry.rst.faces.cm.ComplaintSmallClassInfoService;
 import com.iamberry.rst.faces.cm.ComplaintTypeInfoService;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -24,27 +26,37 @@ public class ComplaintQuestionInfoController {
     @Autowired
     private ComplaintTypeInfoService complaintTypeInfoService;
 
-//    @Autowired
-//    private ComplaintSmallClassInfoService complaintSmallClassInfoService;
-
     @Autowired
     private ComplaintSmallClassInfoService complaintSmallClassInfoService;
 
+    @Autowired
+    private ComplaintQuestionInfoService complaintQuestionInfoService;
+
     /**
      * 查询所有问题类型
      *
      * @return
      */
     @ResponseBody
-    @RequestMapping(value = "/list_complaintTypeInfo")
+    @RequestMapping(value = "/list_complaintType")
     public ResponseJson listComplaintTypeInfo(HttpServletRequest request) {
+        ComplaintTypeInfo complaintTypeInfo = new ComplaintTypeInfo();
+        String complaintConsultingTypeOther =  request.getParameter("complaintConsultingType");
 
-        List<ComplaintTypeInfo> complaintTypeInfoList = complaintTypeInfoService.listComplaintTypeInfo(new ComplaintTypeInfo());
+        //咨询类型
+        if (complaintConsultingTypeOther != null && !"".equals(complaintConsultingTypeOther)) {
+            Integer complaintConsultingType = Integer.valueOf(complaintConsultingTypeOther);
+            complaintTypeInfo.setComplaintConsultingType(complaintConsultingType);
+        }
+
+        List<ComplaintTypeInfo> complaintTypeInfoList = complaintTypeInfoService.listComplaintTypeInfo(complaintTypeInfo);
 
         if (complaintTypeInfoList == null || complaintTypeInfoList.size() < 1) {
-            return new ResponseJson(500, "添加失败", 500);
+            return new ResponseJson(500, "查询失败", 500);
         } else {
-            return new ResponseJson(200, "添加成功", 200);
+            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            rj.addResponseKeyValue("complaintTypeInfoList", complaintTypeInfoList);
+            return rj;
         }
     }
 
@@ -54,13 +66,15 @@ public class ComplaintQuestionInfoController {
      * @return
      */
     @ResponseBody
-    @RequestMapping(value = "/list_complaintSmallClassInfo")
+    @RequestMapping(value = "/list_complaintSmallClass")
     public ResponseJson listComplaintSmallClassInfo(HttpServletRequest request,ComplaintSmallClassInfo complaintSmallClassInfo) {
         List<ComplaintSmallClassInfo> complaintSmallClassInfoList = complaintSmallClassInfoService.listComplaintSmallClassInfo(complaintSmallClassInfo);
         if (complaintSmallClassInfoList == null || complaintSmallClassInfoList.size() < 1) {
-            return new ResponseJson(500, "添加失败", 500);
+            return new ResponseJson(500, "查询失败", 500);
         } else {
-            return new ResponseJson(200, "添加成功", 200);
+            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            rj.addResponseKeyValue("complaintSmallClassInfoList", complaintSmallClassInfoList);
+            return rj;
         }
     }
 
@@ -71,16 +85,18 @@ public class ComplaintQuestionInfoController {
      */
     @ResponseBody
     @RequestMapping(value = "/list_complaintQuestion")
-    public ResponseJson listComplaintQuestion(HttpServletRequest request,ComplaintTypeInfo complaintTypeInfo) {
-
-        List<ComplaintTypeInfo> complaintTypeInfoList = complaintTypeInfoService.listComplaintTypeInfo(complaintTypeInfo);
-
-        if (complaintTypeInfoList == null || complaintTypeInfoList.size() < 1) {
-            return new ResponseJson(500, "添加失败", 500);
+    public ResponseJson listComplaintQuestion(HttpServletRequest request,ComplaintQuestionInfo complaintQuestionInfo) {
+        List<ComplaintQuestionInfo> complaintQuestionInfoList = complaintQuestionInfoService.listComplaintQuestionInfo(complaintQuestionInfo);
+        if (complaintQuestionInfoList == null || complaintQuestionInfoList.size() < 1) {
+            return new ResponseJson(500, "查询失败", 500);
         } else {
-            return new ResponseJson(200, "添加成功", 200);
+            ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+            rj.addResponseKeyValue("complaintQuestionInfoList", complaintQuestionInfoList);
+            return rj;
         }
     }
 
 
+
+
 }

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

@@ -1,12 +1,22 @@
 package com.iamberry.rst.controllers.mq;
 
 import com.iamberry.rst.controllers.sys.SysController;
+import com.iamberry.rst.core.cm.SalesOrder;
+import com.iamberry.rst.core.cm.SalesOrderItem;
+import com.iamberry.rst.core.cm.StoreInfo;
+import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.sms.OrderMessage;
 import com.iamberry.rst.core.sms.SmsMessage;
+import com.iamberry.rst.faces.cm.StoreInfoService;
+import com.iamberry.rst.faces.order.EfastOrderService;
+import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.MessageService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.service.sms.mapper.MessageMapper;
 import com.iamberry.wechat.tools.ResponseJson;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.InitializingBean;
@@ -15,6 +25,9 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -30,6 +43,15 @@ public class MQTask implements InitializingBean {
 	private MessageService messageService;
 	@Autowired
 	private SmsService smsService;
+	@Autowired
+	private EfastOrderService efastOrderService;
+	@Autowired
+	private ProductService productService;
+	@Autowired
+	private StoreInfoService storeInfoService;
+
+	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
 	public void afterPropertiesSet() throws Exception {
 	}
 
@@ -61,30 +83,135 @@ public class MQTask implements InitializingBean {
 	}
 
 	/**
-	 * 实时监测 换货、维修、补发时efast订单是否发货
+	 * 批量同步百胜订单信息
+	 * @throws Exception
 	 */
-	public void monitoringEfast(){
-		logger.info("------------执行efast监测 start-----------");
+	//@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
+	@Scheduled(cron = "*/10 * * * * ?")
+	public void syncEfastOrderList() throws Exception {
+		int pageNo = 1;
+		int pageSize = 20;
+		boolean flag = false;	//控制是否还需要获取百胜订单信息
+		String date = "2016-04-01";
+		do {
+			//批量获取百胜订单信息
+			JSONObject obj = efastOrderService.listOrderInfoFormEfast(pageNo, pageSize,date);
+			System.out.println("obj="+obj);
+			if (obj == null) {
+				return;
+			}
+			int pageSize1 = obj.getInt("page_size");	//百胜返回数据条目数
+			if (pageSize <= pageSize1) {
+				flag = true;
+				pageNo++;
+			} else {
+				flag = false;
+			}
+			this.addSalesOrderList(obj);
+		} while (flag);	//百胜返回条目数如果等于设置的分页条目数,则继续查询下一页
+	}
 
-		List<SmsMessage> smsMessageList = messageService.listOrderMessages();
-		if(smsMessageList != null && smsMessageList.size() > 0){
-			//循环推送短信
-			for(SmsMessage smsMessage : smsMessageList){
-				ResponseJson json = smsService.sms(smsMessage.getTel(),smsMessage.getTypes(),smsMessage.getCounts());
-				if(json.getReturnCode() == 200){
-					logger.info("------------推送到+"+smsMessage.getTel()+"一条"+(smsMessage.getTypes() == 1?"待处理":"驳回")+"短信成功");
-					//设置审核通过记录为无效
-					if(smsMessage.getTypes() == 3){
-						OrderMessage orderMessage = new OrderMessage();
-						orderMessage.setMessageStatus(2);
-						orderMessage.setMessageType(3);
-						messageService.updateOrderMessageStatus(orderMessage);
-					}
-				}else{
-					logger.info("------------推送到+"+smsMessage.getTel()+"一条"+(smsMessage.getTypes() == 1?"待处理":"驳回")+"短信失败"+json.getReturnMsg());
+	/**
+	 * 添加订单信息
+	 * @param obj
+	 * @throws Exception
+	 */
+	public void addSalesOrderList(JSONObject obj) throws Exception {
+		if (obj == null) {
+			return;
+		}
+		JSONArray orderList = obj.getJSONArray("list");
+		if (orderList == null || orderList.size() == 0) {
+			return;
+		}
+		for (int i = 0;i < orderList.size();i++) {
+			JSONObject order = orderList.getJSONObject(i);
+			//获取订单详情
+			JSONObject orderInfo = efastOrderService.getOrderFormEfast(order.getString("order_sn"));
+			if (orderInfo == null) {
+				return;
+			}
+			//获取订单项集合
+			JSONArray itemArray = orderInfo.getJSONArray("orders");
+			if (itemArray == null || itemArray.size() == 0) {
+				return;
+			}
+
+			SalesOrder salesOrder = new SalesOrder();
+			salesOrder.setSalesOrderId(order.getString("order_sn"));//订单编号
+			int payStatus = order.getInt("pay_status");				//是否付款 0:未付款,2:已付款
+			int orderStatus = order.getInt("order_status");			//订单状态 0:未确认,1:已确认,2:挂起,3:作废
+			int shippingStatus = order.getInt("shipping_status");	//发货状态 0:未发货,1:已发货,3:备货中
+			if (payStatus == 2 && (orderStatus == 0 || orderStatus == 1)) {
+				if (shippingStatus == 0) {
+					salesOrder.setSalesStatus(2);
+				} else if (shippingStatus == 1) {
+					salesOrder.setSalesStatus(5);
 				}
 			}
+			salesOrder.setSalesPostFirm(order.getString("shipping_name"));//快递方式代码
+			salesOrder.setSalesPostNum(order.getString("invoice_no"));//快递单号
+			salesOrder.setSalesPayType(efastOrderService.getPayType(order.getString("pay_name")));//支付方式
+			salesOrder.setSalesPayTime(format.parse(order.getString("pay_time")));//支付时间
+			salesOrder.setSalesUserRemark(order.getString("postscript"));//买家留言
+			salesOrder.setSalesAdminRemark(order.getString("to_buyer"));//商家留言
+			salesOrder.setSalesAmount(order.getInt("order_amount")*100);//应付款
+			salesOrder.setSalesPayMoney(order.getInt("money_paid")*100);//已付款
+			salesOrder.setSalesAddressName(order.getString("consignee"));//收货人
+			salesOrder.setSalesAddressTel(order.getString("mobile"));//收货人电话
+			salesOrder.setSalesAddressInfo(order.getString("address").replaceAll(" ","-"));//收货地址
+			salesOrder.setSalesShippingFee(order.getInt("shipping_fee")*100);//邮费
+			salesOrder.setSalesCreateTime(format.parse(order.getString("create_time")));//创建时间
+			if (StringUtils.isNotEmpty(order.getString("delivery_time"))) {
+				salesOrder.setSalesSendTime(format.parse(order.getString("delivery_time")));//发货时间
+			}
+			salesOrder.setSalesDiscountMoney(salesOrder.getSalesAmount() - salesOrder.getSalesPayMoney());//优惠金额
+			salesOrder.setSalesPledgeMoney(0);//押金金额
+			salesOrder.setSalesRemainDeposit(0);//待提取金额
+			salesOrder.setSalesSendType(2);//发货方式,默认为物流发货
+			salesOrder.setSalesSalesTime(salesOrder.getSalesCreateTime());//订购时间
+			salesOrder.setSalesWaitMoney(0);//待付金额
+			salesOrder.setSalesLastMoney(salesOrder.getSalesPayMoney());//本次支付金额
+			salesOrder.setSalesPayNumber("0000");//支付尾号
+			salesOrder.setSalesType(1);//订单类型
+			//查询店铺信息
+			StoreInfo storeInfo = new StoreInfo();
+			storeInfo.setStoreEfast(order.getString("sd_id"));
+			List<StoreInfo> storeList = storeInfoService.listStore(storeInfo);
+			int storeId = 0;
+			int companyId = 0;
+			if (storeList == null || storeList.size() == 0) {
+				storeInfo = storeList.get(0);
+				storeId = storeInfo.getStoreId();
+				companyId = storeInfo.getCompanyId();
+			}
+			salesOrder.setSalesStoreId(storeId);//店铺id
+			salesOrder.setSalesCompanyId(companyId);//销售公司id
+			List<SalesOrderItem> itemList = new ArrayList<SalesOrderItem>();
+			for (int j = 0;j < itemArray.size();j++) {
+				ProductColor color = new ProductColor();
+				JSONObject itemJson = itemArray.getJSONObject(j);
+				SalesOrderItem item = new SalesOrderItem();
+				color.setColorBar(itemJson.getString("goods_sn"));
+				List<ProductColor> colorList = productService.listproductAndColor(color);
+				if (colorList == null || colorList.size() == 0) {
+					return;
+				}
+				color = colorList.get(0);
+				item.setItemColorBar(itemJson.getString("goods_sn"));//商品69码
+				item.setItemNum(itemJson.getInt("sn"));//商品数量
+				item.setItemCreateTime(salesOrder.getSalesCreateTime());
+				item.setItemColorId(color.getColorId());
+				item.setItemProductColor(color.getColorName());
+				item.setItemProductDiscount(color.getColorDiscount());
+				item.setItemProductId(color.getColorProductId());
+				item.setItemProductName(color.getProductName());
+				item.setItemProductPic(color.getColorPicture());
+				item.setItemProductType(color.getProductType());
+				item.setItemProductPrice(color.getColorPrice());
+				itemList.add(item);
+			}
+
 		}
-		logger.info("------------执行efast监测 end-----------");
 	}
 }

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

@@ -102,7 +102,7 @@
                 <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="tel-3" name="tel" datatype="*" nullmsg="请选择来源入口!">
+                        <input type="radio" id="tel-3" name="customerCounselType" datatype="*" nullmsg="请选择咨询类型!">
                         <label for="tel-3">售前咨询</label>
                     </div>
                     <div class="radio-box">
@@ -114,22 +114,22 @@
             <div class="row cl" style="position: relative;">
                 <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>客诉问题:</label>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">使用操作</option>
-					<option value="1">使用操作</option>
+				<select name="complaintId" class="select">
+					<#--<option value="0">使用操作</option>-->
+					<#--<option value="1">使用操作</option>-->
 				</select>
 				</span>
                 </div>
                 <div class="formControls col-2 col-sm-2"> <span class="select-box">
-				<select name="" class="select">
-					<option value="0">使用操作制水出水</option>
-					<option value="1">使用操作制水出水</option>
+				<select name="smallClassId" class="select">
+					<#--<option value="0">使用操作制水出水</option>
+					<option value="1">使用操作制水出水</option>-->
 				</select>
 				</span>
                 </div>
                 <div class="formControls col-2 col-sm-2">
                     <div class="clearfix">
-                        <input type="text" placeholder="搜索关键词" class="input-text  ac_input" name="search_text" value="" id="search_text" autocomplete="off" style="width:60%"><button type="button" class="btn btn-primary" id="search_button">搜索</button>
+                        <input type="text" placeholder="搜索关键词" class="input-text  ac_input" name="questionId" value="" id="search_text" autocomplete="off" style="width:60%"><button type="button" class="btn btn-primary" id="search_button">搜索</button>
                     </div>
                 </div>
 
@@ -137,8 +137,8 @@
                     <div class="tag">
                         <em></em>
                         <strong>相关QA</strong>
-                        <ul>
-                            <li class="ask">1、净水机面板操作不灵敏,是怎么回事?</li>
+                        <ul id="question">
+                            <#--<li class="ask">1、净水机面板操作不灵敏,是怎么回事?</li>
                             <li class="answer">答:<span>1净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
                             <li class="ask">2、净水机面板操作不灵敏,是怎么回事?</li>
                             <li class="answer">答:<span>2净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
@@ -146,7 +146,7 @@
                             <li class="answer">答:<span>3净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
                             <li class="ask">4、净水机面板操作不灵敏,是怎么回事?</li>
                             <li class="answer">答:<span>4净水机面板操作不灵敏,是怎么回事。1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?1、净水机面板操作不灵敏,是怎么回事?</span></li>
-                        </ul>
+-->                        </ul>
                     </div>
                 </div>
 
@@ -224,7 +224,7 @@
             <div class="row cl">
                 <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">搜索订单</button>
+                    <button type="button" class="btn btn-primary" id="selectOrder">搜索订单</button>
                 </div>
             </div>
             <div class="row cl">
@@ -437,13 +437,11 @@
 
 <script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
 <script type="text/javascript" src="${path}/common/lib/webuploader/0.1.5/webuploader.min.js"></script>
-
 <script type="text/javascript" src="${path}/common/lib/icheck/jquery.icheck.min.js"></script>
-
 <script type="text/javascript" src="${path}/common/lib/cm.lib/jquery.provincesCity.js"></script>
 <script type="text/javascript" src="${path}/common/lib/cm.lib/provincesData.js"></script>
 <script type="text/javascript" src="${path}/common/lib/cm.lib/airCity.js"></script>
-<script type="text/javascript" src="${path}/common/lib/cm.lib/dimensions.js"></script>
+<#--<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">
     $(function(){
@@ -466,9 +464,7 @@
         });
 //$("#city2").suggest(citys,{hot_list:commoncitys,attachObject:"#suggest2"})
     });
-    $(document).on('click', '#search_button', function() {
-        $(".dalog-ask").show();
-    });
+
     $(document).on('click', '.dalog-ask .answer', function() {
         $("#answer-textarea").text($(this).find("span").text());
     });
@@ -476,29 +472,142 @@
 </script>
 <script type="text/javascript">
 
+
+
     /*初始化页面参数*/
     $(function () {
+
         /*初始化问题分类*/
         initComplaintTypeInfo();
+
+        /*监听问题类型 选择事件*/
+        $("[name='complaintId']").change(function(){
+            initComplaintSmallClassInfo($(this).val());
+        })
+
+        /*监听问题关键字搜索*/
+        $(document).on('click', '#search_button', function() {
+            initComplaintQuestionInfo();
+        });
+
+        /*搜索订单事件*/
+        $(document).on('click', '#selectOrder', function() {
+            selectOrder();
+        });
     })
 
     /*初始化问题大类*/
     function initComplaintTypeInfo() {
+        //默认为售前咨询
+        var customerCounselTypeOverall = 1;
+        var html = "";
+        $.ajax({
+            type: "POST",
+            data: {
+                complaintConsultingType : customerCounselTypeOverall
+            },
+            url: "${path}/admin/complaintQuestion/list_complaintType",
+            async: false,
+            success: function(data){
+                var id;
+                if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.complaintTypeInfoList.length;i++){
+                        var complaintTypeInfo = data.returnMsg.complaintTypeInfoList[i];
+                        if(i == 0 ){
+                            id = complaintTypeInfo.complaintId;
+                        }
+                        html += '<option value="'+ complaintTypeInfo.complaintId +'">'+ complaintTypeInfo.complaintClassName +'</option>';
+                    }
+                }else{
+                    html = '';
+                }
+                $("[name='complaintId']").html(html);
+                initComplaintSmallClassInfo(id)
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
+
+    /*显示小类*/
+    function initComplaintSmallClassInfo(complaintId){
+        var html = "";
         $.ajax({
             type: "POST",
-            data: {},
-            url: "${path}/admin/customer/select_complaintQuestion",
+            data: {
+                complaintId : complaintId
+            },
+            url: "${path}/admin/complaintQuestion/list_complaintSmallClass",
             async: false,
             success: function(data){
                 if (data.returnCode == 200) {
+                    for(var i=0;i<data.returnMsg.complaintSmallClassInfoList.length;i++){
+                        var ComplaintSmallClassInfo = data.returnMsg.complaintSmallClassInfoList[i];
+                        html += '<option value="'+ ComplaintSmallClassInfo.smallClassId +'">'+ ComplaintSmallClassInfo.smallClassName +'</option>';
+                    }
+                }else{
+                    html = '';
+                }
+                $("[name='smallClassId']").html(html);
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+
 
+    /**
+     * 搜索QA 显示
+     */
+    function initComplaintQuestionInfo(){
+        var complaintId = $("[name='complaintId']").val();
+        var smallClassId = $("[name='smallClassId']").val();;
+        var questionName = $("[name='questionId']").val();;;
+        var html = "";
+        $.ajax({
+            type: "POST",
+            data: {
+                complaintId : complaintId,
+                smallClassId : smallClassId,
+                questionName : questionName
+            },
+            url: "${path}/admin/complaintQuestion/list_complaintQuestion",
+            async: false,
+            success: function(data){
+                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>';
+                    }
+                }else{
+                    html = '';
                 }
+                $("#question").html(html);
             },
             error: function(XmlHttpRequest, textStatus, errorThrown){
             }
         });
+        $(".dalog-ask").show();
     }
 
+    /**
+     * 发送短信
+     * @param phone  手机号码
+     * @param desc   发送内容
+     * @param node   返回结果显示节点
+     */
+    function sendPhone(phone,desc,node){
+
+    }
+
+    /*搜索订单框*/
+    function selectOrder(){
+        layer_show("搜索订单","${path}/admin/customer/select_order","800","350");
+    }
+
+
 </script>
 <!--/请在上方写此页面业务相关的脚本-->
 </body>

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

@@ -0,0 +1,140 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+    <link rel="Bookmark" href="/favicon.ico" >
+    <link rel="Shortcut Icon" href="/favicon.ico" />
+<#include "/base/list_base.ftl">
+    <title>客诉列表</title>
+    <style>
+        *{padding: 0;margin: 0;}
+        .my-input{border: 1px solid rgba(0,0,0,.1);padding: 1px 5px;height: 32px;margin-right: 10px;}
+        /*.my-input::-webkit-input-placeholder,.my-select{color: #dcdcdc;}*/
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px;margin: 0 10px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-1.png) right center no-repeat;background-size:auto 100%;}
+        .my-btn-search{border: 1px solid #32a3d8;padding: 1px 25px;height: 32px;background-color: #32a3d8;color: #fff;}
+        .barcodeImg{margin:10px 0px}
+        .table-bg thead th{background-color: #e2f6ff;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">&gt;</span> 客诉管理
+    <span class="c-gray en">&gt;</span> 客诉列表
+    <a class="btn radius r" style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="page-container">
+    <div class="text-c">
+        <form action="${path}/admin/customer/_customer_list" method="post">
+            <div class="row cl">
+                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                    <select name="" class="select">
+                        <option value="0">薇薇</option>
+                        <option value="1">薇薇</option>
+                        <option value="11">薇薇</option>
+                        <option value="12">薇薇</option>
+                        <option value="13">薇薇</option>
+                    </select>
+                    </span>
+                </div>
+                <div class="formControls col-4 col-sm-4" style="width: 150px;"> <span class="select-box">
+                    <select name="" class="select">
+                        <option value="0">薇薇</option>
+                        <option value="1">薇薇</option>
+                        <option value="11">薇薇</option>
+                        <option value="12">薇薇</option>
+                        <option value="13">薇薇</option>
+                    </select>
+                    </span>
+                </div>
+                <div class="formControls col-2 col-sm-2">
+                    <input type="text" class="input-text" value="" placeholder="请输入手机号" id="" name="">
+                </div>
+                <button type="submit" class="btn" style="background: #32a3d8;color: #fff;-webkit-transform:translateY(-5%);" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
+            </div>
+        </form>
+    </div>
+
+    <#--<div class="mt-20">
+        <table class="table table-border table-bordered table-bg table-hover table-sort">
+        <thead>
+        <tr class="text-c">
+            &lt;#&ndash;<th width="50">Customer编号</th>&ndash;&gt;
+            <th width="60">所属产品</th>
+            <th width="100">customer名称</th>
+            <th width="80">硬件版本</th>
+            <th width="80">零件总数量</th>
+            <th width="80">零件总成本(元)</th>
+            <th width="80">零件总重(g)</th>
+            <th width="100">备注</th>
+            <th width="80">最近修改时间</th>
+            <th width="80">添加时间</th>
+            <th width="80">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+            <#if page.dataList?? &&  (page.dataList?size > 0) >
+                    <#list page.dataList as customer>
+                        <tr class="text-c">
+                            &lt;#&ndash;<td>${customer.customerId!''}</td>&ndash;&gt;
+                            <td>${customer.produceName!''}</td>
+                            <td>${customer.customerName!''}</td>
+                            <td>${customer.customerVersion!''}</td>
+                            <td>${customer.componentsQuantity!'0'}</td>
+                            <td><#if customer.allComponentsCost?? >${customer.allComponentsCost/100}</#if></td>
+                            <td><#if customer.allComponentsWeight?? >${customer.allComponentsWeight}</#if></td>
+                            <td>${customer.customerRemarks!''}</td>
+                            <td>${(customer.customerUpdateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>${(customer.customerCreateTime?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>
+                                <a style="text-decoration:none" href="javascript:void(0);" title="编辑" onclick="admin_update_customer(${customer.customerId!''})">
+                                    <i class="Hui-iconfont">&#xe6df;</i>
+                                </a>&nbsp;
+                                <a style="text-decoration:none" href="javascript:void(0);" title="查看customer单详情" onclick="admin_details_customer(${customer.customerId!''})">
+                                    <i class="Hui-iconfont">&#xe665;</i>
+                                </a>
+                            </td>
+                        </tr>
+                    </#list>
+            <#else>
+                <tr><td colspan="10" class="td-manage text-c" >暂时没有Customer,请添加!</td></tr>
+            </#if>
+        </tbody>
+    </table>
+    </div>-->
+</div>
+<tfoot>
+<#--<#include "/base/page_util.ftl">-->
+</tfoot>
+<script>
+    /**
+     * 跳转到添加customer页面
+     */
+    function toAddCustomer(){
+        window.location.href= "${path}/admin/customer/to_add_customer";
+    }
+
+    /**
+     *跳转到编辑页面
+     * @param employee
+     */
+    function admin_update_customer(customerId) {
+        window.location.href= "${path}/admin/customer/to_update_customer?customerId="+customerId;
+    }
+
+    /**
+     *跳转到详情页面
+     * @param employee
+     */
+    function admin_details_customer(customerId) {
+        window.location.href= "${path}/admin/customer/to_details_customer?customerId="+customerId;
+    }
+
+</script>
+</body>
+</html>