Althars123 3 роки тому
батько
коміт
88c914657b

+ 2 - 1
twzd-service/src/main/java/com/miaxis/school/mapper/SchoolInfoMapper.java

@@ -5,6 +5,7 @@ import com.miaxis.school.domain.SchoolInfo;
 import com.miaxis.wx.dto.QueryParams;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 驾校信息Mapper接口
@@ -21,5 +22,5 @@ public interface SchoolInfoMapper extends BaseMapper<SchoolInfo> {
      */
     public List<SchoolInfo> selectSchoolInfoList(SchoolInfo schoolInfo);
 
-    List<String> queryNames(QueryParams queryParams);
+    List<Map> queryNames(QueryParams queryParams);
 }

+ 1 - 0
twzd-service/src/main/java/com/miaxis/wx/dto/QueryParams.java

@@ -5,6 +5,7 @@ import lombok.Data;
 @Data
 public class QueryParams {
     String choseColumName;
+    String choseColumCode;
     String conditionColumName1;
     String value1;
     String conditionColumName2;

+ 45 - 27
twzd-service/src/main/java/com/miaxis/wx/service/impl/WxGzhServiceImpl.java

@@ -8,7 +8,9 @@ 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.service.IWxSendService;
+import com.miaxis.school.domain.SchoolInfo;
 import com.miaxis.school.mapper.SchoolInfoMapper;
+import com.miaxis.school.service.ISchoolInfoService;
 import com.miaxis.system.service.ISysUserService;
 import com.miaxis.user.service.IUserInfoService;
 import com.miaxis.wx.domain.WxForeverCode;
@@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -58,6 +61,8 @@ public class WxGzhServiceImpl implements IWxGzhService {
 
     private final SchoolInfoMapper schoolInfoMapper;
 
+    private final ISchoolInfoService schoolInfoService;
+
     @Value("${app.appid}")
     private String appid;
 
@@ -230,46 +235,52 @@ public class WxGzhServiceImpl implements IWxGzhService {
     private String dealSchoolMsg(String bizmsgmenuid, String content, String fromUserName, String toUserName) throws Exception {
         UserInfo userInfo = userInfoService.getOne(new QueryWrapper<UserInfo>().eq("openid", fromUserName));
         // 1选择城市 2选择区 3选择学校
-        if ("1".equals(bizmsgmenuid)){
+        if ("1".equals(bizmsgmenuid)) {
             userInfo.setCityName(content);
             userInfoService.updateById(userInfo);
             QueryParams queryParamsArea = new QueryParams();
             queryParamsArea.setChoseColumName("area_name");
+            queryParamsArea.setChoseColumCode("area_code");
             queryParamsArea.setConditionColumName1("city_name");
             queryParamsArea.setValue1(content);
-            List<String> areas = schoolInfoMapper.queryNames(queryParamsArea);
+            List<Map> areas = schoolInfoMapper.queryNames(queryParamsArea);
             StringBuffer buffer = new StringBuffer();
             buffer.append("请选择驾校所在区:").append("\n\n");
-            for (String area: areas){
-                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=2&msgmenucontent="+area+"\">"+area+"</a>").append("\n");
-                //buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=1&msgmenucontent="+area+"\">"+area+"</a>").append("\n\n");
+            for (Map area : areas) {
+                String name = (String) area.get("name");
+                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=2&msgmenucontent=" + name + "\">" + name + "</a>").append("\n");
             }
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
-        }else if ("2".equals(bizmsgmenuid)){
+        } else if ("2".equals(bizmsgmenuid)) {
             userInfo.setAreaName(content);
             userInfoService.updateById(userInfo);
             QueryParams queryParamsArea = new QueryParams();
             queryParamsArea.setChoseColumName("school_name");
+            queryParamsArea.setChoseColumCode("school_code");
             queryParamsArea.setConditionColumName1("city_name");
             queryParamsArea.setValue1(userInfo.getCityName());
             queryParamsArea.setConditionColumName2("area_name");
             queryParamsArea.setValue2(userInfo.getAreaName());
-            List<String> schools = schoolInfoMapper.queryNames(queryParamsArea);
+            List<Map> schools = schoolInfoMapper.queryNames(queryParamsArea);
             StringBuffer buffer = new StringBuffer();
             buffer.append("请选择驾校:").append("\n\n");
-            for (String school: schools){
-                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=3&msgmenucontent="+school+"\">"+school+"</a>").append("\n");
+            for (Map school : schools) {
+                String name = (String) school.get("name");
+                String code = (String) school.get("code");
+                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=s" + code + "&msgmenucontent=\">" + name + "</a>").append("\n");
+                return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
             }
-            return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
-        }
-        //如果输出的是驾校,则返回二维码
-        else if ("3".equals(bizmsgmenuid)){
+            //如果输出的是驾校,则返回二维码
+            }else if (bizmsgmenuid.startsWith("s")) {
+            SchoolInfo schoolInfo = schoolInfoService.getOne(new QueryWrapper<SchoolInfo>().eq("school_code", bizmsgmenuid.substring(1)));
             userInfo.setSchoolName(content);
-            userInfoService.updateById(userInfo);
-            String mediaId = wxMessageEvenService.gainTicketEvent(fromUserName, this.getGzhToken(), false, null);
-            return MessageUtil.initImage(fromUserName,toUserName,mediaId);
-        }
-        return null;
+                userInfoService.updateById(userInfo);
+                String mediaId = wxMessageEvenService.gainTicketEvent(fromUserName, this.getGzhToken(), false, null);
+                return MessageUtil.initImage(fromUserName, toUserName, mediaId);
+            }
+            return null;
+
+
     }
 
     private String choseSchoolName(UserInfo userInfo,String fromUserName,String toUserName) throws Exception {
@@ -277,23 +288,27 @@ public class WxGzhServiceImpl implements IWxGzhService {
         if (StringUtils.isEmpty(userInfo.getCityName())){
             QueryParams queryParams = new QueryParams();
             queryParams.setChoseColumName("city_name");
-            List<String> cities = schoolInfoMapper.queryNames(queryParams);
+            queryParams.setChoseColumCode("city_code");
+            List<Map> cities = schoolInfoMapper.queryNames(queryParams);
             StringBuffer buffer = new StringBuffer();
             buffer.append("请选择驾校所在城市:").append("\n\n");
-            for (String city: cities){
-                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=1&msgmenucontent="+city+"\">"+city+"</a>").append("\n");
+            for (Map city: cities){
+                String name = (String) city.get("name");
+                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=1&msgmenucontent="+name+"\">"+name+"</a>").append("\n");
             }
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
         }else if (StringUtils.isEmpty(userInfo.getAreaName())) {
             QueryParams queryParamsArea = new QueryParams();
             queryParamsArea.setChoseColumName("area_name");
+            queryParamsArea.setChoseColumCode("area_code");
             queryParamsArea.setConditionColumName1("city_name");
             queryParamsArea.setValue1(userInfo.getCityName());
-            List<String> areas = schoolInfoMapper.queryNames(queryParamsArea);
+            List<Map> areas = schoolInfoMapper.queryNames(queryParamsArea);
             StringBuffer buffer = new StringBuffer();
             buffer.append("请选择驾校所在区:").append("\n\n");
-            for (String area: areas){
-                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=2&msgmenucontent="+area+"\">"+area+"</a>").append("\n");
+            for (Map area: areas){
+                String name = (String) area.get("name");
+                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=2&msgmenucontent="+name+"\">"+name+"</a>").append("\n");
             }
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
         }
@@ -301,15 +316,18 @@ public class WxGzhServiceImpl implements IWxGzhService {
         else if (StringUtils.isEmpty(userInfo.getSchoolName())) {
             QueryParams queryParamsArea = new QueryParams();
             queryParamsArea.setChoseColumName("school_name");
+            queryParamsArea.setChoseColumCode("school_code");
             queryParamsArea.setConditionColumName1("city_name");
             queryParamsArea.setValue1(userInfo.getCityName());
             queryParamsArea.setConditionColumName2("area_name");
             queryParamsArea.setValue2(userInfo.getAreaName());
-            List<String> schools = schoolInfoMapper.queryNames(queryParamsArea);
+            List<Map> schools = schoolInfoMapper.queryNames(queryParamsArea);
             StringBuffer buffer = new StringBuffer();
             buffer.append("请选择驾校:").append("\n\n");
-            for (String school: schools){
-                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=3&msgmenucontent="+school+"\">"+school+"</a>").append("\n");
+            for (Map school: schools){
+                String name = (String) school.get("name");
+                String code = (String)school.get("code");
+                buffer.append("<a href=\"weixin://bizmsgmenu?msgmenuid=s"+code+"&msgmenucontent=\">"+name+"</a>").append("\n");
             }
             return MessageUtil.initText(fromUserName, toUserName, buffer.toString());
 

+ 2 - 2
twzd-service/src/main/resources/mapper/school/SchoolInfoMapper.xml

@@ -34,8 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
-    <select id="queryNames" resultType="string">
-        select distinct(${choseColumName}) from school_info where ${choseColumName} is not null
+    <select id="queryNames" resultType="map">
+        select distinct ${choseColumName} as name , ${choseColumName} as code from school_info where ${choseColumName} is not null
         <if test="conditionColumName1 != null  and conditionColumName1 != ''">
         and ${conditionColumName1} = #{value1}
       </if>