|
@@ -119,6 +119,9 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
|
|
|
@Value(value = "${privateDeployURL.authUrl}")
|
|
|
private String authUrl;
|
|
|
|
|
|
+ @Value(value = "${privateDeployURL.mobUrl}")
|
|
|
+ private String mobUrl;
|
|
|
+
|
|
|
@Autowired
|
|
|
RestTemplate restTemplate;
|
|
|
|
|
@@ -414,6 +417,130 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void sendWXCorpTemplateMsgWithPLan(WxCorpInfo corpInfo, String corpUserid, String msg, String pageRouter, Integer msgType, Plan plan) {
|
|
|
+ try {
|
|
|
+ log.info("发送企业微信消息===" + corpUserid);
|
|
|
+ System.out.println("发送企业微信消息===" + corpUserid);
|
|
|
+ String accessToken = getCorpAgentAccessToken(corpInfo);
|
|
|
+ String url = URL_SEND_WXCORP_MSG.replaceAll("ACCESS_TOKEN", accessToken);
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ JSONObject reqParam = new JSONObject();
|
|
|
+ reqParam.put("touser", corpUserid);
|
|
|
+ reqParam.put("msgtype", "textcard");
|
|
|
+ reqParam.put("enable_id_trans", 1);
|
|
|
+ reqParam.put("agentid", corpInfo.getAgentid());
|
|
|
+ JSONObject cardJson = new JSONObject();
|
|
|
+ String title = "";
|
|
|
+ String jumpUrl ;
|
|
|
+ if(isPrivateDeploy){
|
|
|
+ jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ authUrl +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
|
|
|
+ }else {
|
|
|
+ jumpUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
|
|
|
+ }
|
|
|
+ System.out.println("jumpUrl=="+jumpUrl);
|
|
|
+ if ("plan/today".equals(pageRouter)) {
|
|
|
+ title = "收到新的今日计划";
|
|
|
+ if (plan!=null){
|
|
|
+ String dates="";
|
|
|
+ if (plan.getStartDate()!=null){
|
|
|
+ dates+=plan.getStartDate().format(DateTimeFormatter.BASIC_ISO_DATE);
|
|
|
+ dates+="-";
|
|
|
+ }
|
|
|
+ if (plan.getEndDate()!=null){
|
|
|
+ dates+=plan.getEndDate().format(DateTimeFormatter.BASIC_ISO_DATE);
|
|
|
+ }
|
|
|
+ StringBuilder builder = new StringBuilder(mobUrl)
|
|
|
+ .append("/#/distribution");
|
|
|
+ builder.append("?id=").append(plan.getId())
|
|
|
+ .append("&departmentId=").append(plan.getStationId())
|
|
|
+ .append("&titleText=")
|
|
|
+ .append(URLEncoder.encode("今日计划", "UTF-8"))
|
|
|
+ .append("&type=").append(0)
|
|
|
+ .append("&dates=").append(dates);
|
|
|
+ if (StringUtils.isNotEmpty(plan.getProductSchedulingNum())){
|
|
|
+ builder.append("&productSchedulingNum=").append(URLEncoder.encode(plan.getProductSchedulingNum(), "UTF-8"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(plan.getProductName())){
|
|
|
+ builder.append("&productName=").append(URLEncoder.encode(plan.getProductName(), "UTF-8"));
|
|
|
+ }
|
|
|
+ String urlStr =builder.toString();
|
|
|
+
|
|
|
+ jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ urlStr +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
|
|
|
+ }
|
|
|
+ } else if ("plan/tomorrow".equals(pageRouter)) {
|
|
|
+ //费用报销
|
|
|
+ title = "收到新的明日计划";
|
|
|
+ if (plan!=null){
|
|
|
+ String dates="";
|
|
|
+ if (plan.getStartDate()!=null){
|
|
|
+ dates+=plan.getStartDate().format(DateTimeFormatter.BASIC_ISO_DATE);
|
|
|
+ dates+="-";
|
|
|
+ }
|
|
|
+ if (plan.getEndDate()!=null){
|
|
|
+ dates+=plan.getEndDate().format(DateTimeFormatter.BASIC_ISO_DATE);
|
|
|
+ }
|
|
|
+ StringBuilder builder = new StringBuilder(mobUrl)
|
|
|
+ .append("/#/distribution");
|
|
|
+ builder.append("?id=").append(plan.getId())
|
|
|
+ .append("&departmentId=").append(plan.getStationId())
|
|
|
+ .append("&titleText=")
|
|
|
+ .append(URLEncoder.encode("明日计划", "UTF-8"))
|
|
|
+ .append("&type=").append(1)
|
|
|
+ .append("&dates=").append(dates);
|
|
|
+ if (StringUtils.isNotEmpty(plan.getProductSchedulingNum())){
|
|
|
+ builder.append("&productSchedulingNum=").append(URLEncoder.encode(plan.getProductSchedulingNum(), "UTF-8"));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(plan.getProductName())){
|
|
|
+ builder.append("&productName=").append(URLEncoder.encode(plan.getProductName(), "UTF-8"));
|
|
|
+ }
|
|
|
+ String urlStr =builder.toString();
|
|
|
+ jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ urlStr +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if ("plan/orderInsert".equals(pageRouter)) {
|
|
|
+ //费用报销
|
|
|
+ title = "收到新的插单计划";
|
|
|
+ }
|
|
|
+ else if(("plan/today".equals(pageRouter)||"plan/tomorrow".equals(pageRouter))&&corpUserid.split("|").length>1){
|
|
|
+ title="收到新的工作安排";
|
|
|
+ }
|
|
|
+ else if("plan/orderInsert".equals(pageRouter)){
|
|
|
+ title="收到新的插单计划";
|
|
|
+ }
|
|
|
+ else if("notReport".equals(pageRouter)){
|
|
|
+ title="报工未填报提醒";
|
|
|
+ }
|
|
|
+ jumpUrl = jumpUrl.replace("STATE", pageRouter);
|
|
|
+ cardJson.put("title", title);
|
|
|
+ cardJson.put("description", msg);
|
|
|
+ cardJson.put("url", jumpUrl);
|
|
|
+ reqParam.put("textcard", cardJson);
|
|
|
+
|
|
|
+ HttpEntity<String> requestEntity = new HttpEntity<String>(reqParam.toJSONString(), headers);
|
|
|
+ ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
|
|
|
+ HttpMethod.POST, requestEntity, String.class);
|
|
|
+ if (responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
+ String resp = responseEntity.getBody();
|
|
|
+ log.info("发送企业微信消息返回结果==" + resp);
|
|
|
+ JSONObject json = JSONObject.parseObject(resp);
|
|
|
+ if (json.getIntValue("errcode") == 0) {
|
|
|
+ //发送成功
|
|
|
+
|
|
|
+ } else {
|
|
|
+ throw new Exception(json.toJSONString());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("发送失败:" + responseEntity.getStatusCode() + ", " + responseEntity.getBody());
|
|
|
+ System.err.println("发送失败:" + responseEntity.getStatusCode() + ", " + responseEntity.getBody());
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public File downloadFile(WxCorpInfo corpInfo, String mediaId) {
|
|
|
try {
|