lidongdong
2022-10-12 538b74a65dffadbd143a9e7e4218e0d0d91100fa
Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test
22个文件已修改
2个文件已添加
425 ■■■■ 已修改文件
flower_city/src/main/java/com/dg/core/AliyunConfig.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/SmsUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/TemplateParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/util/WxUtil.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/application-sms.properties 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/application.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flower_city/src/main/java/com/dg/core/AliyunConfig.java
@@ -23,6 +23,9 @@
    @Value("${aliyun.TemplateCode}")
    private String TemplateCode;
    @Value("${aliyun.TemplateCodeOvertime}")
    private  String TemplateCodeOvertime;
    public String getKey() {
        return key;
@@ -32,6 +35,14 @@
        this.key = key;
    }
    public String getTemplateCodeOvertime() {
        return TemplateCodeOvertime;
    }
    public void setTemplateCodeOvertime(String templateCodeOvertime) {
        TemplateCodeOvertime = templateCodeOvertime;
    }
    public String getScrect() {
        return screct;
    }
flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java
@@ -43,7 +43,7 @@
     */
    @ApiOperation(value = "获取常见问题列表(不分页查找)",response = AutomessageCommonProblem.class)
    @GetMapping("/queryList")
    public ResultData queryList(@RequestParam(value = "title") String title){
    public ResultData queryList(@RequestParam(value = "title",required = false) String title){
        return  ResultData.success(iAutomessageCommonProblemService.selectConfigList(title,null));
    }
flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -1,6 +1,7 @@
package com.dg.core.api;
import com.alibaba.fastjson.JSON;
import com.dg.core.ResultData;
import com.dg.core.annotation.Authorization;
import com.dg.core.annotation.CurrentUser;
@@ -8,8 +9,10 @@
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import com.dg.core.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.util.WxUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@@ -17,7 +20,12 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Map;
import static com.dg.core.util.WxUtil.httpGet;
/**
 * 工单管理
@@ -33,6 +41,8 @@
    @Autowired
    private IGuideEvolveService iGuideEvolveService;
    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
    /**
     * 提交导办订单
     * @return
@@ -43,6 +53,7 @@
    public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) {
          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          guideRepairOrder.setSubmitType(1);
          int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
          if (i>0){
              iGuideEvolveService.updateGuid();
@@ -162,6 +173,18 @@
            entity.setState("8");
        }
        else if(StringUtils.equals(entity.getState(),"4")){
            if (order.getSubmitType().equals(1))//小程序提交
            {
            WxUtil wxUtil=new WxUtil();
            String accessToken="0";
            try {
                accessToken= wxUtil.getBatteryCarAccessToken();
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
            wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
            }
            //待评价
            order.setState("4");
            entity.setState("9");
@@ -282,4 +305,6 @@
}
flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -11,6 +11,7 @@
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.service.IOrganizationChartService;
import com.dg.core.util.TableDataInfo;
import com.dg.core.util.WxUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
@@ -39,6 +40,8 @@
    @Autowired
    IOrganizationChartService iOrganizationChartService;
    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
    /**
     * 提交导办订单
     * @return
@@ -50,6 +53,7 @@
          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
          guideRepairOrder.setSubmitType(2);
          int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
          if (i>0){
              iGuideEvolveService.updateGuid();
@@ -213,6 +217,18 @@
        }
        else if(StringUtils.equals(entity.getState(),"4")){
            //待评价
            if (order.getSubmitType().equals(1))//小程序提交
            {
                WxUtil wxUtil=new WxUtil();
                String accessToken="0";
                try {
                    accessToken= wxUtil.getBatteryCarAccessToken();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
                SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
                wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,order);
            }
            order.setState("4");
            entity.setState("9");
        }
flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java
@@ -132,7 +132,6 @@
     */
    @ApiOperation(value = "导办事务搜索",response = QueryResults.class)
    @GetMapping("/queryKeyWordList")
    @Authorization
    public QueryResults queryMatterNameList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
                                            @RequestParam(value = "pageSize",required = false) Integer pageSize,
                                            @RequestParam(value = "recommendSize",required = false) Integer recommendSize,
flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
@@ -136,6 +136,12 @@
    private String detailedAddress;
    /**
     * 提交方式(1 小程序 2.门户网)
     */
    @ApiModelProperty("提交方式(1 小程序 2.门户网)")
    private Integer  submitType;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -1,10 +1,7 @@
package com.dg.core.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dg.core.db.gen.entity.AutomessageCommonProblem;
import com.dg.core.db.gen.entity.CountListNum;
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.gen.entity.*;
import org.springframework.data.repository.query.Param;
import java.util.List;
@@ -70,4 +67,10 @@
                                    List<String> ids,
                                    Integer time);
    /**
     * 获取提工单提交交人员信息
     * @return
     */
    SysUser getSubmitUser(GuideRepairOrder guideRepairOrder);
}
flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dg.core.db.gen.entity.GuideEvolveEntity;
import com.dg.core.db.gen.entity.SysUser;
import com.dg.core.db.gen.mapper.ElseAccessoryMapper;
import com.dg.core.db.gen.mapper.GuideEvolveMapper;
import com.dg.core.db.gen.mapper.TransactionEventMapper;
@@ -68,4 +69,6 @@
    public int countStatisticsNum(String state, String isTimeout) {
        return baseMapper.countStatisticsNum(state,isTimeout);
    }
}
flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -6,6 +6,7 @@
import com.dg.core.db.gen.entity.*;
import com.dg.core.db.gen.mapper.*;
import com.dg.core.service.IGuideRepairOrderService;
import com.dg.core.util.SmsUtil;
import com.dg.core.util.Snowflake;
import org.springframework.stereotype.Service;
@@ -32,6 +33,9 @@
    @Resource
    private  GuideEvolveMapper guideEvolveMapper;
    @Resource
    SmsUtil smsUtil;
    @Override
    public  int addOrder(GuideRepairOrder guideRepairOrder){
@@ -82,6 +86,7 @@
                entity.setFromUserId(guideRepairOrder.getSubmitUserId());
                entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
                entity.setGuidOrderNum(guideRepairOrder.getOrderNum());
//                smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName());
                guideEvolveMapper.insertConfig(entity);
            }
        }
@@ -117,6 +122,7 @@
            guideRepairOrderImageMapper.insert(guideRepairOrderImage);
        }
        }
        int ans= baseMapper.insert(guideRepairOrder);
        int i = transactionEventMapper.updateById(transactionEvent);
        if (ans>0&&i>0)
@@ -145,8 +151,11 @@
    @Override
    public int updateConfig(GuideRepairOrder order) {
        SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
        order.setGuideUserPhone(sysUser.getPhonenumber());
        if  ( order.getGuideUserId()!=null&&!order.getGuideUserId().equals(""))
        {
            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
            order.setGuideUserPhone(sysUser.getPhonenumber());
        }
        return baseMapper.updateConfig(order);
    }
@@ -199,5 +208,10 @@
        return baseMapper.countListNum(state, ids,time);
    }
    @Override
    public SysUser getSubmitUser(GuideRepairOrder guideRepairOrder){
        return sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,guideRepairOrder.getSubmitUserId()));
    }
}
flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
@@ -120,13 +120,14 @@
        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord);
        recommendResult.setTransactionEventList(transactionEventEntities);
        for (TransactionEvent transactionEvent: transactionEventEntities) {
            String[] associateNames = transactionEvent.getAssociateNames().split(",");
            for (String  associateName: associateNames) {
                KeywordEntity keywordEntity = new KeywordEntity();
                keywordEntity.setName(associateName);
                keywordEntityList.add(keywordEntity);
            if (transactionEvent.getAssociateNames()!=null) {
                String[] associateNames = transactionEvent.getAssociateNames().split(",");
                for (String associateName : associateNames) {
                    KeywordEntity keywordEntity = new KeywordEntity();
                    keywordEntity.setName(associateName);
                    keywordEntityList.add(keywordEntity);
                }
            }
        }
        recommendResult.setKeywordEntityList(keywordEntityList);
        List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByKeyWord(keyWord);
flower_city/src/main/java/com/dg/core/util/SmsUtil.java
@@ -53,7 +53,7 @@
        //  接收人电话
        request.putQueryParameter("PhoneNumbers", tel);
        //  短信签名
        request.putQueryParameter("SignName", aliyunConfig.getSignName());
        request.putQueryParameter("SignName", "集慧科技");
        //  短信模板
        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCode());
        Random rd = new Random();
@@ -82,4 +82,46 @@
        }
        return ResultData.error("短信发送失败");
    }
    public ResultData<Object> sendSmsOvertime(String tel,String name) {
        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
        IAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dysmsapi.aliyuncs.com");
        request.setSysVersion("2017-05-25");
        request.setSysAction("SendSms");
        request.putQueryParameter("RegionId", "cn-hangzhou");
        //  接收人电话
        request.putQueryParameter("PhoneNumbers", tel);
        //  短信签名
        request.putQueryParameter("SignName", "集慧科技");
        //  短信模板
        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeOvertime());
        Random rd = new Random();
        //  短信内容
        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
        //  获取短信发送的响应结果
        try {
            CommonResponse rs = client.getCommonResponse(request);
            LOGGER.debug(rs.getData().toString());
            // 把json格式的字符串装换成java的map的数据类型
            ObjectMapper mapper = new ObjectMapper();
            try {
                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
                if (m.get("Message").equals("OK")) {
                     return  ResultData.success("短信发送成功!");
                }
            } catch (JsonProcessingException e) {
                e.printStackTrace();
                return ResultData.error("短信发送失败");
            }
        } catch (ClientException e) {
            e.printStackTrace();
            return ResultData.error("短信发送失败");
        }
        return ResultData.error("短信发送失败");
    }
}
flower_city/src/main/java/com/dg/core/util/TemplateParam.java
New file
@@ -0,0 +1,19 @@
package com.dg.core.util;
import lombok.Data;
@Data
public class TemplateParam {
    private String key;
    private String value;
    public TemplateParam(String key, String value) {
        this.key = key;
        this.value = value;
    }
    public TemplateParam() {
    }
}
flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java
New file
@@ -0,0 +1,61 @@
package com.dg.core.util;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
@ApiModel("微信订阅消息请求参数")
@Data
public class WxSubscribeDTO {
    @ApiModelProperty("用户在小程序的openid")
    private String touser;
    @ApiModelProperty("所需下发的订阅模板id")
    private String template_id;
    @ApiModelProperty("点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。")
    private String page;
    @ApiModelProperty("模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }")
    private Object data;
    @ApiModelProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")
    private String miniprogram_state;
    @ApiModelProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN")
    private String lang;
    private List<TemplateParam> templateParamList;
    public String toJSON() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("{");
        buffer.append(String.format("\"touser\":\"%s\"", this.touser)).append(",");
        buffer.append(String.format("\"template_id\":\"%s\"", this.template_id)).append(",");
        if (StringUtils.isNotEmpty(this.page)) {
            buffer.append(String.format("\"page\":\"%s\"", this.page)).append(",");
        }
        if (StringUtils.isNotEmpty(this.miniprogram_state)) {
            buffer.append(String.format("\"miniprogram_state\":\"%s\"", this.miniprogram_state)).append(",");
        }
        buffer.append("\"data\":{");
        TemplateParam param = null;
        for (int i = 0; i < this.templateParamList.size(); i++) {
            param = templateParamList.get(i);
            // 判断是否追加逗号
            if (i < this.templateParamList.size() - 1) {
                buffer.append(String.format("\"%s\": {\"value\":\"%s\"},", param.getKey(), param.getValue()));
            } else {
                buffer.append(String.format("\"%s\": {\"value\":\"%s\"}", param.getKey(), param.getValue()));
            }
        }
        buffer.append("}");
        buffer.append("}");
        return buffer.toString();
    }
}
flower_city/src/main/java/com/dg/core/util/WxUtil.java
@@ -1,18 +1,26 @@
package com.dg.core.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.dg.core.db.gen.entity.GuideRepairOrder;
import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.springframework.stereotype.Component;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@Component
public class WxUtil {
    private static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
@@ -22,14 +30,14 @@
     *
     * @return
     */
    public String getBatteryCarAccessToken() throws Exception {
    public  String getBatteryCarAccessToken() throws Exception {
        String accessToken = "0";
        try {
            // 此处APP_ID APP_SECRET 在微信小程序后端可见
            // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET);
            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + ConstantPropertiesUtil.WX_OPEN_APP_ID
                    + "&secret=" + ConstantPropertiesUtil.WX_OPEN_APP_SECRET;
            String result = this.httpGet(accessTokenUrl, null, null);
                    + "&secret=" +ConstantPropertiesUtil.WX_OPEN_APP_SECRET;
            String result = httpGet(accessTokenUrl, null, null);
            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
            if (resultMap.containsKey("access_token")) {
                accessToken = resultMap.get("access_token").toString();
@@ -105,6 +113,107 @@
        }
    }
    /**
     * http请求工具类,post请求
     *
     * @param url   url
     * @param param 参数值 仅支持String
     * @return
     * @throws Exception
     */
    public static String httpPost(String url, String param) throws Exception {
        DefaultHttpClient defaultHttpClient = null;
        BufferedReader bufferedReader = null;
        try {
            defaultHttpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("Content-Type", "application/json;charset=ut-8");
            if (StringUtils.isNotBlank(param)) {
                 HttpEntity httpEntity = new StringEntity(param, "utf-8");
                httpPost.setEntity(httpEntity);
            }
            HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
            if (httpResponse.getStatusLine().getStatusCode() != 200) {
                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
                 throw new Exception(url + errorLog);
            }
            // 读取返回信息
            String output;
            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
            StringBuilder stringBuilder = new StringBuilder();
            while ((output = bufferedReader.readLine()) != null) {
                stringBuilder.append(output);
            }
             return stringBuilder.toString();
        } catch (IOException e) {
            e.printStackTrace();
            throw e;
        } finally {
            if (defaultHttpClient != null)
                defaultHttpClient.getConnectionManager().shutdown();
            if (bufferedReader != null)
                bufferedReader.close();
        }
    }
    public static String wxMessageModeSendUrl(String token, WxSubscribeDTO subscribeDTO) throws Exception {
        String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN";
        String url = tmpurl.replace("ACCESS_TOKEN", token);
        return httpPost(url, subscribeDTO.toJSON());
    }
    /**
     * 订阅消息推送
     *
     * @param accessToken
     *            获取会话token
     * @return 消息推送结果
     */
    static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception {
        String resultString = wxMessageModeSendUrl(accessToken, subscribeDTO);
        JSONObject jsonResult = JSON.parseObject(resultString);
        if (jsonResult != null) {
            int errorCode = jsonResult.getIntValue("errcode");
            String errorMessage = jsonResult.getString("errmsg");
            if (errorCode == 0) {
                System.out.println("订阅消息推送成功,openId:" + subscribeDTO.getTouser());
            } else {
                System.out.println(
                        "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser());
            }
        }
    }
    /**
     * 工单完成推送
     *
     * @param openId
     *            用户openid
     * @param accessToken
     *            token会话标识
     */
    public  void sendGuideRepairOrderComplete(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){
        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
        subscribeDTO.setTouser(openId);
        subscribeDTO.setTemplate_id(templateId);
        subscribeDTO.setMiniprogram_state("formal");//测试,部署正式版本时候需要更改为formal
        List<TemplateParam> paras=new ArrayList<TemplateParam>();
        Calendar calendar = Calendar.getInstance();
        paras.add(new TemplateParam("thing1",guideRepairOrder.getMatterName()));//业务办理类型
        paras.add(new TemplateParam("thing3","已完成"));
        paras.add(new TemplateParam("phrase8","待评价"));
        calendar.setTime(new Date());
        paras.add(new TemplateParam("time4",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//结束日期
        subscribeDTO.setTemplateParamList(paras);
        try {
            sendSubscribe(accessToken,subscribeDTO);
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}
flower_city/src/main/resources/application-sms.properties
@@ -1,8 +1,9 @@
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u01B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
aliyun.key=LTAI4G3V2Ku9oaEMKyzaY93U
aliyun.screct=HJKHAl2I7ZGtoGK3t3xXahaQSEMmys
aliyun.SignName=\u84C9\u57CE\u9633\u5149
aliyun.TemplateCode=SMS_205623177
aliyun.key=LTAI4Frqq9fpJek6d3bC7Rn1
aliyun.screct=wkyvU72m6JmCFepCzGVuSpsJOsbRV0
aliyun.SignName=????
aliyun.TemplateCode=SMS_254326275
aliyun.TemplateCodeOvertime=SMS_254460011
flower_city/src/main/resources/application.properties
@@ -27,7 +27,7 @@
wx.open.app_id=wx118de8a734d269f0
wx.open.app_id=wx118de8a734d269f0
wx.open.app_secret=0264342daefde5cd70a6adada09ee5b1
wx.open.redirect_url=http://yq.cdnhxx.com:8080/ucenter/wx/callback
yygh.baseUrl=http://localhost:8080
flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -29,6 +29,7 @@
        <id     property="images"      column="images"      />
        <id     property="video"      column="video"      />
        <id     property="isTimeout"      column="is_timeout"      />
        <id     property="submitType"      column="submit_type"      />
    </resultMap>
    <sql id="selectGuideRepairOrderVo">
@@ -36,6 +37,7 @@
            id,
            order_num,
            matter_id,
            submit_type,
            matter_name,
            (select organization_name from automessage_organization_chart where a.department_id=id)organizationName,
            concat(
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java
@@ -38,4 +38,6 @@
    /**调解上传图片地址列表,逗号进行分割*/
    @ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
    private List<ComEventRequestImageVO> images;
    @ApiModelProperty("处理人")
    private String solver;
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -74,7 +74,7 @@
    @ApiOperation(value = "excel导入楼栋信息--注:以前的接口,不需要对接")
    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "房屋信息管理", operType = 0, businessType = "导入楼栋信息")
    @OperLog(operModul = "房屋信息管理-导入楼栋信息", operType = 0, businessType = "导入楼栋信息")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file) {
        InputStream inputStream;
        try {
@@ -148,7 +148,7 @@
    @ApiOperation(value = "添加单元")
    @PostMapping("/add/unit")
    @OperLog(operModul = "房屋信息管理", operType = 1, businessType = "添加单元")
    @OperLog(operModul = "房屋信息管理-添加单元", operType = 1, businessType = "添加单元")
    public R addUnit(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -162,7 +162,7 @@
    @ApiOperation(value = "修改单元")
    @PostMapping("/edit/unit")
    @OperLog(operModul = "房屋信息管理", operType = 2, businessType = "修改单元")
    @OperLog(operModul = "房屋信息管理-修改单元", operType = 2, businessType = "修改单元")
    public R editUnit(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
        // 获取登陆用户绑定社区id
        Long communityId = this.getLoginUserInfo().getCommunityId();
@@ -335,7 +335,7 @@
    @ApiOperation("删除楼栋")
    @GetMapping("/delete")
    @OperLog(operModul = "房屋信息管理", operType = 3, businessType = "删除")
    @OperLog(operModul = "房屋信息管理-删除", operType = 3, businessType = "删除")
    public R delete(@RequestParam("id")Long id){
        return communityService.buildingDelete(id);
    }
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -201,7 +201,7 @@
        return partyBuildingService.deletePartyOrganization(partyOrganizationVO);
    }
    //@OperLog(operModul = "党员管理", operType = 1)
    @OperLog(operModul = "党员管理-新增党员", operType = 1)
    @ApiOperation(value = "新增党员")
    @PostMapping("addpartybuildingmember")
    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -89,7 +89,7 @@
    @ApiOperation(value = "excel导入实有人口")
    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导入")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -131,7 +131,7 @@
    @ApiOperation(value = "excel导入吸毒人员")
    @PostMapping(value = "/serve/importDrug", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "吸毒人员导入")
    @OperLog(operModul = "居民信息管理-吸毒人员导入", operType = 0, businessType = "吸毒人员导入")
    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -151,7 +151,7 @@
    @ApiOperation(value = "excel导入社区矫正人员")
    @PostMapping(value = "/serve/importCorrect", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "社区矫正人员导入")
    @OperLog(operModul = "居民信息管理-社区矫正人员导入", operType = 0, businessType = "社区矫正人员导入")
    public R importCorrect(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -172,7 +172,7 @@
    @ApiOperation(value = "excel导入重精人员")
    @PostMapping(value = "/serve/importMajor", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "重精人员导入")
    @OperLog(operModul = "居民信息管理-重精人员导入", operType = 0, businessType = "重精人员导入")
    public R importMajor(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -192,7 +192,7 @@
    @ApiOperation(value = "excel导入邪教人员")
    @PostMapping(value = "/serve/importCult", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "邪教人员导入")
    @OperLog(operModul = "居民信息管理-邪教人员导入", operType = 0, businessType = "邪教人员导入")
    public R importCult(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -213,7 +213,7 @@
    @ApiOperation(value = "excel导入刑释人员")
    @PostMapping(value = "/serve/importRehabilitation", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "刑释人员导入")
    @OperLog(operModul = "居民信息管理-刑释人员导入", operType = 0, businessType = "刑释人员导入")
    public R importRehabilitation(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -234,7 +234,7 @@
    @ApiOperation(value = "excel导入重点上访人员")
    @PostMapping(value = "/serve/importKey", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "重点上访人员导入")
    @OperLog(operModul = "居民信息管理-重点上访人员导入", operType = 0, businessType = "重点上访人员导入")
    public R importKey(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -255,7 +255,7 @@
    @ApiOperation(value = "excel导入服刑人员")
    @PostMapping(value = "/serve/importSentence", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "服刑人员导入")
    @OperLog(operModul = "居民信息管理-服刑人员导入", operType = 0, businessType = "服刑人员导入")
    public R importSentence(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -277,7 +277,7 @@
    @ApiOperation(value = "excel导入退役军人")
    @PostMapping(value = "/serve/importVeterans", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "退役军人导入")
    @OperLog(operModul = "居民信息管理-退役军人导入", operType = 0, businessType = "退役军人导入")
    public R importVeterans(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -299,7 +299,7 @@
    @ApiOperation(value = "excel导入残疾人")
    @PostMapping(value = "/serve/importDisability", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "残疾人导入")
    @OperLog(operModul = "居民信息管理-残疾人导入", operType = 0, businessType = "残疾人导入")
    public R importDisability(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -321,7 +321,7 @@
    @ApiOperation(value = "excel导入低保户")
    @PostMapping(value = "/serve/importLowSecurity", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "低保户导入")
    @OperLog(operModul = "居民信息管理-低保户导入", operType = 0, businessType = "低保户导入")
    public R importLowSecurity(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -343,7 +343,7 @@
    @ApiOperation(value = "excel导入高龄老人")
    @PostMapping(value = "/serve/importElder", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "高龄老人导入")
    @OperLog(operModul = "居民信息管理-高龄老人导入", operType = 0, businessType = "高龄老人导入")
    public R importElder(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -365,7 +365,7 @@
    @ApiOperation(value = "excel导入养老金人员")
    @PostMapping(value = "/serve/importPension", consumes = "multipart/*",
            headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "养老金人员导入")
    @OperLog(operModul = "居民信息管理-养老金人员导入", operType = 0, businessType = "养老金人员导入")
    public R importPension(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -393,7 +393,7 @@
     */
    @ApiOperation(value = "excel-确认导入实有人口")
    @PostMapping(value = "/import/confirm", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导入")
    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
    public R listSavePopulationConfirm(@RequestParam MultipartFile file, HttpServletRequest request) {
        // 获取文件名
        String fileName = file.getOriginalFilename();
@@ -434,7 +434,7 @@
    @ApiOperation(value = "编辑实有人口")
    @PostMapping(value = "/edit")
    @OperLog(operModul = "居民信息管理", operType = 2, businessType = "编辑")
    @OperLog(operModul = "居民信息管理-编辑", operType = 2, businessType = "编辑")
    public R editPopulationInfo(@RequestBody ComMngPopulationEditDTO populationEditDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        return communityService.editPopulation(populationEditDTO, loginUserInfo.getCommunityId());
@@ -1243,7 +1243,7 @@
    @ApiOperation(value = "批量删除实有人口")
    @PostMapping("/delete")
    @OperLog(operModul = "居民信息管理", operType = 3, businessType = "批量删除实有人口")
    @OperLog(operModul = "居民信息管理-批量删除实有人口", operType = 3, businessType = "批量删除实有人口")
    public R deletePopulations(@RequestBody List<Long> ids) {
        return communityService.deletePopulations(ids, this.getCommunityId());
    }
@@ -2667,7 +2667,7 @@
    @ApiOperation(value = "实有人口-数据导出")
    @PostMapping("/data/export")
    @OperLog(operModul = "居民信息管理", operType = 0, businessType = "实有人口导出")
    @OperLog(operModul = "居民信息管理-实有人口导出", operType = 0, businessType = "实有人口导出")
    public R dataExportPopulation(@RequestBody List<Long> Ids) {
        // 获取登陆用户
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -85,6 +85,7 @@
            }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(11)){
                //专家账号权限
                ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
                comEvent.setUserType(2);
                if (nonNull(expert)){
                    comEvent.setSpecialistId(expert.getId());
                }
@@ -98,6 +99,7 @@
                }
            }else if (loginUserInfoVO.getType().equals(3)){
                //社区后台权限
                comEvent.setUserType(4);
                comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
            }
        }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -106,6 +106,7 @@
                user.setName(comSanshuoExpertDTO.getName());
                user.setType(11);
                user.setImageUrl(comSanshuoExpertDTO.getAvatar());
                user.setPhone(comSanshuoExpertDTO.getPhone());
                return R.ok(userService.sanShuoAddUser(user));
            }
        }else {
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -310,11 +310,12 @@
        if (1 == type) {
            sysUserDO = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name));
        }else if(isIndustryOrExpertAccount){
        }else if(isIndustryOrExpertAccount) {
            //三说会堂行业分中心或专家后台账号登陆
            sysUserDO=userDao.selectOne(
                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId,appId ));
        } else {
            sysUserDO = userDao.selectOne(
                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
        }
        else {
            LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type);
            if (type == 11) {
                //只允许通过account登录
@@ -3813,6 +3814,9 @@
            if (nonNull(administratorsUserVO.getType())){
                sysUserDO.setType(administratorsUserVO.getType());
            }
            if (nonNull(administratorsUserVO.getPhone())){
                sysUserDO.setPhone(administratorsUserVO.getPhone());
            }
            userDao.insert(sysUserDO);
            //分配权限
            SysUserRoleDO sysUserRole=new SysUserRoleDO();