You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.1 KiB
100 lines
3.1 KiB
package com.eco.plugin.wink.hrzdmsg.controller; |
|
|
|
import com.eco.plugin.wink.hrzdmsg.config.PluginSimpleConfig; |
|
import com.eco.plugin.wink.hrzdmsg.utils.FRUtils; |
|
import com.eco.plugin.wink.hrzdmsg.utils.HttpUtils; |
|
import com.eco.plugin.wink.hrzdmsg.utils.ResponseUtils; |
|
import com.eco.plugin.wink.hrzdmsg.utils.Utils; |
|
import com.fr.decision.webservice.annotation.LoginStatusChecker; |
|
import com.fr.json.JSONObject; |
|
import com.fr.plugin.context.PluginContexts; |
|
import com.fr.stable.fun.Authorize; |
|
import com.fr.third.springframework.stereotype.Controller; |
|
import com.fr.third.springframework.web.bind.annotation.PostMapping; |
|
import com.fr.third.springframework.web.bind.annotation.ResponseBody; |
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
import javax.servlet.http.HttpServletResponse; |
|
import java.util.HashMap; |
|
import java.util.Map; |
|
|
|
@Controller |
|
@LoginStatusChecker(required = false) |
|
@Authorize(callSignKey = "com.fr.plugin.wink.hrzdmsg") |
|
public class ControllerSelf { |
|
|
|
@PostMapping(value = "/sendMsg") |
|
@ResponseBody |
|
public void sendMsg(HttpServletRequest req,HttpServletResponse res){ |
|
if(!PluginContexts.currentContext().isAvailable()){ |
|
ResponseUtils.failedResponse(res,"插件授权过期,请联系管理员!"); |
|
return ; |
|
} |
|
|
|
JSONObject param = Utils.getRequestBody(req); |
|
FRUtils.FRLogInfo("param1:"+param.toString()); |
|
JSONObject content = new JSONObject(param.getString("content")); |
|
param.put("content",content); |
|
FRUtils.FRLogInfo("param2:"+param.toString()); |
|
JSONObject msg = sendMsg(param,PluginSimpleConfig.getInstance()); |
|
ResponseUtils.response(res,msg); |
|
} |
|
|
|
/** |
|
* 发送短信 |
|
* @param param |
|
* @param psc |
|
* @return |
|
*/ |
|
public static JSONObject sendMsg(JSONObject param,PluginSimpleConfig psc){ |
|
JSONObject result = new JSONObject(); |
|
result.put("code",200); |
|
String token = getToken(psc); |
|
|
|
if(Utils.isNullStr(token)){ |
|
result.put("code",-1); |
|
result.put("msg","获取token失败!"); |
|
return result; |
|
} |
|
|
|
Map<String,String> header = new HashMap<String,String>(); |
|
header.put("Authorization","Bearer "+token); |
|
String url = psc.getSendMsgUrl(); |
|
|
|
String resultStr = HttpUtils.HttpPostJson(url,param.toString(),header); |
|
|
|
if(Utils.isNullStr(resultStr)){ |
|
result.put("code",-1); |
|
result.put("msg","发送短信失败!"); |
|
return result; |
|
} |
|
|
|
result.put("data",resultStr); |
|
|
|
return result; |
|
} |
|
|
|
/** |
|
* 获取token,用于接口鉴权 |
|
* @param psc |
|
* @return |
|
*/ |
|
private static String getToken(PluginSimpleConfig psc){ |
|
String url = psc.getTokenUrl(); |
|
String username = psc.getLoginName(); |
|
String psd = psc.getPassword(); |
|
|
|
JSONObject param = new JSONObject(); |
|
param.put("loginName",username); |
|
param.put("password",psd); |
|
|
|
String result = HttpUtils.HttpPostJson(url,param.toString(),null); |
|
|
|
if(Utils.isNullStr(result)){ |
|
return ""; |
|
} |
|
|
|
return new JSONObject(result).getString("accessToken"); |
|
} |
|
|
|
}
|
|
|