Althars123 3 years ago
parent
commit
be7a450d4c

+ 52 - 7
twzd-service/src/main/java/com/miaxis/wx/service/impl/WxGzhServiceImpl.java

@@ -7,6 +7,7 @@ import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.utils.StringUtils;
 import com.miaxis.common.utils.wx.MessageUtil;
+import com.miaxis.feign.dto.WxMessageCusom;
 import com.miaxis.feign.service.IWxSendService;
 import com.miaxis.school.domain.SchoolInfo;
 import com.miaxis.school.mapper.SchoolInfoMapper;
@@ -26,6 +27,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -303,14 +305,40 @@ public class WxGzhServiceImpl implements IWxGzhService {
                 queryParamsArea.setConditionColumName2("area_name");
                 queryParamsArea.setValue2(userInfo.getAreaName());
                 List<Map> schools = schoolInfoMapper.queryNames(queryParamsArea);
-                buffer.append("请选择驾校:").append("\n\n");
-                for (Map school : schools) {
-                    String name = (String) school.get("name");
-                    String code = (String) school.get("code");
-                    buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=" + code + "&msgmenucontent=ok\">" + name + "</a>").append("\n");
+                if (schools.size() <= 10){
+                    buffer.append("请选择驾校:").append("\n\n");
+                    for (Map school : schools) {
+                        String name = (String) school.get("name");
+                        String code = (String) school.get("code");
+                        buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=" + code + "&msgmenucontent=ok\">" + name + "</a>").append("\n");
 
+                    }
+                }else{
+                    int times = (schools.size()-1)/10+1;
+                    for (int i =0; i< times-1; i++){
+                        StringBuffer partBuffer  =new StringBuffer();
+                        if (i == 0){
+                            partBuffer.append("请选择驾校:").append("\n\n");
+                        }
+                        for (int j =0; j< 10 ; j++){
+                            Map school = schools.get(i*10+j);
+                            String name = (String) school.get("name");
+                            String code = (String) school.get("code");
+                            partBuffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=" + code + "&msgmenucontent=ok\">" + name + "</a>").append("\n");
+                        }
+
+                        messageCustomSend(fromUserName,this.getGzhToken(),buffer.toString());
+                    }
+                    //最后一页做相应消息
+                    for (int i = (times-1)*10; i< schools.size() ; i++){
+                        Map school = schools.get(i);
+                        String name = (String) school.get("name");
+                        String code = (String) school.get("code");
+                        buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=" + code + "&msgmenucontent=ok\">" + name + "</a>").append("\n");
+                    }
                 }
-                log.info("返回字节长度为:"+buffer.toString().getBytes().length);
+
+
             }
 
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
@@ -327,6 +355,22 @@ public class WxGzhServiceImpl implements IWxGzhService {
 
     }
 
+    /**
+     * 发送客服消息
+     * @param fromUserName
+     * @param token
+     */
+    private void messageCustomSend(String fromUserName,String token,String content){
+
+        WxMessageCusom wxMessageCusom = new WxMessageCusom();
+        wxMessageCusom.setTouser(fromUserName);
+        wxMessageCusom.setMsgtype("text");
+        HashMap<String, Object> contentMap = new HashMap<>();
+        contentMap.put("content",content);
+        wxMessageCusom.setText(contentMap);
+        wxSendService.messageCustomSend(token, wxMessageCusom);
+    }
+
     private String choseSchoolName(UserInfo userInfo,String fromUserName,String toUserName) throws Exception {
         //城市未填写
         if (StringUtils.isEmpty(userInfo.getCityName())){
@@ -372,7 +416,6 @@ public class WxGzhServiceImpl implements IWxGzhService {
                 String code = (String)school.get("code");
                 buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid="+code+"&msgmenucontent=ok\">"+name+"</a>").append("\n");
             }
-            log.info("返回字节长度为:"+buffer.toString().getBytes().length);
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
 
         }
@@ -383,4 +426,6 @@ public class WxGzhServiceImpl implements IWxGzhService {
 
 
 
+
+
 }