Ver código fonte

推广短链接

zhijiezhao 2 anos atrás
pai
commit
79c2ab3079

+ 15 - 2
src/main/java/com/caimei365/order/controller/BaseApi.java

@@ -1,12 +1,15 @@
 package com.caimei365.order.controller;
 
 import com.caimei365.order.model.ResponseJson;
+import com.caimei365.order.service.RemoteCallService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 /**
  * Description
  *
@@ -21,9 +24,11 @@ public class BaseApi {
     @Value(value = "${swagger.enabled}")
     private Boolean swaggerEnabled;
 
+    private final RemoteCallService remoteCallService;
+
     @GetMapping("")
-    public String welcome(){
-        if (swaggerEnabled){
+    public String welcome() {
+        if (swaggerEnabled) {
             return "欢迎使用!<br><a href='http://47.119.112.46:18014/doc.html'>doc接口文档入口(beta)</a><br><a href='http://47.119.112.46:18014/swagger-ui/index.html'>swagger接口文档入口(beta)</a>";
         }
         return "欢迎使用!";
@@ -36,5 +41,13 @@ public class BaseApi {
     public ResponseJson<Void> unauthorized() {
         return ResponseJson.error(-99, "Token失效请重新登录!", null);
     }
+
+    /**
+     * 老用户发短信临时接口
+     */
+    @GetMapping("/getOld")
+    public void getOldUser() {
+        remoteCallService.getOldUser();
+    }
 }
 

+ 7 - 0
src/main/java/com/caimei365/order/mapper/MessagePushMapper.java

@@ -1,7 +1,10 @@
 package com.caimei365.order.mapper;
 
+import com.caimei365.order.model.vo.PushMessageUserVo;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -29,4 +32,8 @@ public interface MessagePushMapper {
      * @param count  增加条数
      */
     void updateSmsSendCount(int markId, int count);
+
+    List<PushMessageUserVo> findOldUser();
+
+    void insertNewLink(PushMessageUserVo p);
 }

+ 17 - 0
src/main/java/com/caimei365/order/model/vo/PushMessageUserVo.java

@@ -0,0 +1,17 @@
+package com.caimei365.order.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class PushMessageUserVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer userId;
+    private Integer clubId;
+    private String mobile;
+    private String jumpLink;
+    private String shortLink;
+    private Integer markId;
+}

+ 1 - 0
src/main/java/com/caimei365/order/service/RemoteCallService.java

@@ -57,4 +57,5 @@ public interface RemoteCallService {
      */
     String productSaleUpdate(String productInfo);
 
+    void getOldUser();
 }

+ 37 - 6
src/main/java/com/caimei365/order/service/impl/RemoteCallServiceImpl.java

@@ -5,6 +5,7 @@ import com.caimei365.order.feign.CommodityFeign;
 import com.caimei365.order.feign.ToolsFeign;
 import com.caimei365.order.feign.UserFeign;
 import com.caimei365.order.mapper.MessagePushMapper;
+import com.caimei365.order.model.vo.PushMessageUserVo;
 import com.caimei365.order.service.RemoteCallService;
 import com.caimei365.order.utils.CodeUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -12,6 +13,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
+
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
@@ -85,8 +87,8 @@ public class RemoteCallServiceImpl implements RemoteCallService {
                         // 调用 ToolsFeign 发送短信
                         String jsonStr = toolsFeign.getSendSms(mobile, content);
                         JSONObject parseObject = JSONObject.parseObject(jsonStr);
-                        if (0 == parseObject.getInteger("code")){
-                            if (markId > 0 ) {
+                        if (0 == parseObject.getInteger("code")) {
+                            if (markId > 0) {
                                 // 保存短信发送条数+count
                                 messagePushMapper.updateSmsSendCount(markId, 1);
                             }
@@ -118,7 +120,7 @@ public class RemoteCallServiceImpl implements RemoteCallService {
             // 调用 UserFeign 获取物流
             String jsonStr = userFeign.appletsAuthorization(code, encryptedData, iv, referer);
             JSONObject parseObject = JSONObject.parseObject(jsonStr);
-            if (0 == parseObject.getInteger("code") || -4 == parseObject.getInteger("code")){
+            if (0 == parseObject.getInteger("code") || -4 == parseObject.getInteger("code")) {
                 // 授权登录成功(游客-4)
                 resultData.set(parseObject.getString("data"));
             }
@@ -141,9 +143,9 @@ public class RemoteCallServiceImpl implements RemoteCallService {
         try {
             // 调用 ToolsFeign 获取物流
             String jsonStr = toolsFeign.getLogisticsByNumber(number, companyCode, mobile);
-            log.info("智能获取物流信息:"+jsonStr);
+            log.info("智能获取物流信息:" + jsonStr);
             JSONObject parseObject = JSONObject.parseObject(jsonStr);
-            if (0 == parseObject.getInteger("code")){
+            if (0 == parseObject.getInteger("code")) {
                 // 获取物流信息成功
                 resultData.set(parseObject.getString("data"));
             } else {
@@ -170,11 +172,40 @@ public class RemoteCallServiceImpl implements RemoteCallService {
         try {
             // 调用 ToolsFeign 获取物流
             String jsonStr = commodityFeign.productSaleUpdate(productInfo);
-            log.info("更新商品销量:"+productInfo);
+            log.info("更新商品销量:" + productInfo);
             resultData.set(jsonStr);
         } catch (Exception e) {
             log.error("更新商品销量失败:", e);
         }
         return resultData.get();
     }
+
+    @Override
+    public void getOldUser() {
+        //17年之前的所有用户
+        List<PushMessageUserVo> pushUsers = messagePushMapper.findOldUser();
+        //https://www.caimei365.com/product/hot.html指向新品橱窗
+        String url = "https://www.caimei365.com/product/hot.html";
+
+        pushUsers.forEach(p -> {
+            p.setJumpLink(url);
+            String link = getLink();
+            p.setShortLink(link);
+            p.setMarkId(23);
+            messagePushMapper.insertNewLink(p);
+            String content = "亲,好久没登陆采美了,近期在找新项目吗?采美新品橱窗有多款院线产品和仪器,现在登陆采美https://www.caimei365.com/t/" +
+                    link + ",可获一张包邮券!退订回TD";
+            getSendSms(23, p.getMobile(), content);
+            log.info("userId-------------------->" + p.getUserId() + "发送手机号------------------------>" + p.getMobile() + "短信-------------->" + content);
+        });
+    }
+
+    public String getLink() {
+        String shortLink = CodeUtil.generateShortLink(9);
+        Integer id = messagePushMapper.findIdByShortLink(shortLink);
+        if (id != null && id > 0) {
+            getLink();
+        }
+        return shortLink;
+    }
 }

+ 19 - 3
src/main/resources/mapper/MessagePushMapper.xml

@@ -3,12 +3,28 @@
 <mapper namespace="com.caimei365.order.mapper.MessagePushMapper">
     <insert id="insertShortLink">
         INSERT INTO cm_short_link (markId, shortLink, jumpLink, createTime)
-        VALUES (#{markId}, #{shortLink}, #{url},NOW())
+        VALUES (#{markId}, #{shortLink}, #{url}, NOW())
+    </insert>
+    <insert id="insertNewLink">
+        INSERT INTO cm_short_link (markId, clubId, userId, shortLink, jumpLink, createTime)
+        VALUES (#{markId}, #{clubId}, #{userId}, #{shortLink}, #{jumpLink}, NOW())
     </insert>
     <update id="updateSmsSendCount">
-        UPDATE cm_sms_statistics SET sendNum = (sendNum + #{count}) WHERE markId = #{markId}
+        UPDATE cm_sms_statistics
+        SET sendNum = (sendNum + #{count})
+        WHERE markId = #{markId}
     </update>
     <select id="findIdByShortLink" resultType="java.lang.Integer">
-        SELECT id FROM cm_short_link WHERE shortLink = #{shortLink}
+        SELECT id
+        FROM cm_short_link
+        WHERE shortLink = #{shortLink}
+    </select>
+    <select id="findOldUser" resultType="com.caimei365.order.model.vo.PushMessageUserVo">
+        SELECT userID, clubID, contractMobile as mobile
+        FROM club
+        WHERE ADDTIME <![CDATA[ < ]]> '2017-01-01 00:00:00'
+          AND clubId > 1037
+          AND contractMobile IS NOT NULL
+          AND contractMobile NOT LIKE '%-%'
     </select>
 </mapper>