Shanks %!s(int64=7) %!d(string=hai) anos
pai
achega
0459e907d9

+ 15 - 0
pom.xml

@@ -51,6 +51,21 @@
 			<artifactId>spring-boot-starter-tomcat</artifactId>
 			<scope>provided</scope>
 		</dependency-->
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-annotations</artifactId>
+			<version>2.8.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-core</artifactId>
+			<version>2.8.7</version>
+		</dependency>
+		<dependency>
+			<groupId>com.fasterxml.jackson.core</groupId>
+			<artifactId>jackson-databind</artifactId>
+			<version>2.8.7</version>
+		</dependency>
 
 		<dependency>
 			<groupId>com.alibaba</groupId>

+ 2 - 0
src/main/java/com/ygj/yuemum/controller/admin/ImageUploadController.java

@@ -39,6 +39,8 @@ public class ImageUploadController {
 //    public static final String httpRoot = "http://192.168.1.24/resume/img/";
 //    public static final String httphtmlRoot = "http://192.168.1.24/resume/";
 //    public static final String modulePath = "/usr/local/apache-tomcat-8.5.30/webapps/resume/resume.html";
+//    public static final String payvoucher = "/usr/local/apache-tomcat-8.5.30/webapps/payvoucher";
+//    public static final String httppayvoucher = "http://192.168.1.24/payvoucher";
 
 //
 //    public static final String ROOT = "/usr/local/tomcat/tomcat7/webapps/resume/img/";

+ 7 - 4
src/main/java/com/ygj/yuemum/controller/customer/CustomerBookingController.java

@@ -1,22 +1,25 @@
 package com.ygj.yuemum.controller.customer;
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.ygj.yuemum.domain.customer.CustomerBooking;
 import com.ygj.yuemum.service.customer.CustomerBookingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 @RestController
 public class CustomerBookingController {
 
     @Autowired
     private CustomerBookingService customerBookingService;
-    @GetMapping("/selectcustomerBookings")
-    public List<CustomerBooking> selectcustomerBookings() {
-        List<CustomerBooking> customerBookings = customerBookingService.selectAll();
-        return customerBookings;
+    @PostMapping("/selectcustomerBookings")
+    public String selectcustomerBookings(@ModelAttribute CustomerBooking customerBooking) {
+        Map<String, Object> customerBookings= customerBookingService.selectAll(customerBooking);
+        String jso = JSONObject.toJSONString(customerBookings);
+        return jso;
     }
 
     @GetMapping("/selectCustomerBooking")

+ 11 - 4
src/main/java/com/ygj/yuemum/controller/global/WeChatInfoController.java

@@ -1,13 +1,12 @@
 package com.ygj.yuemum.controller.global;
 
 
+import com.ygj.yuemum.domain.customer.CustomerBooking;
 import com.ygj.yuemum.service.global.WeChatInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
 import java.util.Map;
 
 @RestController
@@ -33,4 +32,12 @@ public class WeChatInfoController {
     public String getWxDecrypt(@RequestParam("encrypData") String encrypData, @RequestParam("ivData") String ivData, @RequestParam("openid") String openid) {
         return saveWeChatInfo.getWxDecrypt(encrypData,ivData,openid);
     }
+    @GetMapping("/WXSendOrderMessage")
+    public int WXSendOrderMessage(@RequestParam("orderno") String orderno,@RequestParam("total") String total,@RequestParam("date") String date) throws IOException {
+        return saveWeChatInfo.WXSendOrderMessage(orderno,total,date);
+    }
+    @PostMapping("/WXSendBookingMessage")
+    public int WXSendBookingMessage(@ModelAttribute CustomerBooking customerBooking) throws IOException {
+        return saveWeChatInfo.WXSendBookingMessage(customerBooking);
+    }
 }

+ 1 - 1
src/main/java/com/ygj/yuemum/dao/customer/CustomerBookingDao.java

@@ -9,7 +9,7 @@ import java.util.List;
 public interface CustomerBookingDao {
 
     List<CustomerBooking> selectCustomerBooking(String bk_phone);
-    List<CustomerBooking> selectAll();
+    List<CustomerBooking> selectAll(CustomerBooking customerBooking);
     int insertCustomerBooking(CustomerBooking customerBooking);
     int checkBooking (CustomerBooking customerBooking);
 }

+ 18 - 0
src/main/java/com/ygj/yuemum/domain/customer/CustomerBooking.java

@@ -9,6 +9,24 @@ public class CustomerBooking {
     private Integer bk_type;
     private String bk_desc;
     private String eh_code;
+    private Integer limit;
+    private Integer page;
+
+    public Integer getLimit() {
+        return limit;
+    }
+
+    public void setLimit(Integer limit) {
+        this.limit = limit;
+    }
+
+    public Integer getPage() {
+        return page;
+    }
+
+    public void setPage(Integer page) {
+        this.page = page;
+    }
 
     public String getEh_code() {
         return eh_code;

+ 22 - 0
src/main/java/com/ygj/yuemum/domain/global/TemplateData.java

@@ -0,0 +1,22 @@
+package com.ygj.yuemum.domain.global;
+
+public class TemplateData {
+    private String value;
+    private String color;
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getColor() {
+        return color;
+    }
+
+    public void setColor(String color) {
+        this.color = color;
+    }
+
+}

+ 45 - 0
src/main/java/com/ygj/yuemum/domain/global/WechatTemplate.java

@@ -0,0 +1,45 @@
+package com.ygj.yuemum.domain.global;
+
+import java.util.Map;
+
+public class WechatTemplate {
+    private String touser;
+
+    private String template_id;
+
+    private String url;
+
+    private Map<String, TemplateData> data;
+
+    public String getTouser() {
+        return touser;
+    }
+
+    public void setTouser(String touser) {
+        this.touser = touser;
+    }
+
+    public String getTemplate_id() {
+        return template_id;
+    }
+
+    public void setTemplate_id(String template_id) {
+        this.template_id = template_id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Map<String, TemplateData> getData() {
+        return data;
+    }
+
+    public void setData(Map<String, TemplateData> data) {
+        this.data = data;
+    }
+}

+ 13 - 2
src/main/java/com/ygj/yuemum/service/customer/CustomerBookingService.java

@@ -1,5 +1,7 @@
 package com.ygj.yuemum.service.customer;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.ygj.yuemum.dao.customer.CustomerBookingDao;
 import com.ygj.yuemum.domain.customer.CustomerBooking;
 import com.ygj.yuemum.domain.equipment.EquipmenteHireHead;
@@ -7,7 +9,9 @@ import com.ygj.yuemum.service.equipment.EquipmenteHireHeadService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class CustomerBookingService {
@@ -18,8 +22,15 @@ public class CustomerBookingService {
     private EquipmenteHireHeadService equipmenteHireHeadService;
 
 
-    public List<CustomerBooking> selectAll() {
-        return customerBookingDao.selectAll();
+    public Map<String, Object> selectAll(CustomerBooking customerBooking) {
+        PageHelper.startPage(customerBooking.getPage(), customerBooking.getLimit());
+        List<CustomerBooking> customerBookings = customerBookingDao.selectAll(customerBooking);
+        PageInfo<CustomerBooking> pageInfo = new PageInfo<CustomerBooking>(customerBookings);
+        long count = pageInfo.getTotal(); //获取总记录数
+        Map<String, Object> tableData = new HashMap<>();
+        tableData.put("items", customerBookings);
+        tableData.put("total", count);
+        return tableData;
     }
 
     public List<CustomerBooking> selectCustomerBooking(String bk_phone) {

+ 137 - 1
src/main/java/com/ygj/yuemum/service/global/WeChatInfoService.java

@@ -1,11 +1,23 @@
 package com.ygj.yuemum.service.global;
 
 import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ygj.yuemum.dao.global.WeChatInfoDao;
+import com.ygj.yuemum.domain.customer.CustomerBooking;
+import com.ygj.yuemum.domain.global.TemplateData;
 import com.ygj.yuemum.domain.global.WeChatInfo;
+import com.ygj.yuemum.domain.global.WechatTemplate;
 import com.ygj.yuemum.domain.wxmini.WXUser;
 import com.ygj.yuemum.service.wxmini.WXUserService;
 import org.apache.commons.codec.binary.Base64;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,6 +28,7 @@ import javax.crypto.NoSuchPaddingException;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.net.URL;
@@ -40,12 +53,17 @@ public class WeChatInfoService {
     public static String MINIAPPID = "wx1c3ef3300b74ed86";
     public static String MINIAPPSECRET = "ba5624bc087921d5a5832da9193e40f1";
 
-
     public static String GRANT_TYPE = "client_credential";
     public static String JSAPI_TICKET_TYPE = "jsapi";
     public static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";
     public static String JSAPI_TICKET_URL = "https://api.weixin.qq.com/cgi-bin/ticket/getticket";
     public static String JSCODE2SESSION = "https://api.weixin.qq.com/sns/jscode2session";
+
+    public static String SENDMESSAGEURL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
+    public static String SENDOPENID = "oAjHTv9I4j1_D_BfIzBaj1bbYU9s";
+    public static String OrderTemplateid = "VyMPKDDGOy85wDIJuXR7sBuiIBEg0OPaCg6C_Dt_D0g";
+    public static String BookingTemplateid = "Wvysqh3Ec9lXpf5tytq0T2zzs662uowNLFCPiAPBFkA";
+
     private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
     String access_Token;
     String expires_in;
@@ -56,6 +74,124 @@ public class WeChatInfoService {
     String session_key;
     String openid;
 
+    public int WXSendOrderMessage(String orderno, String total, String date) throws IOException {
+        ObjectMapper mapper = new ObjectMapper();
+        WechatTemplate wechatTemplate = new WechatTemplate();
+        wechatTemplate.setTemplate_id(OrderTemplateid);
+        wechatTemplate.setTouser(SENDOPENID);
+
+        Map<String,TemplateData> mapdata = new HashMap<>();
+        // 封装模板数据
+        TemplateData first = new TemplateData();
+        first.setValue("用户设备租赁单在线支付成功!");
+        first.setColor("#173177");
+        mapdata.put("first", first);
+
+        TemplateData keyword1 = new TemplateData();
+        keyword1.setValue(orderno);
+        keyword1.setColor("#fc6961");
+        mapdata.put("keyword1", keyword1);
+
+        TemplateData keyword2 = new TemplateData();
+        keyword2.setValue(total);
+        keyword2.setColor("#173177");
+        mapdata.put("keyword2", keyword2);
+
+        TemplateData keyword3 = new TemplateData();
+        keyword3.setValue(date);
+        keyword3.setColor("#173177");
+        mapdata.put("keyword3", keyword3);
+
+        TemplateData keyword5 = new TemplateData();
+        keyword5.setValue("请尽快完善订单及时发货");
+        keyword5.setColor("#173177");
+        mapdata.put("remark", keyword5);
+
+        wechatTemplate.setData(mapdata);
+        String toString = mapper.writeValueAsString(wechatTemplate);
+        String result = "";
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        WeChatInfo weChatInfo = weChatInfoDao.getWeChatInfo();
+        HttpPost httpPost = new HttpPost(SENDMESSAGEURL+weChatInfo.getAccess_token());
+        StringEntity stringEntity = new StringEntity(toString, ContentType.APPLICATION_JSON);
+        stringEntity.setContentEncoding("utf-8");
+        httpPost.setEntity(stringEntity);
+        CloseableHttpResponse response = httpClient.execute(httpPost);
+        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+            result = EntityUtils.toString(response.getEntity(), "utf-8");
+        } else {
+            return 0;
+        }
+        return 1;
+    }
+    public int WXSendBookingMessage(CustomerBooking customerBooking) throws IOException {
+        ObjectMapper mapper = new ObjectMapper();
+        WechatTemplate wechatTemplate = new WechatTemplate();
+        wechatTemplate.setTemplate_id(BookingTemplateid);
+        wechatTemplate.setTouser(SENDOPENID);
+
+        Map<String,TemplateData> mapdata = new HashMap<>();
+        // 封装模板数据
+        TemplateData first = new TemplateData();
+        first.setValue("用户发送预约信息!");
+        first.setColor("#173177");
+        mapdata.put("first", first);
+
+        TemplateData keyword2 = new TemplateData();
+        keyword2.setValue(customerBooking.getBk_phone());
+        keyword2.setColor("#fc6961");
+        mapdata.put("keyword2", keyword2);
+
+        TemplateData keyword3 = new TemplateData();
+        keyword3.setValue(customerBooking.getBk_date());
+        keyword3.setColor("#173177");
+        mapdata.put("keyword3", keyword3);
+        if(customerBooking.getBk_type().equals(1)){
+            TemplateData keyword4 = new TemplateData();
+            keyword4.setValue("套餐预约,套餐名称:"+customerBooking.getBk_desc());
+            keyword4.setColor("#173177");
+            mapdata.put("keyword4", keyword4);
+        }
+        if(customerBooking.getBk_type().equals(4)){
+            TemplateData keyword4 = new TemplateData();
+            keyword4.setValue("顾问预约,"+"预产期:"+customerBooking.getBk_duedate());
+            keyword4.setColor("#173177");
+            mapdata.put("keyword4", keyword4);
+        }
+        if(customerBooking.getBk_type().equals(5)){
+            TemplateData keyword4 = new TemplateData();
+            keyword4.setValue("设备返还预约,租赁单编号:"+customerBooking.getBk_desc());
+            keyword4.setColor("#173177");
+            mapdata.put("keyword4", keyword4);
+        }
+
+
+        TemplateData keyword5 = new TemplateData();
+        keyword5.setValue("请尽快安排顾问跟进!");
+        keyword5.setColor("#173177");
+        mapdata.put("remark", keyword5);
+
+        wechatTemplate.setData(mapdata);
+        String toString = mapper.writeValueAsString(wechatTemplate);
+        System.out.println(toString);
+
+        String result = "";
+        CloseableHttpClient httpClient = HttpClients.createDefault();
+        WeChatInfo weChatInfo = weChatInfoDao.getWeChatInfo();
+        HttpPost httpPost = new HttpPost(SENDMESSAGEURL+weChatInfo.getAccess_token());
+        StringEntity stringEntity = new StringEntity(toString, ContentType.APPLICATION_JSON);
+        stringEntity.setContentEncoding("utf-8");
+        httpPost.setEntity(stringEntity);
+        CloseableHttpResponse response = httpClient.execute(httpPost);
+        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+            result = EntityUtils.toString(response.getEntity(), "utf-8");
+        } else {
+            return 0;
+        }
+        System.out.println(result);
+        return 1;
+    }
+
     public int SaveWeChatInfo() {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {

+ 14 - 1
src/main/resources/mybatis/mapper/customer/CustomerBookingMapper.xml

@@ -23,10 +23,23 @@
         order by bk_date desc
     </select>
 
-    <select id="selectAll" resultMap="BaseResultMap" >
+    <select id="selectAll" resultMap="BaseResultMap" parameterType="com.ygj.yuemum.domain.customer.CustomerBooking">
         select
         id, bk_phone,bk_duedate,bk_date,bk_type,bk_desc
         from customer_booking
+        where 1=1
+        <if test="bk_phone != null and bk_phone != ''">
+            and bk_phone = #{bk_phone,jdbcType=INTEGER}
+        </if>
+        <if test="bk_date != null and bk_date != ''">
+            and bk_date = #{bk_date,jdbcType=INTEGER}
+        </if>
+        <if test="bk_type != null and bk_type != ''">
+            and bk_type = #{bk_type,jdbcType=INTEGER}
+        </if>
+        <if test="bk_duedate != null and bk_duedate != ''">
+            and bk_duedate = #{bk_duedate,jdbcType=INTEGER}
+        </if>
     </select>
 
     <select id="checkBooking" resultType="java.lang.Integer" parameterType="com.ygj.yuemum.domain.customer.CustomerBooking">