Merge branch 'hotfix/1.0.16'
diff --git a/build.gradle b/build.gradle
index 0b1c3c0..2acc881 100644
--- a/build.gradle
+++ b/build.gradle
@@ -24,4 +24,8 @@
     enabled = false
 }
 
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
+
 group = 'com.supwisdom'
\ No newline at end of file
diff --git a/bus-qrcode/build.gradle b/bus-qrcode/build.gradle
index 8f2e1f1..6237e97 100644
--- a/bus-qrcode/build.gradle
+++ b/bus-qrcode/build.gradle
@@ -52,3 +52,7 @@
 }
 
 publish.dependsOn(jar)
+
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 26e1499..4346bdc 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -13,9 +13,10 @@
 spring.datasource.initialization-mode=always
 # Redis settings
 #spring.redis.host=ykt.supwisdom.com
-spring.redis.host=172.28.201.101
-spring.redis.port=16379
-spring.redis.password=kingstar
+spring.redis.host=172.28.201.70
+spring.redis.port=6379
+spring.redis.password=
+spring.redis.database=2
 # jwt settings
 jwt.secret=Zj5taLomEbrM0lk+NMQZbHfSxaDU1wekjT+kiC3YzDw=
 # timeout seconds
diff --git a/oauth/build.gradle b/oauth/build.gradle
index aeffb67..232445f 100644
--- a/oauth/build.gradle
+++ b/oauth/build.gradle
@@ -31,6 +31,11 @@
     baseName = 'oauth'
 }
 
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
+
+
 
 dependencies {
     implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
diff --git a/payapi-common/build.gradle b/payapi-common/build.gradle
index 0b8b7dd..c257e6a 100644
--- a/payapi-common/build.gradle
+++ b/payapi-common/build.gradle
@@ -50,4 +50,8 @@
     implementation 'org.apache.commons:commons-lang3:3.9'
 
     testImplementation 'junit:junit:4.12'
-}
\ No newline at end of file
+}
+
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonSendMessageParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonSendMessageParam.java
new file mode 100644
index 0000000..f63b88f
--- /dev/null
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonSendMessageParam.java
@@ -0,0 +1,28 @@
+package com.supwisdom.dlpay.api.bean;
+
+import com.supwisdom.dlpay.api.APIRequestParam;
+import com.supwisdom.dlpay.api.annotation.Sign;
+import com.supwisdom.dlpay.api.exception.RequestParamCheckException;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
+
+
+@Getter
+@Setter
+public class CommonSendMessageParam extends APIRequestParam {
+    @Sign
+    private String userid;
+    @Sign
+    private String content;
+    @Sign
+    private String title;
+
+    @Override
+    public boolean checkParam() throws RequestParamCheckException {
+        if (StringUtils.isEmpty(userid) && StringUtils.isEmpty(content)&& StringUtils.isEmpty(title) ) {
+            throw new RequestParamCheckException("用户唯一号不能为空");
+        }
+        return true;
+    }
+}
diff --git a/payapi-sdk/build.gradle b/payapi-sdk/build.gradle
index 6151e73..6d97ea4 100644
--- a/payapi-sdk/build.gradle
+++ b/payapi-sdk/build.gradle
@@ -71,4 +71,8 @@
     }
 }
 
-publish.dependsOn(jar)
\ No newline at end of file
+publish.dependsOn(jar)
+
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiCommonProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiCommonProxy.java
index 47a8e53..f273a3f 100644
--- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiCommonProxy.java
+++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/ApiCommonProxy.java
@@ -1,11 +1,22 @@
 package com.supwisdom.dlpay.paysdk.proxy;
 
+import com.supwisdom.dlpay.api.bean.ApiResponse;
 import com.supwisdom.dlpay.api.bean.ApiVersionResponse;
+import com.supwisdom.dlpay.api.bean.CommonSendMessageParam;
+import com.supwisdom.dlpay.api.bean.UserResponse;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 @FeignClient(name = "apiCommonProxy", url = "${payapi.url}")
 public interface ApiCommonProxy {
   @GetMapping(value = "/api/common/version")
   ApiVersionResponse apiVersion();
+
+  @PostMapping("/api/common/sendmsg")
+  ApiResponse sendMsg(@RequestBody CommonSendMessageParam param);
+
+
+
 }
diff --git a/payapi/build.gradle b/payapi/build.gradle
index 0a7d16c..5d8338c 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -11,6 +11,11 @@
     id 'com.palantir.docker'
 }
 
+tasks.withType(JavaCompile) {
+    options.encoding = "UTF-8"
+}
+
+
 payapiVersion = gitVersion()
 def details = versionDetails()
 
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/sendmsg_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/sendmsg_api_controller.kt
new file mode 100644
index 0000000..4408895
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/sendmsg_api_controller.kt
@@ -0,0 +1,41 @@
+package com.supwisdom.dlpay.api.controller
+
+import com.supwisdom.dlpay.api.bean.*
+import com.supwisdom.dlpay.api.service.*
+import com.supwisdom.dlpay.framework.ResponseBodyBuilder
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.http.ResponseEntity
+import org.springframework.web.bind.annotation.PostMapping
+import org.springframework.web.bind.annotation.RequestBody
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
+
+@RestController
+@RequestMapping("/api/common")
+class SendMessageAPIController {
+
+    @Autowired
+    lateinit var systemUtilService: SystemUtilService
+
+    @Autowired
+    lateinit var transactionService: TransactionServiceProxy
+
+    @Autowired
+    lateinit var kafkaSendMsgService: KafkaSendMsgService
+
+    /**
+     * ============================================================================
+     * 发送消息推送
+     * ============================================================================
+     * */
+    @PostMapping("/sendmsg")
+    fun doSend(@RequestBody param: CommonSendMessageParam): ResponseEntity<Any> {
+        kafkaSendMsgService.sendJpushMessage(param.userid,param.title,param.content,"",mutableMapOf(),"")
+
+        return ResponseEntity.ok(ResponseBodyBuilder.create()
+                .success("发送成功"))
+    }
+
+
+}
\ No newline at end of file