wangxiaoming преди 7 години
родител
ревизия
3ef7b54cfe
променени са 34 файла, в които са добавени 2872 реда и са изтрити 72 реда
  1. 45 2
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentOrder.java
  2. 11 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentTooth.java
  3. 75 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/OrderHint.java
  4. 19 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/agentInfo/AgentInfoService.java
  5. 42 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/agentInfo/AgentPurchaseOrderService.java
  6. 7 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java
  7. 16 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/agentInfo/AgentInfoServiceImpl.java
  8. 31 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/agentInfo/AgentPurchaseOrderServiceImpl.java
  9. 19 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AgentInfoMapper.java
  10. 42 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AgentPurchaseOrderMapper.java
  11. 83 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentInfoMapper.xml
  12. 180 20
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentPurchaseOrderMapper.xml
  13. 53 12
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java
  14. 396 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminAgentToothHandler.java
  15. 6 5
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java
  16. 61 1
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/agentInfo/AgentOrderHandler.java
  17. 37 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/agentInfo/AgentToothHandler.java
  18. 34 4
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  19. 9 9
      tooth-wechat-web/src/main/resources/ResultInfo.properties
  20. 1 0
      tooth-wechat-web/src/main/resources/iamberry-wechat-service-mybatis.xml
  21. 6 6
      tooth-wechat-web/src/main/resources/jdbc.properties
  22. 5 5
      tooth-wechat-web/src/main/resources/platform.properties
  23. 5 5
      tooth-wechat-web/src/main/resources/wx_public_no.properties
  24. 2 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/addAgentConfig.jsp
  25. 136 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/addAgentInfo.jsp
  26. 1 1
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentConfigList.jsp
  27. 168 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentInfoList.jsp
  28. 306 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentOrderList.jsp
  29. 2 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/updateAgentConfig.jsp
  30. 140 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/updateAgentInfo.jsp
  31. 2 2
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/coupon/addCouponType.jsp
  32. 303 0
      tooth-wechat-web/src/main/webapp/view/agent_tooth/activate_agent_id.html
  33. 264 0
      tooth-wechat-web/src/main/webapp/view/agent_tooth/agent_center.html
  34. 365 0
      tooth-wechat-web/src/main/webapp/view/agent_tooth/purchasing_products.html

+ 45 - 2
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentOrder.java

@@ -29,13 +29,56 @@ public class AgentOrder implements java.io.Serializable{
     private String agentAdminRemark;    //后台的备注
     private String agentTransactionId;  //微信订单号
     private Date agentTransactionDate;  //微信支付时间
-
     private String agentOrderItemJson;  //订单项
-
     private PageBean page;			    //分页
+    private String agentName;           //代理商姓名
+    private String agentTel;            //代理商电话
+    private Date beginDate;             //开始时间
+    private Date endDate;               //结束时间
+    private String agentOpenId;         //代理商openid
 
     private List<AgentOrderItem> itemList = new ArrayList<AgentOrderItem>();    //订单项集合
 
+    public String getAgentOpenId() {
+        return agentOpenId;
+    }
+
+    public void setAgentOpenId(String agentOpenId) {
+        this.agentOpenId = agentOpenId;
+    }
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getAgentTel() {
+        return agentTel;
+    }
+
+    public void setAgentTel(String agentTel) {
+        this.agentTel = agentTel;
+    }
+
+    public String getAgentName() {
+        return agentName;
+    }
+
+    public void setAgentName(String agentName) {
+        this.agentName = agentName;
+    }
+
     public PageBean getPage() {
         return page;
     }

+ 11 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentTooth.java

@@ -1,5 +1,7 @@
 package com.iamberry.wechat.core.entity.agentInfo;
 
+import com.iamberry.wechat.core.entity.PageBean;
+
 import java.util.Date;
 
 /**
@@ -18,6 +20,7 @@ public class AgentTooth implements java.io.Serializable{
     private Integer agentStatus;    //线下状态
     private String agentOpenid;     //微信openid
     private String agentHead;       //头像
+    private PageBean page;			//分页
 
     public String getAgentHead() {
         return agentHead;
@@ -90,4 +93,12 @@ public class AgentTooth implements java.io.Serializable{
     public void setAgentOpenid(String agentOpenid) {
         this.agentOpenid = agentOpenid;
     }
+
+    public PageBean getPage() {
+        return page;
+    }
+
+    public void setPage(PageBean page) {
+        this.page = page;
+    }
 }

+ 75 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/OrderHint.java

@@ -0,0 +1,75 @@
+package com.iamberry.wechat.core.entity.agentInfo;
+
+import java.util.Date;
+
+/**
+ * 更换电动牙刷刷头实体类
+ * Created by liuzhiwei on 2017/10/16.
+ */
+public class OrderHint implements java.io.Serializable{
+
+    private static final long serialVersionUID = -891517013232064104L;
+    private Integer hintId;         //id
+    private String orderId;         //订单号
+    private String userOpenId;      //openId
+    private Integer hintNum;        //已提示次数
+    private Date hintTime;          //下次提醒时间
+    private Integer hintStatus;     //状态
+    private Date hintCreateTime;    //创建时间
+
+    public Integer getHintId() {
+        return hintId;
+    }
+
+    public void setHintId(Integer hintId) {
+        this.hintId = hintId;
+    }
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getUserOpenId() {
+        return userOpenId;
+    }
+
+    public void setUserOpenId(String userOpenId) {
+        this.userOpenId = userOpenId;
+    }
+
+    public Integer getHintNum() {
+        return hintNum;
+    }
+
+    public void setHintNum(Integer hintNum) {
+        this.hintNum = hintNum;
+    }
+
+    public Date getHintTime() {
+        return hintTime;
+    }
+
+    public void setHintTime(Date hintTime) {
+        this.hintTime = hintTime;
+    }
+
+    public Integer getHintStatus() {
+        return hintStatus;
+    }
+
+    public void setHintStatus(Integer hintStatus) {
+        this.hintStatus = hintStatus;
+    }
+
+    public Date getHintCreateTime() {
+        return hintCreateTime;
+    }
+
+    public void setHintCreateTime(Date hintCreateTime) {
+        this.hintCreateTime = hintCreateTime;
+    }
+}

+ 19 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/agentInfo/AgentInfoService.java

@@ -72,4 +72,23 @@ public interface AgentInfoService {
      * @return
      */
     Integer updateAgentOpenId(AgentTooth agentTooth);
+
+    /**
+     * 查询所有代理商
+     * @param agentTooth
+     * @return
+     */
+    List<AgentTooth> selectAllAgentinfo(AgentTooth agentTooth);
+
+    /**
+     * 查询所有代理商条数
+     * @param agentTooth
+     * @return
+     */
+    Integer selectAllAgentinfoCount(AgentTooth agentTooth);
+
+    /**
+     * 新增代理商
+     */
+    Integer addAgentinfo(AgentTooth agentTooth);
 }

+ 42 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/agentInfo/AgentPurchaseOrderService.java

@@ -2,6 +2,7 @@ package com.iamberry.wechat.face.agentInfo;
 
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 
 import java.util.List;
 import java.util.Map;
@@ -39,6 +40,47 @@ public interface AgentPurchaseOrderService {
      */
     List<AgentOrder> listAgentOrder(AgentOrder agentOrder);
 
+    /**
+     * 查询代理商订单信息数量
+     * @param agentOrder
+     * @return
+     */
+    Integer listAgentOrderCount(AgentOrder agentOrder);
+
+    /**
+     * 批量查询需要更换刷头的订单
+     * @param orderHint
+     * @return
+     */
+    List<OrderHint> listOrderHint(OrderHint orderHint);
+
+    /**
+     * 批量修改更换刷头信息
+     * @param list
+     * @return
+     */
+    Integer updateOrderHintList(List<OrderHint> list);
+
+    /**
+     * 添加更换刷头信息
+     * @param orderHint
+     * @return
+     */
+    Integer addOrderHint(OrderHint orderHint);
+
+    /**
+     * 查询代理商订单列表 不分页
+     * @param agentOrder
+     * @return
+     */
+    List<AgentOrder> listSelectAgentOrder(AgentOrder agentOrder);
+
+    /**
+     * 修改备注信息
+     * @param agentOrder
+     * @return
+     */
+    Integer updateRemark(AgentOrder agentOrder);
 }
 
 

+ 7 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java

@@ -89,6 +89,13 @@ public interface AdminOrderService {
 	public Integer updateOrderDeliver(Order order);
 
 	/**
+	 * 添加更换刷头提示信息
+	 * @param order
+	 * @return
+	 */
+	Integer addAgentOrderHint(Order order);
+
+	/**
 	 * 查询状态为待发货的所有订单号
 	 * @return
 	 */

+ 16 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/agentInfo/AgentInfoServiceImpl.java

@@ -63,4 +63,20 @@ public class AgentInfoServiceImpl implements AgentInfoService {
     public Integer updateAgentOpenId(AgentTooth agentTooth) {
         return agentInfoMapper.updateAgentOpenId(agentTooth);
     }
+
+    @Override
+    public List<AgentTooth> selectAllAgentinfo(AgentTooth agentTooth) {
+        return agentInfoMapper.selectAllAgentinfo(agentTooth);
+    }
+
+    @Override
+    public Integer selectAllAgentinfoCount(AgentTooth agentTooth) {
+        int count = agentInfoMapper.selectAllAgentinfoCount(agentTooth);
+        return	count = count % agentTooth.getPage().getPageSize() == 0? count/agentTooth.getPage().getPageSize():(count/agentTooth.getPage().getPageSize())+1;
+    }
+
+    @Override
+    public Integer addAgentinfo(AgentTooth agentTooth) {
+        return agentInfoMapper.addAgentinfo(agentTooth);
+    }
 }

+ 31 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/agentInfo/AgentPurchaseOrderServiceImpl.java

@@ -4,6 +4,7 @@ import com.iamberry.wechat.core.entity.OrderUtil;
 import com.iamberry.wechat.core.entity.agentInfo.AgentConfig;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
@@ -112,8 +113,38 @@ public class AgentPurchaseOrderServiceImpl implements AgentPurchaseOrderService
     }
 
     @Override
+    public Integer listAgentOrderCount(AgentOrder agentOrder) {
+        int count = agentPurchaseOrderMapper.listAgentOrderCount(agentOrder);
+        return	count = count % agentOrder.getPage().getPageSize() == 0? count/agentOrder.getPage().getPageSize():(count/agentOrder.getPage().getPageSize())+1;
+    }
+
+    @Override
     public Integer updateAgentPurchaseOrder(AgentOrder agentOrder) {
         return agentPurchaseOrderMapper.updateAgentPurchaseOrder(agentOrder);
     }
 
+    @Override
+    public List<OrderHint> listOrderHint(OrderHint orderHint) {
+        return agentPurchaseOrderMapper.listOrderHint(orderHint);
+    }
+
+    @Override
+    public Integer updateOrderHintList(List<OrderHint> list) {
+        return agentPurchaseOrderMapper.updateOrderHintList(list);
+    }
+
+    @Override
+    public Integer addOrderHint(OrderHint orderHint) {
+        return agentPurchaseOrderMapper.addOrderHint(orderHint);
+    }
+
+    @Override
+    public List<AgentOrder> listSelectAgentOrder(AgentOrder agentOrder) {
+        return agentPurchaseOrderMapper.listSelectAgentOrder(agentOrder);
+    }
+
+    @Override
+    public Integer updateRemark(AgentOrder agentOrder) {
+        return agentPurchaseOrderMapper.updateRemark(agentOrder);
+    }
 }

+ 19 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AgentInfoMapper.java

@@ -72,4 +72,23 @@ public interface AgentInfoMapper {
      * @return
      */
     Integer updateAgentOpenId(AgentTooth agentTooth);
+
+    /**
+     * 查询所有代理商
+     * @param agentTooth
+     * @return
+     */
+    List<AgentTooth> selectAllAgentinfo(AgentTooth agentTooth);
+
+    /**
+     * 查询所有代理商条数
+     * @param agentTooth
+     * @return
+     */
+    Integer selectAllAgentinfoCount(AgentTooth agentTooth);
+
+    /**
+     * 新增代理商
+     */
+    Integer addAgentinfo(AgentTooth agentTooth);
 }

+ 42 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AgentPurchaseOrderMapper.java

@@ -2,6 +2,7 @@ package com.iamberry.wechat.service.mapper;
 
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 
 import java.util.List;
 
@@ -45,4 +46,45 @@ public interface AgentPurchaseOrderMapper {
      */
     List<AgentOrder> listAgentOrder(AgentOrder agentOrder);
 
+    /**
+     * 查询代理商订单信息数量
+     * @param agentOrder
+     * @return
+     */
+    Integer listAgentOrderCount(AgentOrder agentOrder);
+
+    /**
+     * 批量查询需要更换刷头的订单
+     * @param orderHint
+     * @return
+     */
+    List<OrderHint> listOrderHint(OrderHint orderHint);
+
+    /**
+     * 批量修改更换刷头信息
+     * @param list
+     * @return
+     */
+    Integer updateOrderHintList(List<OrderHint> list);
+
+    /**
+     * 添加更换刷头信息
+     * @param orderHint
+     * @return
+     */
+    Integer addOrderHint(OrderHint orderHint);
+
+    /**
+     * 查询代理商订单列表 不分页
+     * @param agentOrder
+     * @return
+     */
+    List<AgentOrder> listSelectAgentOrder(AgentOrder agentOrder);
+
+    /**
+     * 修改备注信息
+     * @param agentOrder
+     * @return
+     */
+    Integer updateRemark(AgentOrder agentOrder);
 }

+ 83 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentInfoMapper.xml

@@ -60,6 +60,12 @@
             <if test="colorName != null and colorName != ''">
                 and c.color_name like CONCAT('%',#{colorName},'%')
             </if>
+            <if test="agentId != null and agentId != ''">
+                and a.agent_id = #{agentId}
+            </if>
+            <if test="configStatus != null">
+                AND config_status = #{configStatus}
+            </if>
         </where>
         ORDER BY a.config_create_time DESC
         <if test="page!=null and page.pageSize>0 ">
@@ -152,6 +158,12 @@
             <if test="colorId !=null and colorId !=''">
                 AND color_id = #{colorId}
             </if>
+            <if test="configStatus != null">
+                AND config_status = #{configStatus}
+            </if>
+            <if test="configId !=null and configId !=''">
+                AND config_id = #{configId}
+            </if>
         </where>
     </select>
 
@@ -226,4 +238,75 @@
               agent_tel = #{agentTel}
         </where>
     </update>
+
+
+    <!--查询所有代理商 -->
+    <select id="selectAllAgentinfo" parameterType="AgentTooth" resultType="AgentTooth">
+        SELECT
+        <include refid="agentInfo" />
+        FROM
+        tb_iamberry_agent_agentinfo
+        <where>
+            <if test="agentName != null">
+                and agent_name = #{agentName}
+            </if>
+            <if test="agentTel!=null and agentTel!=''">
+                and agent_tel = #{agentTel}
+            </if>
+            <if test="agentRoleId!=null and agentRoleId!=''">
+                and agent_role_id = #{agentRoleId}
+            </if>
+            <if test="agentStatus!=null and agentStatus!=''">
+                and agent_status = #{agentStatus}
+            </if>
+        </where>
+        order by agent_create_date desc
+        <if test="page!=null and page.pageSize>0 ">
+            LIMIT ${page.recordBegin},${page.pageSize}
+        </if>
+    </select>
+    <!-- 查询所有物流信息(代理商赠送机器记录)总数 -->
+    <select id="selectAllAgentinfoCount" parameterType="AgentTooth" resultType="Integer">
+        SELECT
+          count(*)
+        FROM
+        tb_iamberry_agent_agentinfo
+        <where>
+            <if test="agentName != null">
+                and agent_name = #{agentName}
+            </if>
+            <if test="agentTel!=null and agentTel!=''">
+                and agent_tel = #{agentTel}
+            </if>
+            <if test="agentRoleId!=null and agentRoleId!=''">
+                and agent_role_id = #{agentRoleId}
+            </if>
+            <if test="agentStatus!=null and agentStatus!=''">
+                and agent_status = #{agentStatus}
+            </if>
+        </where>
+    </select>
+
+    <!--新增代理商 -->
+    <insert id="addAgentinfo" parameterType="AgentTooth" >
+        INSERT INTO tb_iamberry_agent_agentinfo(
+          agent_name,
+          agent_addr,
+          agent_tel,
+          agent_role_id,
+          agent_create_date,
+          agent_status,
+          agent_openid
+        )
+        VALUES
+        (
+          #{agentName} ,
+          #{agentAddr},
+          #{agentTel},
+          #{agentRoleId},
+          NOW(),
+          #{agentStatus},
+          #{agentOpenid}
+        )
+    </insert>
 </mapper>

+ 180 - 20
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentPurchaseOrderMapper.xml

@@ -93,31 +93,96 @@
        agent_orderid = #{agentOrderid}
   </update>
 
+    <!-- 修改备注信息 -->
+    <update id="updateRemark" parameterType="AgentOrder">
+        update
+          tb_iamberry_agent_order
+        SET
+          agent_admin_remark = #{agentAdminRemark}
+        WHERE
+          agent_orderid = #{agentOrderid}
+    </update>
+
+    <!-- 查询代理商订单列表 不分页 -->
+    <select id="listSelectAgentOrder" parameterType="AgentOrder" resultType="AgentOrder">
+      select
+            o.agent_orderid agentOrderid,
+            o.agent_id agentId,
+            o.agent_yet_amount agentYetAmount,
+            o.agent_amount agentAmount,
+            o.agent_create_date agentCreateDate,
+            o.agent_post_num agentPostNum,
+            o.agent_post_firm agentPostFirm,
+            o.agent_status agentStatus,
+            o.agent_send_date agentSendDate,
+            o.agent_address_info agentAddressInfo,
+            o.agent_address_postnum agentAddressPostnum,
+            o.agent_address_tel agentAddressTel,
+            o.agent_address_name agentAddressName,
+            o.agent_admin_remark agentAdminRemark,
+            o.agent_transaction_id agentTransactionId,
+            o.agent_transaction_date agentTransactionDate,
+            a.agent_name agentName,
+            a.agent_tel agentTel,
+            a.agent_openid agentOpenId
+        from
+          tb_iamberry_agent_order o
+        LEFT JOIN tb_iamberry_agent_agentinfo a ON o.agent_id = a.agent_id
+        <where>
+            <if test="agentOrderid != null and agentOrderid != ''">
+                o.agent_orderid = #{agentOrderid}
+            </if>
+        </where>
+    </select>
 
     <!-- 查询代理商订单信息,可分页 -->
     <select id="listAgentOrder" parameterType="AgentOrder" resultMap="agentOrderMap">
-      select
-        agent_orderid,
-        agent_id,
-        agent_yet_amount,
-        agent_amount,
-        agent_create_date,
-        agent_post_num,
-        agent_post_firm,
-        agent_status,
-        agent_send_date,
-        agent_address_info,
-        agent_address_postnum,
-        agent_address_tel,
-        agent_address_name,
-        agent_admin_remark,
-        agent_transaction_id,
-        agent_transaction_date
-      from
-        tb_iamberry_agent_order
+        select
+            o.agent_orderid,
+            o.agent_id,
+            o.agent_yet_amount,
+            o.agent_amount,
+            o.agent_create_date,
+            o.agent_post_num,
+            o.agent_post_firm,
+            o.agent_status,
+            o.agent_send_date,
+            o.agent_address_info,
+            o.agent_address_postnum,
+            o.agent_address_tel,
+            o.agent_address_name,
+            o.agent_admin_remark,
+            o.agent_transaction_id,
+            o.agent_transaction_date,
+            a.agent_name agentName,
+            a.agent_tel agentTel
+        from
+          tb_iamberry_agent_order o
+        LEFT JOIN tb_iamberry_agent_agentinfo a ON o.agent_id = a.agent_id
       <where>
           <if test="agentOrderid != null and agentOrderid != ''">
-              agent_orderid = #{agentOrderid}
+              o.agent_orderid = #{agentOrderid}
+          </if>
+          <if test="agentName != null and agentName != ''">
+              and a.agent_name like CONCAT('%',#{agentName},'%')
+          </if>
+          <if test="agentTel != null and agentTel != ''">
+              and a.agent_tel like CONCAT('%',#{agentTel},'%')
+          </if>
+          <if test="agentAddressName != null and agentAddressName != ''">
+              and o.agent_address_name like CONCAT('%',#{agentAddressName},'%')
+          </if>
+          <if test="agentAddressTel != null and agentAddressTel != ''">
+              and o.agent_address_tel like CONCAT('%',#{agentAddressTel},'%')
+          </if>
+          <if test="agentStatus != null and agentStatus != -1">
+              and o.agent_status = #{agentStatus}
+          </if>
+          <if test="beginDate != null">
+              AND DATE_FORMAT(o.agent_create_date, '%Y-%m-%d') <![CDATA[ >= ]]> DATE_FORMAT(#{beginDate},'%Y-%m-%d')
+          </if>
+          <if test="endDate != null">
+              AND DATE_FORMAT(o.agent_create_date, '%Y-%m-%d') <![CDATA[ <= ]]> DATE_FORMAT(#{endDate},'%Y-%m-%d')
           </if>
       </where>
         ORDER BY agent_create_date DESC
@@ -171,4 +236,99 @@
         ORDER BY item_id DESC
     </select>
 
+    <select id="listAgentOrderCount" parameterType="AgentOrder" resultType="Integer">
+        select
+          count(o.agent_orderid)
+        from
+          tb_iamberry_agent_order o
+        LEFT JOIN tb_iamberry_agent_agentinfo a ON o.agent_id = a.agent_id
+        <where>
+            <if test="agentOrderid != null and agentOrderid != ''">
+                o.agent_orderid = #{agentOrderid}
+            </if>
+            <if test="agentName != null and agentName != ''">
+                and a.agent_name like CONCAT('%',#{agentName},'%')
+            </if>
+            <if test="agentTel != null and agentTel != ''">
+                and a.agent_tel like CONCAT('%',#{agentTel},'%')
+            </if>
+            <if test="agentAddressName != null and agentAddressName != ''">
+                and o.agent_address_name like CONCAT('%',#{agentAddressName},'%')
+            </if>
+            <if test="agentAddressTel != null and agentAddressTel != ''">
+                and o.agent_address_tel like CONCAT('%',#{agentAddressTel},'%')
+            </if>
+            <if test="agentStatus != null and agentStatus != -1">
+                and o.agent_status = #{agentStatus}
+            </if>
+            <if test="beginDate != null">
+                AND DATE_FORMAT(o.agent_create_date, '%Y-%m-%d') <![CDATA[ >= ]]> DATE_FORMAT(#{beginDate},'%Y-%m-%d')
+            </if>
+            <if test="endDate != null">
+                AND DATE_FORMAT(o.agent_create_date, '%Y-%m-%d') <![CDATA[ <= ]]> DATE_FORMAT(#{endDate},'%Y-%m-%d')
+            </if>
+        </where>
+    </select>
+
+    <!-- 批量查询需要更换刷头的订单 -->
+    <select id="listOrderHint" parameterType="OrderHint" resultType="OrderHint">
+      select
+        *
+      from
+        tb_iamberry_order_hint
+      <where>
+          <if test="hintTime != null and hintTime != ''">
+              date_format(hint_time, '%Y-%m-%d') = date_format(#{hintTime}, '%Y-%m-%d')
+          </if>
+          <if test="hintStatus != null and hintStatus != ''">
+              and hint_status = #{hintStatus}
+          </if>
+          <if test="orderId != null and orderId != ''">
+              and order_id = #{orderId}
+          </if>
+          <if test="userOpenId != null and userOpenId != ''">
+              and user_open_id = #{userOpenId}
+          </if>
+          <if test="hintId != null and hintId != ''">
+              and hint_id = #{hintId}
+          </if>
+      </where>
+    </select>
+
+    <!-- 批量修改更换刷头信息 -->
+    <update id="updateOrderHintList" parameterType="java.util.List">
+        <foreach collection="list" item="item" index="index" separator=";" open="" close="">
+          update
+            tb_iamberry_order_hint
+          <set>
+              <if test="item.hintTime != null and item.hintTime != ''">
+                  hint_time = #{item.hintTime},
+              </if>
+              <if test="item.hintStatus != null and item.hintStatus != ''">
+                  hint_status = #{item.hintStatus}
+              </if>
+              <if test="item.hintNum != null and item.hintNum != ''">
+                  hint_num = (hint_num + 1)
+              </if>
+          </set>
+          <where>
+              hint_id = #{item.hintId}
+          </where>
+        </foreach>
+    </update>
+
+    <!-- 添加更换刷头信息 -->
+    <insert id="addOrderHint" parameterType="OrderHint"
+            useGeneratedKeys="true" keyProperty="hintId">
+      insert into tb_iamberry_order_hint
+      (
+        order_id,user_open_id,hint_num,hint_time,
+        hint_status,hint_create_time
+      )
+      values
+      (
+        #{orderId},#{userOpenId},#{hintNum},#{hintTime},
+        #{hintStatus},NOW()
+      )
+    </insert>
 </mapper>

+ 53 - 12
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java

@@ -1,11 +1,10 @@
 package com.iamberry.wechat.service.order;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 import com.iamberry.wechat.core.entity.statictics.StatisticsSalesOrder;
+import com.iamberry.wechat.service.mapper.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -26,10 +25,6 @@ import com.iamberry.wechat.core.entity.relationship.WdRelation;
 import com.iamberry.wechat.core.entity.rewards.RewardsLog;
 import com.iamberry.wechat.core.entity.rewards.SalesLog;
 import com.iamberry.wechat.face.order.AdminOrderService;
-import com.iamberry.wechat.service.mapper.RebackInfoMapper;
-import com.iamberry.wechat.service.mapper.RewardsMapper;
-import com.iamberry.wechat.service.mapper.SalesLogMapper;
-import com.iamberry.wechat.service.mapper.TemplateFlowInfoMapper;
 import com.iamberry.wechat.service.member.dao.CashLogDao;
 import com.iamberry.wechat.service.order.dao.AdminOrderDao;
 import com.iamberry.wechat.service.relationship.Dao.DealerRelationDao;
@@ -69,6 +64,10 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	
 	@Autowired
 	private RewardsMapper rewardsMapper;
+	@Autowired
+	private AgentPurchaseOrderMapper agentPurchaseOrderMapper;
+	@Autowired
+	private AdminOrderService adminOrderService;
 	
 	/**
 	 * 根据订单编号,获取该订单的返利信息
@@ -135,18 +134,60 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	
 	public boolean deliverOrderByOrderId(Order order) {
 		// TODO Auto-generated method stub
-		return this.adminOrderDao.deliverOrderByOrderId(order) >= 1 ? true : false;
+		//修改订单状态为已发货状态
+		int num = this.adminOrderDao.deliverOrderByOrderId(order);
+		//添加更换刷头提示信息
+		int count = adminOrderService.addAgentOrderHint(order);
+		if (num > 0 && count > 0) {
+			return true;
+		} else {
+			return false;
+		}
 	}
 
 	
 	public Integer updateOrderDeliver(Order order) {
 		// TODO Auto-generated method stub
-		return adminOrderDao.updateOrderDeliver(order);
+		int num = adminOrderDao.updateOrderDeliver(order);
+		//添加更换刷头提示信息
+		int count = adminOrderService.addAgentOrderHint(order);
+		if (num > 0 && count > 0) {
+			return 1;
+		} else {
+			return 0;
+		}
+	}
+
+	@Override
+	public Integer addAgentOrderHint(Order order) {
+		//获取更换刷头时间间隔
+		ShopSystemRule rule =  adminOrderDao.getReluByRid(245);
+		boolean flag = false;	//判断是否需要添加更换刷头提示
+		int count = 1;
+		OrderHint orderHint = new OrderHint();
+		orderHint.setOrderId(order.getSalesOrderid());
+		orderHint.setUserOpenId(order.getSalesOpenid());
+		orderHint.setHintStatus(1);
+		//查询更换刷头列表
+		List<OrderHint> hintList = agentPurchaseOrderMapper.listOrderHint(orderHint);
+		if (hintList == null || hintList.size() == 0) {
+			flag = true;
+		}
+		if (flag) {
+			Calendar cl = Calendar.getInstance();
+			cl.setTime(new Date());
+			//提示时间添加3个月
+			cl.add(Calendar.MONTH, +rule.getRuleNum().intValue());
+			orderHint.setHintTime(cl.getTime());
+			orderHint.setHintNum(0);
+			//添加更换刷头提示
+			count = agentPurchaseOrderMapper.addOrderHint(orderHint);
+		}
+		return count;
 	}
 
-	
 	public boolean updateOrderAdminRemarkByOrderId(String remark,
-			String orderId, Integer remarkColor) {
+												   String orderId, Integer remarkColor) {
 		// TODO Auto-generated method stub
 		Order order = new Order();
 		order.setSalesAdminRemark(remark);

+ 396 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminAgentToothHandler.java

@@ -1,27 +1,44 @@
 package com.iamberry.wechat.handles.admin;
 
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.PageBean;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.agentInfo.AgentConfig;
+import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.agentInfo.AgentTooth;
+import com.iamberry.wechat.core.entity.drp.PlaceRoleInfo;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.agentInfo.AgentInfoService;
+import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
+import com.iamberry.wechat.face.drp.DrpRoleInfoService;
+import com.iamberry.wechat.face.efast.EfastRentService;
+import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.face.porduct.ProductColorService;
+import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.utils.SendMessageUtil;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.iamberry.wechat.service.ImberryConfig.INFORM_SHIPPING;
+
 /**
  * 代理商逻辑处理类
  * Created by liuzhiwei on 2017/10/11.
@@ -34,6 +51,20 @@ public class AdminAgentToothHandler {
     private AgentInfoService agentInfoService;
     @Autowired
     private ProductColorService productColorService;
+    @Autowired
+    private AgentPurchaseOrderService agentPurchaseOrderService;
+    @Autowired
+    private EfastRentService efastRentService;
+    @Autowired
+    private SendMessageUtil sendMessageUtil;
+    @Autowired
+    private RatFWLogger logger;
+    @Autowired
+    private CodeService codeService;
+    @Autowired
+    private MemberService memberService;
+    @Autowired
+    private DrpRoleInfoService drpRoleInfoService;
 
     /**
      * 分页查询代理商优惠价配置信息
@@ -156,8 +187,35 @@ public class AdminAgentToothHandler {
             msg.setStatus(false);
             msg.setMessage("您没有选择代理商,请选择!");
         }
+
         //拆分产品id和金额
         String[] productPrice = productColor.split(",");
+
+        //根据代理商id查询所有优惠价配置信息
+        AgentConfig agentConfig = new AgentConfig();
+        agentConfig.setAgentId(Integer.parseInt(agentId));
+        agentConfig.setConfigStatus(1);
+        List<AgentConfig> configList = agentInfoService.listAgentConfig(agentConfig);
+
+        //校验是否已经存在该代理商的优惠价
+        for (int i = 0;i < productPrice.length;i++) {
+            String[] color = productPrice[i].split(":");
+            int color1 = Integer.parseInt(color[0]);
+            for(AgentConfig agentConfig2 : configList) {
+                if (color1 == agentConfig2.getColorId()) {
+                    StringBuilder message = new StringBuilder("产品为");
+                    message.append(agentConfig2.getProductName());
+                    message.append("颜色为");
+                    message.append(agentConfig2.getColorName());
+                    message.append("的产品已经配置了优惠价,无法重复配置!");
+                    msg.setResultCode(ResultInfo.ERRORCODE);
+                    msg.setStatus(false);
+                    msg.setMessage(message.toString());
+                    return msg;
+                }
+            }
+        }
+
         List<AgentConfig> list = new ArrayList<AgentConfig>();
         for (int i = 0;i < productPrice.length;i++) {
             String[] color = productPrice[i].split(":");
@@ -251,6 +309,18 @@ public class AdminAgentToothHandler {
             msg.setStatus(false);
             msg.setMessage("修改代理商优惠价配置失败!");
         }
+        AgentConfig config2 = new AgentConfig();
+        config2.setConfigStatus(1);
+        config2.setAgentId(config.getAgentId());
+        config2.setColorId(config.getColorId());
+        //根据代理商id和产品颜色id查询配置信息
+        config2 = agentInfoService.getAgentConfig(config);
+        if (config2 != null && config2.getConfigId().intValue() != config.getConfigId()) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("该代理商已配置过该产品的优惠价,不能重复配置!");
+            return msg;
+        }
         //修改代理商优惠价配置信息
         int num = agentInfoService.updateAgentConfig(config);
         if (num > 0) {
@@ -286,7 +356,23 @@ public class AdminAgentToothHandler {
             msg.setStatus(false);
             return msg;
         }
+
         config.setConfigId(Integer.parseInt(configId));
+        //根据id查询配置信息
+        AgentConfig agentConfig = agentInfoService.getAgentConfig(config);
+
+        AgentConfig config2 = new AgentConfig();
+        config2.setConfigStatus(1);
+        config2.setAgentId(agentConfig.getAgentId());
+        config2.setColorId(agentConfig.getColorId());
+        //根据代理商id和产品颜色id查询配置信息
+        config2 = agentInfoService.getAgentConfig(config);
+        if (config2 != null) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("该代理商已配置过该产品的优惠价,不能重复配置!");
+            return msg;
+        }
         config.setConfigStatus(Integer.parseInt(configStatus));
         //修改代理商优惠价配置信息
         int num = agentInfoService.updateAgentConfig(config);
@@ -299,4 +385,314 @@ public class AdminAgentToothHandler {
         }
         return msg;
     }
+
+    /**
+     * 分页查询代理商采购订单信息
+     * @param request
+     * @param pageSize
+     * @param pageNO
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/select_agent_order_list")
+    public ModelAndView selectAgentOrderList(HttpServletRequest request,
+                                             @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                             @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO) throws Exception {
+        ModelAndView mv = new ModelAndView("admin/agentInfo/agentOrderList");
+        AgentOrder agentOrder = new AgentOrder();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        StringBuilder url = new StringBuilder("/admin/agentTooth/select_agent_order_list?pageSize=");
+        url.append(pageSize);
+        String agentStatus = request.getParameter("agentStatus");
+        String agentName = request.getParameter("agentName");
+        String agentTel = request.getParameter("agentTel");
+        String agentAddressName = request.getParameter("agentAddressName");
+        String agentAddressTel = request.getParameter("agentAddressTel");
+        String beginDate = request.getParameter("beginDate");
+        String endDate = request.getParameter("endDate");
+        if (StringUtils.isNotEmpty(agentStatus)) {
+            agentOrder.setAgentStatus(Integer.parseInt(agentStatus));
+            url.append("&agentStatus=");
+            url.append(Integer.parseInt(agentStatus));
+            mv.addObject("agentStatus",Integer.parseInt(agentStatus));
+        }
+        if (StringUtils.isNotEmpty(agentName)) {
+            agentOrder.setAgentName(agentName);
+            url.append("&agentName=");
+            url.append(agentName);
+            mv.addObject("agentName",agentName);
+        }
+        if (StringUtils.isNotEmpty(agentTel)) {
+            agentOrder.setAgentTel(agentTel);
+            url.append("&agentTel=");
+            url.append(agentTel);
+            mv.addObject("agentTel",agentTel);
+        }
+        if (StringUtils.isNotEmpty(agentAddressName)) {
+            agentOrder.setAgentAddressName(agentAddressName);
+            url.append("&agentAddressName=");
+            url.append(agentAddressName);
+            mv.addObject("agentAddressName",agentAddressName);
+        }
+        if (StringUtils.isNotEmpty(agentAddressTel)) {
+            agentOrder.setAgentAddressTel(agentAddressTel);
+            url.append("&agentAddressTel=");
+            url.append(agentAddressTel);
+            mv.addObject("agentAddressTel",agentAddressTel);
+        }
+        if (StringUtils.isNotEmpty(beginDate)) {
+            url.append("&beginDate=");
+            url.append(beginDate);
+            mv.addObject("beginDate",beginDate);
+            agentOrder.setBeginDate(format.parse(beginDate));
+        }
+        if (StringUtils.isNotEmpty(endDate)) {
+            url.append("&endDate=");
+            url.append(endDate);
+            mv.addObject("endDate",endDate);
+            agentOrder.setEndDate(format.parse(endDate));
+        }
+
+        PageBean page = new PageBean();
+        page.setPageNumber(pageNO);
+        page.setPageSize(pageSize);
+        page.initRecordBegin();
+        agentOrder.setPage(page);
+        List agentOrderList = agentPurchaseOrderService.listAgentOrder(agentOrder);
+        url.append("&pageNO=");
+        mv.addObject("agentOrderList",agentOrderList);
+        mv.addObject("pageNO", pageNO);
+        mv.addObject("pageSize", agentPurchaseOrderService.listAgentOrderCount(agentOrder));
+        mv.addObject("url",url.toString());
+        return mv;
+    }
+
+    /**
+     * 同步订单状态
+     * @param request
+     * @param orderId
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/sync_efast_order/{orderId}")
+    public ResultMsg syncEfastOrder(HttpServletRequest request,
+                                      @PathVariable("orderId") String orderId) throws Exception {
+        //efast的订单编号
+        String efastOrderId = request.getParameter("efastOrderId");
+        ResultMsg msg = new ResultMsg();
+
+        if (!StringUtils.isNotEmpty(orderId)) {
+            msg.setMessage("订单号为空!");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+
+        String id = efastOrderId;
+        String EsastType = "1"; //0:百胜外部交易号;  1:百胜订单号
+        //查询efast系统该订单的状态
+        Map<String, Object> map = efastRentService.getEfastSendOrderInfo(id,EsastType);
+        if (!(boolean) map.get("status")) {
+            msg.setMessage(map.get("result").toString());
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+
+        //获取订单信息
+        AgentOrder agentOrder = new AgentOrder();
+        agentOrder.setAgentOrderid(orderId);
+        //查询代理商订单列表
+        List<AgentOrder> orderList =  agentPurchaseOrderService.listSelectAgentOrder(agentOrder);
+        if (orderList == null || orderList.size() == 0) {
+            msg.setMessage("该订单不存在!");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+        agentOrder = orderList.get(0);
+
+        AgentOrder order = new AgentOrder();
+        order.setAgentOrderid(orderId);
+        order.setAgentStatus(5);
+        order.setAgentPostFirm((String) map.get("postFirm"));
+        order.setAgentPostNum((String) map.get("postNum"));
+        //修改代理商订单信息
+        int flag = agentPurchaseOrderService.updateAgentPurchaseOrder(order);
+        if (flag < 1){
+            msg.setMessage("修改订单状态失败");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+
+        Member member = memberService.getMemberByUserOpenId(agentOrder.getAgentOpenId());
+        if (member == null || 1 == member.getUserStatus() || 0 == member.getUserStatus()){   //未关注或者取消关注的,将发送手机短信
+            logger.info("短信通知:"+ agentOrder.getAgentOrderid() +" 用户的订单已发货");
+            String phone = agentOrder.getAgentTel();
+            codeService.informShipping(phone,INFORM_SHIPPING);
+        }else if(2 == member.getUserStatus()){      //已关注的用户推送信息到公众号
+            logger.info("公众号推送物流信息: "+ agentOrder.getAgentOpenId() +" 用户的订单已发货");
+            //消息内容
+            String data = ResultInfo.ORDERPACKAGETEMP;
+            data = data.replaceFirst("firstValueOrder", ResultInfo.SHIPMENTMESSAGE)
+                    .replaceFirst("orderIdValueOrder", orderId)
+                    .replaceFirst("orderValuePackageId", SendMessageUtil.hashmap.get(map.get("postFirm")) + ":" + map.get("postNum"))
+                    .replaceFirst("orderRemarkValue", ResultInfo.INTOSHOP);
+            sendMessageUtil.sendTemplateMessageToOpenid(data, agentOrder.getAgentOpenId(), ResultInfo.PAGE_SHIPMENT + orderId, 2);
+        }
+
+        msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+        msg.setResultCode(ResultInfo.SUCCESSCODE);
+        msg.setStatus(true);
+        return msg;
+    }
+
+
+    /**
+     * 分页查询代理商
+     * @param request
+     * @param pageSize
+     * @param pageNO
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping("/select_agentInfo_list")
+    public ModelAndView selectAgentInfoList(HttpServletRequest request,
+                                              @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+                                              @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO) throws Exception {
+        AgentTooth agentTooth = new AgentTooth();
+        ModelAndView mv = new ModelAndView("admin/agentInfo/agentInfoList");
+        StringBuilder url = new StringBuilder("/admin/agentTooth/select_agentInfo_list?pageSize=");
+        url.append(pageSize);
+        String agentName = request.getParameter("agentName");
+        String agentTel = request.getParameter("agentTel");
+        String agentStatus = request.getParameter("agentStatus");
+        if (StringUtils.isNotEmpty(agentName)) {
+            agentTooth.setAgentName(agentName);
+            url.append("&agentName=");
+            url.append(agentName);
+            mv.addObject("agentName",agentName);
+        }
+        if (StringUtils.isNotEmpty(agentTel)) {
+            agentTooth.setAgentTel(agentTel);
+            url.append("&agentTel=");
+            url.append(agentTel);
+            mv.addObject("agentTel",agentTel);
+        }
+        if (StringUtils.isNotEmpty(agentStatus)) {
+            agentTooth.setAgentStatus(Integer.valueOf(agentStatus));
+            url.append("&agentStatus=");
+            url.append(agentStatus);
+            mv.addObject("agentStatus",agentStatus);
+        }
+
+        PageBean page = new PageBean();
+        page.setPageSize(pageSize);
+        page.setPageNumber(pageNO);
+        page.initRecordBegin();
+        agentTooth.setPage(page);
+        url.append("&pageNO=");
+        //查询代理商配置金额集合
+        List<AgentTooth> agentToothList = agentInfoService.selectAllAgentinfo(agentTooth);
+        mv.addObject("agentToothList", agentToothList);
+        mv.addObject("pageNO", pageNO);
+        mv.addObject("pageSize", agentInfoService.selectAllAgentinfoCount(agentTooth));
+        mv.addObject("url",url.toString());
+        return mv;
+    }
+
+    /**
+     * 修改代理商
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/update_agentInfo")
+    public ResultMsg updateAgentInfo(HttpServletRequest request,AgentTooth agentTooth) throws Exception{
+        ResultMsg msg = new ResultMsg();
+        if (!StringUtils.isNotEmpty(agentTooth.getAgentId().toString())) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("修改代理商配置失败!");
+        }
+        //修改代理商信息
+        int num = agentInfoService.updateAgentTooth(agentTooth);
+        if (num > 0) {
+            msg.setResultCode(ResultInfo.SUCCESSCODE);
+            msg.setStatus(true);
+        } else {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+        }
+        return msg;
+    }
+
+    /**
+     * 进入修改代理商页面
+     * @param request
+     * @return
+     */
+    @RequestMapping("/_update_agentInfo")
+    public ModelAndView _updateAgentInfo(HttpServletRequest request){
+        ModelAndView mv = new ModelAndView("admin/agentInfo/updateAgentInfo");
+        String agentId = request.getParameter("agentId");
+        if(agentId == null || agentId.equals("")){
+            return null;
+        }
+        List<PlaceRoleInfo> roleInfoList = drpRoleInfoService.getDrpRoleList2();
+        mv.addObject("roleInfoList",roleInfoList);
+
+        AgentTooth agentTooth = new AgentTooth();
+        agentTooth.setAgentId(Integer.valueOf(agentId));
+        agentTooth = agentInfoService.getAgentTooth(agentTooth);
+        mv.addObject("agentTooth",agentTooth);
+
+        return mv;
+    }
+
+    /**
+     * 进入新增代理商页面
+     * @param request
+     * @return
+     */
+    @RequestMapping("/_add_agentInfo")
+    public ModelAndView _addAgentInfo(HttpServletRequest request){
+        ModelAndView mv = new ModelAndView("admin/agentInfo/addAgentInfo");
+        List<PlaceRoleInfo> roleInfoList = drpRoleInfoService.getDrpRoleList2();
+        mv.addObject("roleInfoList",roleInfoList);
+        return mv;
+    }
+
+    /**
+     * 新增代理商
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/add_agentInfo")
+    public ResultMsg addAgentInfo(HttpServletRequest request,AgentTooth agentTooth) throws Exception{
+        ResultMsg msg = new ResultMsg();
+        if (!StringUtils.isNotEmpty(agentTooth.getAgentName())
+                || !StringUtils.isNotEmpty(agentTooth.getAgentAddr())
+                || !StringUtils.isNotEmpty(agentTooth.getAgentTel())
+                || !StringUtils.isNotEmpty(String.valueOf(agentTooth.getAgentRoleId()))
+                || !StringUtils.isNotEmpty(String.valueOf(agentTooth.getAgentStatus()))) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("修改代理商配置失败!");
+        }
+        //add代理商信息
+        int num = agentInfoService.addAgentinfo(agentTooth);
+        if (num > 0) {
+            msg.setResultCode(ResultInfo.SUCCESSCODE);
+            msg.setStatus(true);
+        } else {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+        }
+        return msg;
+    }
 }

+ 6 - 5
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -231,7 +231,7 @@ public class AdminOrderHandlers {
      * 同步订单状态
      * @param request
      * @param orderId
-     * @param type    1:销售订单
+     * @param type    1:销售订单,2:代理商采购订单
      * @throws Exception
      */
     @ResponseBody
@@ -265,24 +265,25 @@ public class AdminOrderHandlers {
             return msg;
         }
 
+        //获取订单信息
+        Order or =  adminOrderService.getShopOrderByOrderId(orderId);
+
         Order order = new Order();
         order.setSalesOrderid(orderId);
         order.setSalesStatus(5);
         order.setSalesPostFirm((String) map.get("postFirm"));
         order.setSalesPostNum((String) map.get("postNum"));
         order.setOldStatus(2);
+        order.setSalesOpenid(or.getSalesOpenid());
         //order.set
         int flag = adminOrderService.updateOrderDeliver(order);
         if (flag < 1){
-            msg.setData("");
             msg.setMessage("修改订单状态失败");
             msg.setResultCode(ResultInfo.ERRORCODE);
             msg.setStatus(false);
             return msg;
         }
 
-        Order or = new Order();
-        or =  adminOrderService.getShopOrderByOrderId(orderId);
         Member member = memberService.getMemberByUserOpenId(or.getSalesOpenid());
         if (member == null || 1 == member.getUserStatus() || 0 == member.getUserStatus()){   //未关注或者取消关注的,将发送手机短信
             logger.info("短信通知:"+ or.getSalesOpenid() +" 用户的订单已发货");
@@ -299,7 +300,6 @@ public class AdminOrderHandlers {
             sendMessageUtil.sendTemplateMessageToOpenid(data, or.getSalesOpenid(), ResultInfo.PAGE_SHIPMENT + orderId, 2);
         }
 
-        msg.setData("");
         msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
         msg.setResultCode(ResultInfo.SUCCESSCODE);
         msg.setStatus(true);
@@ -519,6 +519,7 @@ public class AdminOrderHandlers {
         Order currentOrder = adminOrderService.selectOrderStatusByOrderId(orderId);
         Integer orderStatus = currentOrder.getSalesStatus();
         order.setOldStatus(orderStatus);
+        order.setSalesOpenid(currentOrder.getSalesOpenid());
         if (!orderUtil.orderStatusIntToOrderStatusString(orderStatus).equals(actionDto.getOrderStatus())) {
             mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
             return mv;

+ 61 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/agentInfo/AgentOrderHandler.java

@@ -19,6 +19,7 @@ import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
 import com.iamberry.wechat.tools.ResultInfo;
 import net.sf.json.JSONArray;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -134,6 +135,11 @@ public class AgentOrderHandler {
         Map<String,Object> map = new HashMap<String,Object>();
         Member member = WechatUtils.getUserBySession(request);
         AgentTooth agent = new AgentTooth();
+        AgentOrder agentOrder = new AgentOrder();
+        String status = request.getParameter("status");
+        if (StringUtils.isNotEmpty(status)) {
+            agentOrder.setAgentStatus(Integer.parseInt(status));
+        }
         agent.setAgentOpenid(member.getUserOpenid());
         //获取代理商信息
         agent = agentInfoService.getAgentTooth(agent);
@@ -143,7 +149,7 @@ public class AgentOrderHandler {
             msg.setMessage("您不是代理商,没有采购订单!");
             return msg;
         }
-        AgentOrder agentOrder = new AgentOrder();
+
         agentOrder.setAgentId(agent.getAgentId());
         PageBean page = new PageBean();
         page.setPageNumber(pageNO);
@@ -160,5 +166,59 @@ public class AgentOrderHandler {
         return msg;
     }
 
+    /**
+     * 修改订单备注,只能是待支付订单可以修改
+     * @param request
+     * @param remark
+     * @param agentOrderid
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/update_remark")
+    public ResultMsg updateRemark(HttpServletRequest request,
+                                  @RequestParam(value= "remark",defaultValue= "" ,required=false) String remark,
+                                  @RequestParam(value= "agentOrderid",defaultValue= "" ,required=false) String agentOrderid) throws Exception {
+        ResultMsg msg = new ResultMsg();
+        if (!StringUtils.isNotEmpty(agentOrderid)) {
+            msg.setMessage("订单号不能为空!");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+        AgentOrder order = new AgentOrder();
+        order.setAgentOrderid(agentOrderid);
+        order.setAgentAdminRemark(remark);
+        //根据orderid查询订单信息
+        List<AgentOrder> orderList = agentPurchaseOrderService.listSelectAgentOrder(order);
+
+        if (orderList == null || orderList.size() == 0) {
+            msg.setMessage("该订单信息不存在!");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+        AgentOrder agentOrder = orderList.get(0);
+        if (agentOrder.getAgentStatus() != 1) {
+            msg.setMessage("该订单不是待支付订单,不能修改备注信息!");
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+
+        //修改订单备注信息
+        int num = agentPurchaseOrderService.updateRemark(order);
+        if (num > 0) {
+            msg.setResultCode(ResultInfo.SUCCESSCODE);
+            msg.setStatus(true);
+            return msg;
+        } else {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("修改订单备注失败!");
+            return msg;
+        }
+    }
+
 
 }

+ 37 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/agentInfo/AgentToothHandler.java

@@ -3,8 +3,10 @@ package com.iamberry.wechat.handles.agentInfo;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.agentInfo.AgentTooth;
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.face.agentInfo.AgentInfoService;
+import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * 代理商逻辑处理类
@@ -31,6 +34,8 @@ public class AgentToothHandler {
     private CodeService codeService;
     @Autowired
     private MemberService memberService;
+    @Autowired
+    private AgentPurchaseOrderService agentPurchaseOrderService;
 
     /**
      * 查询代理商信息
@@ -114,4 +119,36 @@ public class AgentToothHandler {
             return msg;
         }
     }
+
+    /**
+     * 根据id查询更换刷头信息
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/select_order_hint")
+    public ResultMsg selectOrderHint(HttpServletRequest request) throws Exception {
+        ResultMsg msg = new ResultMsg();
+        String hintId = request.getParameter("hintId");
+        if (!StringUtils.isNotEmpty(hintId)) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+        OrderHint hint = new OrderHint();
+        hint.setHintId(Integer.parseInt(hintId));
+        //查询更换刷头列表
+        List<OrderHint> hintList = agentPurchaseOrderService.listOrderHint(hint);
+        if (hintList == null || hintList.size() <= 0) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            return msg;
+        }
+        hint = hintList.get(0);
+        msg.setData(hint);
+        msg.setResultCode(ResultInfo.SUCCESSCODE);
+        msg.setStatus(true);
+        return msg;
+    }
 }

+ 34 - 4
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -2,15 +2,14 @@ package com.iamberry.wechat.handles.mq;
 
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
 import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
+import com.iamberry.wechat.core.entity.agentInfo.OrderHint;
 import com.iamberry.wechat.face.admin.SystemService;
+import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService;
 import com.iamberry.wechat.tools.HttpClient431Util;
 import com.iamberry.wechat.tools.NameUtils;
 import org.apache.commons.lang.StringUtils;
@@ -68,6 +67,8 @@ public class MQTask implements InitializingBean {
 	private CodeService codeService;
 	@Autowired
 	private SystemService systemService;
+	@Autowired
+	private AgentPurchaseOrderService agentPurchaseOrderService;
 	
 	private Lock lock = new ReentrantLock();
 
@@ -375,4 +376,33 @@ public class MQTask implements InitializingBean {
 		}
 
 	}
+
+	@SuppressWarnings(value = {"unchecked", "rawtypes"})
+	@Scheduled(cron = "0 0/1 * * * ?")
+	public void updateToothHint() {
+		//获取更换刷头时间间隔
+		ShopSystemRule rule =  systemService.selectOneShopRuleById(245);
+		List<OrderHint> list = new ArrayList<OrderHint>();
+		OrderHint orderHint = new OrderHint();
+		orderHint.setHintTime(new Date());
+		orderHint.setHintStatus(1);
+		//根据时间和状态获取需要提示的
+		List<OrderHint> orderList = agentPurchaseOrderService.listOrderHint(orderHint);
+		if (orderList == null || orderList.size() == 0) {
+			return;
+		}
+		for (int i = 0;i < orderList.size();i++) {
+			OrderHint order = orderList.get(i);
+			Calendar cl = Calendar.getInstance();
+			cl.setTime(order.getHintTime());
+			cl.add(Calendar.MONTH, +rule.getRuleNum().intValue());
+			OrderHint hint = new OrderHint();
+			hint.setHintTime(cl.getTime());
+			hint.setHintId(order.getHintId());
+			hint.setHintNum(1);
+			list.add(hint);
+		}
+		//批量修改更换刷头信息
+		int num = agentPurchaseOrderService.updateOrderHintList(list);
+	}
 }

+ 9 - 9
tooth-wechat-web/src/main/resources/ResultInfo.properties

@@ -57,14 +57,14 @@ TRY_ORDER_DETAIL = http://test.iamberry.com/tooth/wechat/probation/try_order
 RENT_ORDER_DETAIL = http://test.iamberry.com/tooth/view/rent/lease_order_details.html?rentStatus=-1
 AGENT_REFERRER_MACHINE_PAGE = http://test.iamberry.com/tooth/view/gift_card_get_give.html
 ########################--\u6C34\u65F6\u4EE3	xiaoxi moban	--################
-Income_template_id=5KquQ3nZgv3i1gB7T7pvLZ-0pAkk1e3T6QATwJsZ1-8
-rewards_template_id=3lutyqWLusMR8CFRmPpiTmdtxZi-Zi7OJrf9vNFkf_g
-Shipment_template_id=pZcuLEyLcTTAEyqitiIcxXd2mGJjRDGgTr0VJl8N-J0
-Order_template_id=QtNXHsBVn9zgmNym81Bb8j4VtTM8iNBmhjKQvarSQWc
-trial_progress_remind=652-BvE7UETrMAMTMs1s5VQe6Dp5F01KwrX_R42w0Mk
-probation_apply_notice=RLCwG8r7poANQgdoJCZN46NbFctrhahbczu-LgPhC_k
-probation_apply_success=-2mhs7Y0aUFtas4rnatcGj3xYv0XyFjnfaEqf4PJJvo
-probation_pay_success=BWudEQXeAwon2BTa-RQO3X_sVP6AkmDGngKhi92KDc0
-probation_shut_down=qAn04oDBfK4VSB8bROeR-5BhhYri1oUK51FVlh6KwU4
+Income_template_id=vpBRhKfrBUEf5HuXxwGRn61mNpk6A3gRXoVAQPqrxMU
+rewards_template_id=x881e_4cmm6PHBZJC26S8p3UCCS-rvDVOzm9xy4qAKg
+Shipment_template_id=thCvUKTb0JsXKBAeuT2rovvlI8KCPPy8rK_dQVF9zlY
+Order_template_id=DRF1EaiEARYLkZb46MNFVAVhIVP05daH_E-syzkVbBk
+trial_progress_remind=TSkw89NIcRZ8nhYv1Wc2WDR9q5cFTwKhnEu7AYpqvGc
+probation_apply_notice=EHFKJYxp74KhUhhtL0nV8bkWHF5J4hteDEx5UHLlx6Y
+probation_apply_success=izMBTEvvMbzWY6YWyxG5RVP4j2-g5BJUe2MIXLH6mz8
+probation_pay_success=SrPdazrlMtsScC5w06C0ktqY-VnpLRCIqTeVtvtwxks
+probation_shut_down=QzfF4V8M9xXHR24kLsDABKNWGBGRVDVT0CSLQ_X3mpg
 prize_receive_push=7d_r3XJsY5MAISYCDxrjdnPXgNm3IU8XLRYWXbCJjbs
 

+ 1 - 0
tooth-wechat-web/src/main/resources/iamberry-wechat-service-mybatis.xml

@@ -225,6 +225,7 @@
 		<typeAlias type="com.iamberry.wechat.core.entity.agentInfo.AgentTooth" alias="AgentTooth"/>
 		<typeAlias type="com.iamberry.wechat.core.entity.agentInfo.AgentOrder" alias="AgentOrder"/>
 		<typeAlias type="com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem" alias="AgentOrderItem"/>
+		<typeAlias type="com.iamberry.wechat.core.entity.agentInfo.OrderHint" alias="OrderHint"/>
 
 		<!-- 销售统计 -->
 		<typeAlias type="com.iamberry.wechat.core.entity.statictics.StatisticsSalesOrder" alias="StatisticsSalesOrder"/>

+ 6 - 6
tooth-wechat-web/src/main/resources/jdbc.properties

@@ -1,13 +1,13 @@
 jdbc.driver=com.mysql.jdbc.Driver
 #Õýʽ¿â
-#jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/watero_pf?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-#jdbc.username=watero_pf
-#jdbc.password=tooth123
+jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+jdbc.username=tooth
+jdbc.password=Tooth123223
 
 #±¾µØ¿â
-jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-jdbc.username=root
-jdbc.password=root
+#jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+#jdbc.username=root
+#jdbc.password=root
 
 #²âÊÔ¿â
 #jdbc.url=jdbc:mysql://watero2db.mysql.rds.aliyuncs.com/test_watero_pf?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull

+ 5 - 5
tooth-wechat-web/src/main/resources/platform.properties

@@ -158,19 +158,19 @@ PICTRUE_FORMATE_JPG=jpg
 # signatureSimple
 signatureSimple=userAgent=%s&userIp=%s&token=%s&timestamp=%s&sessionId=%s
 # pubNo
-pubNo=gh_c73446c8ce91
+pubNo=gh_cdd0a86d3b19
 # appId-test
-appId=wxc71b789fad06a2d7
+appId=wxdb090f0af89e0be3
 # appId-watero
 #appId=wx27c9f825761a861b
 # token
 token=weixin
 # appSecret-test
-appSecret=8a90e3ab0e2db7772f5f64e7ed2f4b98
+appSecret=518114a120274f625530750c1803921b
 # appSecret-watero
 #appSecret=97b2f2991e4ff0f2567fbc625f858377
 # partnerkey
-partnerkey=cdb9075e7ecad945ba788bc5aedM212B
+partnerkey=8a90e3ab0e2db7772f5f64e7ed2f4b98
 # wechat-machine-id		test
 productId=29439
 # wechat-machine-id		watero
@@ -178,7 +178,7 @@ productId=29439
 # charset
 charset=UTF-8
 # partner
-partner=1321590501
+partner=1490237892
 # keystore_password
 KEYSTORE_PASSWORD=124022090
 # keystore_file

+ 5 - 5
tooth-wechat-web/src/main/resources/wx_public_no.properties

@@ -1,10 +1,10 @@
 #ÉϺ£tooth²âÊÔ
-pubNo = gh_c73446c8ce91
-appId = wxc71b789fad06a2d7
+pubNo = gh_cdd0a86d3b19
+appId = wxdb090f0af89e0be3
 token = weixin
-appSecret = 8a90e3ab0e2db7772f5f64e7ed2f4b98
-partner = 1321590501
-partnerkey=cdb9075e7ecad945ba788bc5aedM212B
+appSecret = 518114a120274f625530750c1803921b
+partner = 1490237892
+partnerkey=8a90e3ab0e2db7772f5f64e7ed2f4b98
 charset=UTF-8
 KEYSTORE_FILE=E:/apiclient_cert.p12
 KEYSTORE_PASSWORD=1240220902

+ 2 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/addAgentConfig.jsp

@@ -174,6 +174,8 @@
             success:  function(dt){
                 if (dt.status) {
                     window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/select_agent_config_list'
+                } else {
+                    layer.alert(dt.message, {icon: 5});
                 }
             }
         });

+ 136 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/addAgentInfo.jsp

@@ -0,0 +1,136 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+		 pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<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,member-scalable=no" />
+	<meta http-equiv="Cache-Control" content="no-siteapp" />
+	<!--[if lt IE 9]>
+	<script type="text/javascript" src="lib/html5.js"></script>
+	<script type="text/javascript" src="lib/respond.min.js"></script>
+	<script type="text/javascript" src="lib/PIE_IE678.js"></script>
+	<![endif]-->
+	<link href="${pageContext.request.contextPath }/common/admin/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/css/H-ui.admin.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/lib/icheck/icheck.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/lib/Hui-iconfont/1.0.1/iconfont.css" rel="stylesheet" type="text/css" />
+	<!--[if IE 6]>
+	<script type="text/javascript" src="http://lib.h-ui.net/DD_belatedPNG_0.0.8a-min.js" ></script>
+	<script>DD_belatedPNG.fix('*');</script>
+	<![endif]-->
+	<title>添加代理商</title>
+</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 btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
+<div class="pd-20">
+	<form method="post" class="form form-horizontal" id="form-agent-add">
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商姓名:</label>
+			<div class="formControls col-2">
+				<input id="agentName" name="agentName" type="text" class="input-text" style="width:90%" placeholder="">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商地址:</label>
+			<div class="formControls col-2">
+				<input id="agentAaddr" type="text" name="agentAddr" placeholder="" value="" class="input-text" style="width:90%">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商电话:</label>
+			<div class="formControls col-2">
+				<input id="agentTel" type="text" name="agentTel" placeholder="" value="" class="input-text" style="width:90%">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label  class="form-label col-2"><span class="c-red">*</span>角色名称:</label>
+			<div  class="formControls col-2">
+			<span class="select-box">
+			<select id="agentRoleId" name="agentRoleId" class="select">
+				<c:if test="${! (empty roleInfoList) }">
+					<c:forEach items="${roleInfoList }" var="list">
+							<option value="${list.roleId}">${list.roleName}</option>
+					</c:forEach>
+				</c:if>
+			</select>
+			</span>
+			</div>
+		</div>
+		<div class="row cl">
+			<label class="form-label col-3"><span class="c-red">*</span>代理商状态:</label>
+			<div class="formControls col-5 skin-minimal">
+				<div class="radio-box">
+					<input type="radio" value="1" id="sex-1" checked="checked" name="agentStatus" datatype="*" nullmsg="请选择代理商状态!">
+					<label for="sex-1">正在使用</label>
+				</div>
+				<div class="radio-box">
+					<input type="radio" value="2" id="sex-2" name="agentStatus">
+					<label for="sex-2">停止使用</label>
+				</div>
+			</div>
+			<div class="col-4"> </div>
+		</div>
+		<div class="row cl">
+			<div class="col-9 col-offset-3">
+				<input class="btn btn-primary radius" onclick="checkForm()" type="button" id="submitBtn" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
+			</div>
+		</div>
+	</form>
+</div>
+</div>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/jquery/1.9.1/jquery.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/icheck/jquery.icheck.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/Validform/5.3.2/Validform.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/layer/1.9.3/layer.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/tips.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/My97DatePicker/WdatePicker.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.admin.js"></script>
+<script type="text/javascript">
+
+    function checkForm(){
+        //名称验证
+        if(!commonTypeJdg('agentName',null,null,true)){
+            layer.msg("代理商名称不能为空",{icon: 2,time:2000});
+            return;
+        }
+        if(!commonLengthJdg('agentAaddr',1,50,null,true)){
+            layer.msg("代理商地址不能为空长度为1-50位",{icon: 2,time:2000});
+            return;
+        }
+        //代理商号码
+        if(!commonTypeJdg('agentTel','mobile',null,true)){
+            layer.msg("代理商号码不能为空!且须为手机号码格式",{icon: 2,time:2000});
+            return;
+        }
+        $.ajax({
+            url: '${pageContext.request.contextPath }/admin/agentTooth/add_agentInfo',
+            type: "POST",
+            dataType: "json",
+            data: $("#form-agent-add").serialize(),
+            error:function(data){
+                layer.msg("添加失败</br>",{icon: 5,time:2000});
+            },
+            success:  function(data){
+                if (data.status) {
+                    layer.msg("添加成功</br>",{icon: 1,time:2000},function() {
+                        window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/select_agentInfo_list';
+                    });
+
+                } else {
+                    layer.msg("添加失败</br>",{icon: 5,time:2000});
+                }
+            }
+        });
+    }
+
+</script>
+</body>
+</html>

+ 1 - 1
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentConfigList.jsp

@@ -138,7 +138,7 @@
                             }
                             $('#config_status').html(message);
                         } else {
-                            layer.msg("修改失败</br>",{icon: 5,time:2000});
+                            layer.alert(data.message, {icon: 5});
                         }
                     }
                 });

+ 168 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentInfoList.jsp

@@ -0,0 +1,168 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<!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" />
+    <!--[if lt IE 9]>
+    <script type="text/javascript" src="lib/html5.js"></script>
+    <script type="text/javascript" src="lib/respond.min.js"></script>
+    <script type="text/javascript" src="lib/PIE_IE678.js"></script>
+    <![endif]-->
+    <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.admin.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/skin/default/skin.css" rel="stylesheet" type="text/css" id="skin" />
+    <link href="${pageContext.request.contextPath }/common/admin/lib/Hui-iconfont/1.0.1/iconfont.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/css/style.css" rel="stylesheet" type="text/css" />
+
+    <!--[if IE 6]>
+    <script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js" ></script>
+    <script>DD_belatedPNG.fix('*');</script>
+    <![endif]-->
+    <title>代理商列表</title>
+</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 btn-success radius r mr-20"
+        style="line-height: 1.6em; margin-top: 3px"
+        href="javascript:location.replace(location.href);" title="刷新"><i
+        class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="pd-20">
+    <div class="cl pd-5 bg-1 bk-gray mt-20">
+        <form action="${pageContext.request.contextPath }/admin/agentTooth/select_agentInfo_list" method="post" id="searchForm">
+            <div class="text-c">
+                <button type="button" style="float:left;" class="btn btn-success radius" onclick="add_Agent();" id="addAgent" name=""><i class="Hui-iconfont">&#xe665;</i> 添加代理商</button>
+                <select name="agentStatus" style="height: 30px;">
+                    <option value="">线下状态</option>
+                    <option <c:if test="${agentStatus == 1}">selected = "selected"</c:if> value="1">正在使用</option>
+                    <option <c:if test="${agentStatus == 2}">selected = "selected"</c:if> value="2">停止使用</option>
+                  </select>
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入代理商姓名" value="${agentName}" name="agentName">
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入代理商电话" value="${agentTel}" name="agentTel">
+               <button type="submit" class="btn btn-success radius" id="searchButton" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
+            </div>
+        </form>
+    </div>
+    <form id="configform" >
+        <table class="table table-border table-bordered table-bg" id="example">
+            <thead>
+            <tr>
+                <th scope="col" colspan="11">代理商列表</th>
+            </tr>
+            <tr class="text-c">
+                <th width="100">名称</th>
+                <th width="100">地址</th>
+                <th width="100">电话</th>
+                <th width="100">线下状态</th>
+                <th width="100">创建时间</th>
+                <th width="100">操作</th>
+            </tr>
+            </thead>
+            <tbody>
+            <c:if test="${! (empty agentToothList) }">
+            <c:forEach items="${agentToothList }" var="list">
+            <tr class="text-c">
+                <td>${list.agentName }</td>
+                <td>${list.agentAddr }</td>
+                <td>${fn:substring(list.agentTel,0,3)}****${fn:substring(list.agentTel,7,11)}</td>
+                <td>
+                    <c:if test="${list.agentStatus == 1}">
+                        正在使用
+                    </c:if>
+                    <c:if test="${list.agentStatus == 2}">
+                        停止使用
+                    </c:if>
+                </td>
+                <td><fmt:formatDate value="${list.agentCreateDate }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+                <td class="td-manage">
+                    <div id="config_status">
+                        <c:if test="${list.agentStatus == 2}">
+                            <a onclick="updateagentState('${list.agentId }','1')"
+                               title="修改状态" href="javascript:;"  class="ml-5" style="text-decoration:none">修改为正在使用</a>
+                        </c:if>
+                        <c:if test="${list.agentStatus == 1}">
+                            <a onclick="updateagentState('${list.agentId }','2')"
+                                                                 title="修改状态" href="javascript:;"  class="ml-5" style="text-decoration:none">修改为停用</a>
+            </c:if>
+        </div>
+
+        <a onclick="updateAgent('${list.agentId}')"
+           title="修改" href="javascript:;"  class="ml-5" style="text-decoration:none">修改代理商信息</a>
+        </td>
+        </c:forEach>
+        </c:if>
+        </tbody>
+        </table>
+        <div align="right" class="mt-10 mb-10 mr-10">
+            <%@include file="/common/other/paper/pager.jsp"%>
+        </div>
+    </form>
+</div>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/jquery/1.9.1/jquery.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/layer/1.9.3/layer.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.admin.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/tips.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/My97DatePicker/WdatePicker.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/js/page/jqPaginator.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/goods/js/utils.js"></script>
+<script type="text/javascript">
+    function updateagentState(id,state){
+        layer.confirm('确认要修改状态吗?',function(index){
+                $.ajax({
+                    url: '${pageContext.request.contextPath }/admin/agentTooth/update_agentInfo',
+                    type: "POST",
+                    dataType: "json",
+                    data: {agentId : id,agentStatus : state},
+                    error:function(data){
+                        layer.msg("修改失败</br>",{icon: 5,time:2000});
+                    },
+                    success:  function(data){
+                        if (data.status) {
+                            layer.msg("修改成功</br>",{icon: 1,time:2000});
+                            location.replace(location.href);
+                            /*var message = '';
+                            switch (state) {
+                                case "1":
+                                    message = '<a onclick="updateagentState('+id+',2)" title="修改状态" href="javascript:;"  class="ml-5" style="text-decoration:none">修改为停止使用</a>';
+                                    break;
+                                case "2":
+                                    message = '<a onclick="updateagentState('+id+',1)" title="修改状态" href="javascript:;"  class="ml-5" style="text-decoration:none">修改为正在使用</a>';
+                                    break;
+                            }*/
+                           /* $('#config_status').html(message);*/
+                        } else {
+                            layer.msg("修改失败</br>",{icon: 5,time:2000});
+                        }
+                    }
+                });
+            }, function () {
+                window.location.reload(location.href);
+            }
+        );
+
+    }
+
+    function updateAgent(id){
+        window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/_update_agentInfo?agentId='+id;
+    }
+    function add_Agent(){
+        window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/_add_agentInfo';
+    }
+</script>
+</body>
+</html>

+ 306 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/agentOrderList.jsp

@@ -0,0 +1,306 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
+<!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" />
+    <!--[if lt IE 9]>
+    <script type="text/javascript" src="lib/html5.js"></script>
+    <script type="text/javascript" src="lib/respond.min.js"></script>
+    <script type="text/javascript" src="lib/PIE_IE678.js"></script>
+    <![endif]-->
+    <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/css/H-ui.admin.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/skin/default/skin.css" rel="stylesheet" type="text/css" id="skin" />
+    <link href="${pageContext.request.contextPath }/common/admin/lib/Hui-iconfont/1.0.1/iconfont.css" rel="stylesheet" type="text/css" />
+    <link href="${pageContext.request.contextPath }/common/admin/css/style.css" rel="stylesheet" type="text/css" />
+
+    <!--[if IE 6]>
+    <script type="text/javascript" src="lib/DD_belatedPNG_0.0.8a-min.js" ></script>
+    <script>DD_belatedPNG.fix('*');</script>
+    <![endif]-->
+    <title>产品列表</title>
+</head>
+<body>
+<!-- 后台备注 -->
+<div class="layui-layer layui-anim layui-layer-iframe" id="layui-address" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 400px; height: 260px; position: absolute; top: 100px; left: 379px;">
+    <form action="" method="post" class="form form-horizontal" id="form-admin-remark">
+        <div class="layui-layer-title" id="sendOrderNote" style="cursor: move;" move="ok">订单备注</div>
+        <div class="row cl">
+            <label class="form-label col-3"><span class="c-red">*</span>&nbsp;&nbsp;物流公司:</label>
+            <div class="formControls col-5">
+                <span id="postFirm" name="postFirm"></span>
+            </div>
+            <div class="col-4"> </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-3"><span class="c-red">*</span>&nbsp;&nbsp;物流单号:</label>
+            <div class="formControls col-5">
+                <span id="postNum" name="postNum"></span>
+            </div>
+            <div class="col-4"> </div>
+        </div>
+        <div class="row cl">
+            <label class="form-label col-3"><span class="c-red">*</span>&nbsp;&nbsp;收货地址:</label>
+            <div class="formControls col-5">
+                <span id="addressInfo" name="addressInfo"></span>
+            </div>
+            <div class="col-4"> </div>
+        </div>
+        <br/>
+        <div class="col-9 col-offset-3">
+            <input class="btn btn-primary radius" type="button" onclick="close_address()" value="&nbsp;&nbsp;关闭&nbsp;&nbsp;">
+        </div>
+    </form>
+    <span class="layui-layer-setwin">
+			<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="exitWindowsDiv(this)" href="javascript:;"></a>
+		</span>
+</div>
+<!-- 同步订单状态 -->
+<div class="layui-layer layui-anim layui-layer-iframe" id="layui-SynOrder" times="4" showtime="0" contype="string" style="display:none;z-index: 19891018; width: 400px; height: 260px; position: absolute; top: 100px; left: 379px;">
+    <form action="" method="post" class="form form-horizontal" id="form-admin-SynOrder">
+        <div class="layui-layer-title" id="synOrder" style="cursor: move;" move="ok">同步订单状态</div>
+        <br>
+        <div class="row cl">
+            <label class="form-label col-3"><span class="c-red">*</span>&nbsp;订单编号:</label>
+            <div class="formControls col-5">
+                <input type="hidden" id="url">
+                <input type="text" id="efastOrderId" class="input-text" value="" placeholder="请输入百胜订单号" name="postNum" datatype="*2-20" nullmsg="订单编号不能为空">
+            </div>
+            <div class="col-4"> </div>
+        </div>
+        <div class="row cl">
+            <div class="formControls col-8">&nbsp;&nbsp;&nbsp;<span class="c-red" id="msge"></span></div>
+        </div>
+        <br>
+        <div class="col-9 col-offset-3">
+            <input class="btn btn-primary radius" onclick="return submitSynOrder()" type="button" value="&nbsp;&nbsp;同步&nbsp;&nbsp;">
+        </div>
+    </form>
+    <span class="layui-layer-setwin">
+				<a class="layui-layer-ico layui-layer-close layui-layer-close1" onclick="exitWindowsDiv(this)" href="javascript:;"></a>
+		</span>
+</div>
+<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 btn-success radius r mr-20"
+        style="line-height: 1.6em; margin-top: 3px"
+        href="javascript:location.replace(location.href);" title="刷新"><i
+        class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<div class="pd-20">
+    <div class="cl pd-5 bg-1 bk-gray mt-20">
+        <form action="${pageContext.request.contextPath }/admin/agentTooth/select_agent_order_list" method="post" id="searchForm">
+            <div class="text-c">
+                <select name="agentStatus" style="height: 30px;">
+                    <option value="">订单状态</option>
+                    <option <c:if test="${agentStatus == 0}">selected = "selected"</c:if> value="0">取消订单</option>
+                    <option <c:if test="${agentStatus == 1}">selected = "selected"</c:if> value="1">待支付</option>
+                    <option <c:if test="${agentStatus == 2}">selected = "selected"</c:if> value="2">已支付、待发货</option>
+                    <option <c:if test="${agentStatus == 5}">selected = "selected"</c:if> value="5">已发货</option>
+                </select>
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入代理商姓名" value="${agentName}" name="agentName">
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入代理商电话" value="${agentTel}" name="agentTel">
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入收货人名称" value="${agentAddressName}" name="agentAddressName">
+                <input type="text" class="input-text" style="width:130px" placeholder="请输入收货人电话" value="${agentAddressTel}" name="agentAddressTel">
+                <input type="text" placeholder="开始日期" readonly="readonly" onfocus="WdatePicker({maxDate:'#F{$dp.$D(\'endDate\')||\'2020-10-01\'}'})" id="beginDate" value="${beginDate }" name="beginDate" class="input-text Wdate" style="width: 120px;">
+                - <input type="text" placeholder="结束日期" readonly="readonly" onfocus="WdatePicker({minDate:'#F{$dp.$D(\'beginDate\')}',maxDate:'2020-10-01'})" id="endDate" value="${endDate }" name="endDate" class="input-text Wdate" style="width: 120px;">
+                <button type="submit" class="btn btn-success radius" id="searchButton" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>
+            </div>
+        </form>
+    </div>
+    <form id="configform" >
+        <table class="table table-border table-bordered table-bg" id="example">
+            <thead>
+            <tr>
+                <th scope="col" colspan="11">代理商采购订单列表</th>
+            </tr>
+            <tr class="text-c">
+                <th width="100">订单状态</th>
+                <th width="100">代理商姓名</th>
+                <th width="100">代理商电话</th>
+                <th width="100">收货人姓名</th>
+                <th width="100">收货人电话</th>
+                <th width="90">订单金额(元)</th>
+                <th width="90">支付金额(元)</th>
+                <th width="130">采购数量</th>
+                <th width="130">采购日期</th>
+                <th width="130">订单备注</th>
+                <th width="100">操作</th>
+            </tr>
+            </thead>
+            <tbody>
+            <c:if test="${! (empty agentOrderList) }">
+            <c:forEach items="${agentOrderList }" var="order">
+            <tr class="text-c">
+                <input type="hidden" value="${order.agentOrderid }" id="agentOrderid" name="agentOrderid">
+                <td>
+                    <c:if test="${order.agentStatus == 0}">
+                        取消订单
+                    </c:if>
+                    <c:if test="${order.agentStatus == 1}">
+                        待支付
+                    </c:if>
+                    <c:if test="${order.agentStatus == 2}">
+                        已支付、待发货
+                    </c:if>
+                    <c:if test="${order.agentStatus == 5}">
+                        已发货
+                    </c:if>
+                </td>
+                <td>${order.agentName }</td>
+                <td>${fn:substring(order.agentTel,0,3)}****${fn:substring(order.agentTel,7,11)}</td>
+                <td>${order.agentAddressName }</td>
+                <td>${fn:substring(order.agentAddressTel,0,3)}****${fn:substring(order.agentAddressTel,7,11)}</td>
+                <td>${order.agentAmount==null?"":order.agentAmount/100 }</td>
+                <td>${order.agentYetAmount==null?"":order.agentYetAmount/100 }</td>
+                <td>
+                    <c:if test="${! (empty order.itemList) }">
+                        <c:forEach items="${order.itemList }" var="item">
+                            ${item.itemProductName}(${item.itemColorName})*${item.itemNum},
+                        </c:forEach>
+                    </c:if>
+                </td>
+                <td><fmt:formatDate value="${order.agentCreateDate }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+                <td>${order.agentAdminRemark }</td>
+                <td class="td-manage">
+                    <a onclick="show_address('${order.agentAddressInfo }','${order.agentPostNum }','${order.agentPostFirm }')"
+                       title="查看收货地址" href="javascript:;"  class="ml-5" style="text-decoration:none">查看收货地址</a>
+                    <a onclick="getEfastStatus('${order.agentOrderid}')"
+                       title="同步物流信息" href="javascript:;"  class="ml-5" style="text-decoration:none">同步物流信息</a>
+                </td>
+                </c:forEach>
+                </c:if>
+            </tbody>
+        </table>
+        <div align="right" class="mt-10 mb-10 mr-10">
+            <%@include file="/common/other/paper/pager.jsp"%>
+        </div>
+    </form>
+</div>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/jquery/1.9.1/jquery.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/layer/1.9.3/layer.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.admin.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/tips.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/My97DatePicker/WdatePicker.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/js/page/jqPaginator.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/goods/js/utils.js"></script>
+<script type="text/javascript">
+    function updateGiftState(_this,id){
+        var obj = $(_this);
+        layer.confirm('确认要修改状态吗?',function(index){
+                $.ajax({
+                    url: '${pageContext.request.contextPath }/admin/agentTooth/update_agent_config_status',
+                    type: "POST",
+                    dataType: "json",
+                    data: {configId : id,configStatus : obj.val()},
+                    error:function(data){
+                        layer.msg("修改失败</br>",{icon: 5,time:2000});
+                    },
+                    success:  function(data){
+                        if (data.status) {
+                            layer.msg("修改成功</br>",{icon: 1,time:2000});
+                            var message = '';
+                            switch (obj.val()) {
+                                case "1":
+                                    message = '启用';
+                                    break;
+                                case "2":
+                                    message = '停用';
+                                    break;
+                            }
+                            $('#config_status').html(message);
+                        } else {
+                            layer.msg("修改失败</br>",{icon: 5,time:2000});
+                        }
+                    }
+                });
+            }, function () {
+                window.location.reload(location.href);
+            }
+        );
+
+    }
+    /**
+     * 打开修改商品界面
+     */
+    function config_edit(url){
+        window.location.href = url;
+    }
+
+    //显示物流信息
+    function show_address(addressInfo,postNum,postFirm) {
+        if (addressInfo == null || addressInfo == '') {
+            $('#addressInfo').html('暂无');
+        } else {
+            $('#addressInfo').html(addressInfo);
+        }
+        if (postNum == null || postNum == '') {
+            $('#postNum').html('暂无');
+        } else {
+            $('#postNum').html(postNum);
+        }
+        if (postNum == null || postNum == '') {
+            $('#postFirm').html('暂无');
+        } else {
+            $('#postFirm').html(postFirm);
+        }
+        $('#layui-address').show();
+    }
+
+    //隐藏物流信息
+    function close_address() {
+        $('#layui-address').hide();
+    }
+
+    //显示同步订单弹出框
+    function getEfastStatus(orderId){
+        $('#url').val('${pageContext.request.contextPath }/admin/agentTooth/sync_efast_order/' + orderId);
+        $('#layui-SynOrder').show();
+    }
+
+    /**
+     * 同步订单状态
+     */
+    function submitSynOrder(){
+        var url = $('#url').val();
+        var efastOrderId = $("#efastOrderId").val();
+        if(efastOrderId == null || efastOrderId == ""){
+            $("#msge").html("请输入百胜订单号!");
+            return false;
+        }
+        $.ajax({
+            type:'POST',
+            url: url,
+            data:{
+                efastOrderId : efastOrderId
+            },
+            dataType: 'json',
+            success:function(res) {
+                debugger;
+                if(res.resultCode == 200){
+                    $("#msge").html("同步成功");
+                    location.reload();
+                }else{
+                    $("#msge").html(res.message);
+                }
+                return false;
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 2 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/updateAgentConfig.jsp

@@ -199,6 +199,8 @@
             success:  function(dt){
                 if (dt.status) {
                     window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/select_agent_config_list'
+                } else {
+                    layer.alert(dt.message, {icon: 5});
                 }
             }
         });

+ 140 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/agentInfo/updateAgentInfo.jsp

@@ -0,0 +1,140 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+		 pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<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,member-scalable=no" />
+	<meta http-equiv="Cache-Control" content="no-siteapp" />
+	<!--[if lt IE 9]>
+	<script type="text/javascript" src="lib/html5.js"></script>
+	<script type="text/javascript" src="lib/respond.min.js"></script>
+	<script type="text/javascript" src="lib/PIE_IE678.js"></script>
+	<![endif]-->
+	<link href="${pageContext.request.contextPath }/common/admin/css/H-ui.min.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/css/H-ui.admin.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/lib/icheck/icheck.css" rel="stylesheet" type="text/css" />
+	<link href="${pageContext.request.contextPath }/common/admin/lib/Hui-iconfont/1.0.1/iconfont.css" rel="stylesheet" type="text/css" />
+	<!--[if IE 6]>
+	<script type="text/javascript" src="http://lib.h-ui.net/DD_belatedPNG_0.0.8a-min.js" ></script>
+	<script>DD_belatedPNG.fix('*');</script>
+	<![endif]-->
+	<title>修改代理商</title>
+</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 btn-success radius r mr-20" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
+<div class="pd-20">
+	<form method="post" class="form form-horizontal" id="form-agent-add">
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商姓名:</label>
+			<div class="formControls col-2">
+				<input id="agentName" name="agentName" value="${agentTooth.agentName}" type="text" class="input-text" style="width:90%" placeholder="">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商地址:</label>
+			<div class="formControls col-2">
+				<input id="agentAaddr" type="text" name="agentAddr" value="${agentTooth.agentAddr}" placeholder="" value="" class="input-text" style="width:90%">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label class="form-label col-2"><span class="c-red">*</span>代理商电话:</label>
+			<div class="formControls col-2">
+				<input id="agentTel" type="text" name="agentTel" value="${agentTooth.agentTel}" placeholder="" class="input-text" style="width:90%">
+			</div>
+		</div>
+
+		<div class="row cl">
+			<label  class="form-label col-2"><span class="c-red">*</span>角色名称:</label>
+			<div  class="formControls col-2">
+			<span class="select-box">
+			<select id="agentRoleId" name="agentRoleId" class="select">
+				<c:if test="${! (empty roleInfoList) }">
+					<c:forEach items="${roleInfoList }" var="list">
+						<option  <c:if test="${agentTooth.agentRoleId == list.roleId}">selected = "selected"</c:if> value="${list.roleId}">${list.roleName}</option>
+					</c:forEach>
+				</c:if>
+			</select>
+			</span>
+			</div>
+		</div>
+		<div class="row cl">
+			<label class="form-label col-3"><span class="c-red">*</span>代理商状态:</label>
+			<div class="formControls col-5 skin-minimal">
+				<div class="radio-box">
+					<input type="radio" value="1" id="sex-1" <c:if test="${agentTooth.agentStatus == 1}">checked="checked"</c:if> name="agentStatus" datatype="*" nullmsg="请选择代理商状态!">
+					<label for="sex-1">正在使用</label>
+				</div>
+				<div class="radio-box">
+					<input type="radio" value="2" id="sex-2" <c:if test="${agentTooth.agentStatus == 2}">checked="checked"</c:if> name="agentStatus">
+					<label for="sex-2">停止使用</label>
+				</div>
+			</div>
+			<div class="col-4"> </div>
+		</div>
+		<div class="row cl">
+			<div class="col-9 col-offset-3">
+                <input type="hidden" value="${agentTooth.agentId}" name="agentId">
+				<input class="btn btn-primary radius" onclick="checkForm()" type="button" id="submitBtn" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
+			</div>
+		</div>
+	</form>
+</div>
+</div>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/jquery/1.9.1/jquery.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/icheck/jquery.icheck.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/Validform/5.3.2/Validform.min.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/layer/1.9.3/layer.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/tips.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/lib/My97DatePicker/WdatePicker.js"></script>
+<script type="text/javascript" src="${pageContext.request.contextPath }/common/admin/js/H-ui.admin.js"></script>
+<script type="text/javascript">
+    $(function(){
+
+    });
+
+    function checkForm(){
+        //名称验证
+        if(!commonTypeJdg('agentName',null,null,true)){
+            layer.msg("代理商名称不能为空",{icon: 2,time:2000});
+            return;
+        }
+        if(!commonLengthJdg('agentAaddr',1,50,null,true)){
+            layer.msg("代理商地址不能为空长度为1-50位",{icon: 2,time:2000});
+            return;
+        }
+        //代理商号码
+        if(!commonTypeJdg('agentTel','mobile',null,true)){
+            layer.msg("代理商号码不能为空!且须为手机号码格式",{icon: 2,time:2000});
+            return;
+        }
+
+        $.ajax({
+            url: '${pageContext.request.contextPath }/admin/agentTooth/update_agentInfo',
+            type: "POST",
+            dataType: "json",
+            data: $("#form-agent-add").serialize(),
+            error:function(data){
+                layer.msg("修改失败</br>",{icon: 5,time:2000});
+            },
+            success:  function(data){
+                if (data.status) {
+                    layer.msg("修改成功</br>",{icon: 1,time:2000},function() {
+                        window.location.href = '${pageContext.request.contextPath }/admin/agentTooth/select_agentInfo_list';
+                    });
+                } else {
+                    layer.msg("修改失败</br>",{icon: 5,time:2000});
+                }
+            }
+        });
+    }
+
+</script>
+</body>
+</html>

+ 2 - 2
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/coupon/addCouponType.jsp

@@ -131,7 +131,7 @@
 	<div class="row cl">
 		<label class="form-label col-2"><strong>【其他】</strong></label>
 	</div>
-		
+
 	<div class="row cl">
 		<label class="form-label col-2"><span class="c-red">*</span>是否允许赠送别人:</label>
 		<div  class="formControls col-2">
@@ -150,7 +150,7 @@
 			<textarea id="couponRemark" name="couponRemark" class="textarea-text" placeholder="" style="width:200px;height:60px;"></textarea>
 		</div>
 	</div>
-		
+
     <div class="row cl">
       <div class="col-9 col-offset-3">
         <input class="btn btn-primary radius" onclick="return checkForm()" type="submit" id="submitBtn" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">

+ 303 - 0
tooth-wechat-web/src/main/webapp/view/agent_tooth/activate_agent_id.html

@@ -0,0 +1,303 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>激活代理商身份</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/tooth/css/mui.min.css?v=2017101701" />
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/tooth/css/iconfont.css?v=2017101701" />
+		<link rel="stylesheet" type="text/css" href="//css.iamberry.com/tooth/css/style.css?v=2017101701" />
+		<style>
+		.vip-tt {position: relative;width:100%;height:120px;background:#36a4c6;text-align: center;}
+		.vip-tt>img {width: 100%;}
+		.tx {position: absolute;left:50%;top:10%;width: 4.5em;height: 4.5em;display: inline-block;-webkit-transform: translateX(-50%);transform: translateX(-50%);border-radius: 50%;background-color: #73b7d8;}
+		.tx>img {width: 100%;border-radius: 50%;}
+		.nikname {position: absolute;left:0;width:100%;top: 80%;color: #fff;line-height: 1.5;text-align: center;}
+		.nikname>div{padding:3px 0;}
+		.nikname>div:first-child{position: relative;width: 100%;overflow: hidden;text-overflow: ellipsis;}
+		.mui-table-view-chevron .mui-badge{display:none;}
+		.btn_share{background: #fff;border-radius:6px;padding:3px 10px;float: right;margin-right: 10px;color: #e9004c;font-size: 13px;}
+		.head {height: 60px;}
+		#head {line-height: 60px;}
+		h3{margin-top:5px;margin-bottom: 0;}
+		.btn-pull-code{position: absolute;right: 10px;top:7px;height:34px;padding:0 6px;border-radius: 5px; line-height: 34px;font-size: 12px; color: #fff; background: #24cae9;}
+		.btn-pull-code .active{background: #c8c8c8;}
+		.icon-fuxuankuang a{color: #24cae9;}
+		.icon-yanse,.icon-youhui,.icon-fuxuankuang,.icon-jiage,.icon-songhuo{font-size: 15px;padding-left: 22px;}
+		.icon-yanse:before,.icon-fuxuankuang:before,.icon-youhui:before,.icon-jiage:before,.icon-songhuo:before{font-size: 18px;color: #24cae9;position: absolute;left: 0;width: 20px;height: 18px;}
+		.try_price{color: #f1436c;}
+		.head-img {position: absolute;bottom: 15px;right: 13px;width: 60px;height: 60px;border-radius: 30px;border: 3px solid #E5E5E5;}
+		.mui-table-view .mui-media .mui-media-body{height: 41px;line-height: 41px;color: #333;}
+		.mui-table-view .mui-media .mui-media-body>span{color: #f1436c;}
+		.my-table-view-try{border-top: .6em solid #f0f0f0;border-bottom: .6em solid #f0f0f0;padding-bottom: 10px;}
+		.my-table-view-try .mui-table-view-cell{padding:10px 13px 10px 30px !important;font-size: 12px;}
+		.mui-table-view-cell:after,.mui-table-view:before,.mui-table-view:after,.mui-input-group .mui-input-row:after,.mui-input-group:before,.mui-input-group:after{display: none;}
+		.mui-table-view-cell>a:not(.mui-btn){color: #666;margin: -15px -15px;}
+		.mui-table-view-cell>a .mui-pull-right{color: #999;font-size: 14px;}
+		#btn_submit {  color: #fff;  padding: 10px 20px;  font-size: 18px;  background: #24cae9;  width: 60%;  margin: 0 auto;  display: block;border:0; }
+		.mui-btn-block.mui-active,.btn-pull-code.mui-active{background-color: #c8c8c8 !important;}
+			.icon-fuxuankuang.mui-active:before{color: #c8c8c8;}
+			.mui-content-padded{margin: 10px 13px;}
+			.tips{padding: 20px 10px;background: #24cae9;text-align: center;color: #fff;}
+			.mui-input-group .mui-input-row {height: 50px;padding: 5px 0;border: 1px solid rgba(0,0,0,.1); margin:10px 0;}
+			.mui-input-row label{color: #666;width:27%;font-size: 15px;}
+			.mui-input-row label~input{width:73%;}
+			.mui-input-row label~input::-webkit-input-placeholder{font-size: 15px;}
+			.triangle-down {width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;}
+			.my-arrowright{position: absolute;right: 18px;top: 28px;color: #666;pointer-events:none;}
+			.mui-btn-red{background-color: #e9004c;}
+			.mui-input-group{padding:0 10px;}
+		</style>
+        <script type="text/javascript">
+            // 屏蔽分享
+            window.hiddenAllWechatMenu = true;
+        </script>
+	</head>
+	<body style="background: #fff;">
+	<div class="loading-bg">
+			<div class="mui-loading">
+				<div class="mui-spinner">
+				</div>
+				&nbsp;&nbsp;加载中...
+			</div>
+	</div>
+
+					<div class="mui-content" style="background: #fff;">
+						<div class="vip-tt">
+				<div class="tx bg-orange" id="headDiv">
+					<!--<img src="images/image-12.jpg" id="userHead">-->
+				</div>
+				<div class="nikname">
+						<span id="userNickname">微信昵称</span>
+				</div>
+			</div>
+
+				<form class="mui-input-group">
+					<div class="mui-input-row">
+						<label>手机号码</label>
+						<input type="tel" maxlength="11" class="mui-input-clear" placeholder="请填写您提交给上朵商务的号码" id="ipt-phone">
+					</div>
+					<div class="mui-input-row">
+						<label>验&nbsp;证&nbsp;码</label>
+						<input type="text" maxlength="4" placeholder="请填写收到的验证码" id="ipt-code">
+						<span class="btn-pull-code" id="pull-code">获取验证码</span>
+					</div>
+				</form>
+				<div style="color: #f00;font-size: 12px;padding: 0 10px;">提示:如有疑问请联系微信客服或拨打电话400-8006692</div>
+				<div class="mui-content-padded">
+					<button type="button" data-loading-icon="mui-spinner mui-spinner-custom" data-loading-text="提交中" class="mui-btn mui-btn-block mui-btn-outlined mui-active" id="btn_submit" disabled="disabled">提交</button>
+				</div>
+			</div>
+
+	<script src="//s.iamberry.com/tooth/js/mui.min.js?v=2017101701"></script>
+	<script src="//s.iamberry.com/tooth/js/jquery-2.1.1.min.js"></script>
+	<script src="//s.iamberry.com/tooth/js/shop/main.js?v=2017101701"></script>
+	<script src="//s.iamberry.com/tooth/js/shop/wechat-utils-1.0.js"></script>
+<script type="text/javascript">
+
+	var check = false,alert_msg='';
+	var mobile=/^(13|14|15|18)[0-9]{9}$/; //手机号码
+	var uname = /^[\u4e00-\u9fa5]{1,12}$/; //中文英文
+	var code = /^[0-9]{4}$/; //数字
+	mui.ready(function(){
+        mui.ajax(base_path + '/agentTooth/select_agent_info?dates=' + new Date().getTime(), {
+            data: {},
+            dataType: 'json',
+            type: 'post',
+            timeout: 15000,
+            success: function(dt) {
+                console.log(dt)
+                if(dt.isRedirect) {
+                    location.href = dt.redirectURL;
+                }else{
+                    if(dt.resultCode=="200"){
+                        console.log("获取代理商信息成功!");
+                        $("#headDiv").html('<img src="'+dt.data.userHead+'">');
+                        $("#userNickname").text(decodeURI(dt.data.userNickname));
+                    }else{
+                        mui.alert("短信发送失败!")
+                    }
+                }
+            },
+            error: function(xhr, type, errorThrown) {
+                console.log(xhr);
+            }
+        });
+		document.querySelector('.loading-bg').style.display='none';
+	});
+$(document).on('tap', '#pull-code', function() {
+	if($("#ipt-phone").val().trim()=="" &&(!$("#pull-code").hasClass("mui-active"))){
+		mui.alert("请填写手机号码");
+		return;
+	}else{
+		if(!mobile.test($("#ipt-phone").val().trim())){
+			mui.alert("手机号码不正确,请重新填写");
+			return;
+		}else{
+			if($(this).hasClass("mui-active")){
+				mui.alert();
+				return;
+			}else{
+				$(this).addClass("mui-active");
+				settime("pull-code");
+                mui.ajax(base_path + '/qrcode/send_phone_code?dates=' + new Date().getTime(), {
+                    data: {
+                        phone: $("#ipt-phone").val()
+                    },
+                    dataType: 'json',
+                    type: 'post',
+                    timeout: 15000,
+                    success: function(dt) {
+                        console.log(dt)
+                        if(dt.isRedirect) {
+                            /*location.href = dt.redirectURL;*/
+                        }else{
+						if(dt.resultCode=="200"){
+                            console.log("获取短信成功!");
+                            $("#btn-submit").removeAttr("disabled").addClass("active");
+						}else{
+						    mui.alert("短信发送失败!")
+						}
+                        }
+                    },
+                    error: function(xhr, type, errorThrown) {
+                        console.log(xhr);
+                    }
+                });
+			}
+		}
+	}
+});
+var countdown=60; 
+function settime(val) { 
+pullid=dc(val);
+if (countdown == 0) { 
+pullid.removeAttribute("disabled");
+pullid.className='btn-pull-code';
+pullid.innerText="获取验证码"; 
+countdown = 60; 
+return false;
+} else { 
+pullid.setAttribute("disabled", true); 
+pullid.className='btn-pull-code mui-active';
+pullid.innerText="重新发送(" + countdown + ")"; 
+countdown--; 
+} 
+setTimeout(function() { 
+settime(val) 
+},1000) 
+}
+    //实时监听文本框字数
+    document.getElementById("ipt-phone").addEventListener("input", function() {
+        var phone = this.value;
+        var mobile = /^(13|14|15|17|18)[0-9]{9}$/; //手机号码
+        if(phone.length == 11) {
+            if(mobile.test(phone)) {
+                $(".pull-code").removeAttr("disabled").addClass("active");
+            } else {
+                $(".pull-code").attr("disabled", "disabled").removeClass("active");
+            }
+        } else {
+            $(".pull-code").attr("disabled", "disabled").removeClass("active");
+        }
+    });
+function change_input() {
+	$(".mui-input-group input").each(function(index) {
+		switch ($(this).attr("id")){
+			case "ipt-phone":
+			if($(this).val().trim()==""){
+				alert_msg="请填写手机号";
+				check=false;
+				return false;
+			}else{
+				if(mobile.test($(this).val().trim())) {
+					check=true;
+				}else{
+					alert_msg="手机号码不正确,请重新填写";
+					check=false;
+					return false;
+				}
+			}
+				break;
+			case "ipt-code":
+			if($(this).val().trim()==""){
+				alert_msg="请填写验证码";
+				check=false;
+				return false;
+			}else{
+				if(code.test($(this).val().trim())) {
+					check=true;
+				}else{
+					alert_msg="验证码格式不正确,请重新填写";
+					check=false;
+					return false;
+				}
+			}
+				break;
+			default:
+				break;
+		}
+	});
+}
+    //提交
+    mui('body').on('tap', '#btn_submit', function() {
+        var positive_int = /^[0-9]\d*$/; //正整数0-9
+        var code = $("#ipt-code").val();
+        var phone = $("#ipt-phone").val();;
+
+        if(code != '') {
+            if(positive_int.test(code)) {
+                change_input();
+                if(check) {
+                    $.ajax(base_path + '/agentTooth/agent_activate?dates=' + new Date().getTime(), {
+                        data: {
+                            "agentTel": phone,
+                            "phoneCode":code
+                        },
+                        dataType: 'json',
+                        xhrFields: {
+                            withCredentials: true
+                        },
+                        crossDomain: true,
+                        type: 'post',
+                        timeout: 15000,
+                        success: function(dt) {
+                            console.log(dt);
+                            if(dt.isRedirect) {
+                                location.href = dt.redirectURL;
+                            } else {
+                                if(dt.resultCode == "200") {
+                                    mui.alert("提交成功!",function(){
+                                        location.href="agent_center.html";
+                                    });
+                                } else {
+                                    console.log("提交失败!请重试");
+                                    mui.alert("提交失败!", function() {
+
+                                    });
+                                }
+                                $("#btn-submit").removeAttr("disabled").addClass("active");
+                            }
+                        },
+                        error: function(xhr, type, errorThrown) {
+                            console.log(xhr);
+                            new Image().src = base_path + "/html_error?error=" + encodeURI(xhr.statusText);
+                        }
+                    });
+                } else {
+                    mui.alert(show_msg);
+                }
+            } else {
+                mui.alert("短信验证码格式不正确", function() {
+                    $("#ipt-code").val("");
+                })
+            }
+        } else {
+            mui.alert("请输入短信验证码");
+        }
+    });
+	</script>
+	</body>
+</html>

Файловите разлики са ограничени, защото са твърде много
+ 264 - 0
tooth-wechat-web/src/main/webapp/view/agent_tooth/agent_center.html


Файловите разлики са ограничени, защото са твърде много
+ 365 - 0
tooth-wechat-web/src/main/webapp/view/agent_tooth/purchasing_products.html