|
|
@ -1,26 +1,20 @@ |
|
|
package com.zdxt.enforcementcode.controller.app.enforcement; |
|
|
package com.zdxt.enforcementcode.controller.app.enforcement; |
|
|
|
|
|
|
|
|
import cn.dev33.satoken.annotation.SaIgnore; |
|
|
import cn.dev33.satoken.annotation.SaIgnore; |
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
|
import com.zdxt.enforcementcode.common.commonenum.PlatformTypeEnums; |
|
|
import com.zdxt.enforcementcode.common.commonenum.PlatformTypeEnums; |
|
|
import com.zdxt.enforcementcode.common.util.CommonUtil; |
|
|
import com.zdxt.enforcementcode.common.util.CommonUtil; |
|
|
import com.zdxt.enforcementcode.controller.app.utils.HttpUtil; |
|
|
|
|
|
import com.zdxt.enforcementcode.service.enforcement.IAppEnfLoginService; |
|
|
import com.zdxt.enforcementcode.service.enforcement.IAppEnfLoginService; |
|
|
import com.zdxt.enforcementcode.controller.app.LoginController; |
|
|
import com.zdxt.enforcementcode.controller.app.LoginController; |
|
|
import com.zdxt.enforcementcode.domain.vo.SrzDeptVo; |
|
|
import com.zdxt.enforcementcode.domain.vo.SrzDeptVo; |
|
|
import lombok.RequiredArgsConstructor; |
|
|
import lombok.RequiredArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.apache.commons.codec.binary.Hex; |
|
|
|
|
|
import org.dromara.common.core.domain.R; |
|
|
import org.dromara.common.core.domain.R; |
|
|
import org.dromara.system.domain.vo.SysDeptVo; |
|
|
import org.dromara.system.domain.vo.SysDeptVo; |
|
|
import org.dromara.system.domain.vo.SysUserVo; |
|
|
import org.dromara.system.domain.vo.SysUserVo; |
|
|
import org.dromara.system.service.ISysDeptService; |
|
|
import org.dromara.system.service.ISysDeptService; |
|
|
import org.dromara.system.service.ISysUserService; |
|
|
import org.dromara.system.service.ISysUserService; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
import java.security.MessageDigest; |
|
|
|
|
|
import java.security.NoSuchAlgorithmException; |
|
|
|
|
|
import java.util.HashMap; |
|
|
import java.util.HashMap; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
@ -37,15 +31,6 @@ public class AppEnfLoginController extends LoginController { |
|
|
private final ISysDeptService sysDeptService; |
|
|
private final ISysDeptService sysDeptService; |
|
|
private final IAppEnfLoginService appEnfLoginService; |
|
|
private final IAppEnfLoginService appEnfLoginService; |
|
|
|
|
|
|
|
|
@Value("${szypt.corpid}") |
|
|
|
|
|
private String szyptCorpid; |
|
|
|
|
|
@Value("${szypt.agentid}") |
|
|
|
|
|
private String szyptAgentid; |
|
|
|
|
|
@Value("${szypt.corpsecret}") |
|
|
|
|
|
private String szyptCorpsecret; |
|
|
|
|
|
@Value("${szypt.url}") |
|
|
|
|
|
private String szyptUrl; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 执法端用户登录 |
|
|
* 执法端用户登录 |
|
|
* |
|
|
* |
|
|
@ -156,60 +141,4 @@ public class AppEnfLoginController extends LoginController { |
|
|
String code = params.get("code"); |
|
|
String code = params.get("code"); |
|
|
return appEnfLoginService.szyptLogin(code); |
|
|
return appEnfLoginService.szyptLogin(code); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 深圳易平台使用权限签名算法 |
|
|
|
|
|
*/ |
|
|
|
|
|
@GetMapping("/szyptGetToken") |
|
|
|
|
|
@ResponseBody |
|
|
|
|
|
public R<Map<String, Object>> szyptGetToken(@RequestParam("code") String code, @RequestParam("url") String url){ |
|
|
|
|
|
try { |
|
|
|
|
|
System.out.println("====================== 获取政务微信认证签名URL ======================"); |
|
|
|
|
|
log.info("获取政务微信认证签名code:{}",code); |
|
|
|
|
|
log.info("获取政务微信认证签名URL:{}",url); |
|
|
|
|
|
// 获取 access_token
|
|
|
|
|
|
String accessTokenJson = HttpUtil.HttpSendGet(szyptUrl + "/cgi-bin/gettoken?corpid="+szyptCorpid+"&corpsecret="+szyptCorpsecret, null); |
|
|
|
|
|
JSONObject tokenObj = JSONObject.parseObject(accessTokenJson); |
|
|
|
|
|
String token = tokenObj.getString("access_token"); |
|
|
|
|
|
String jsapiTicket = HttpUtil.HttpSendGet(szyptUrl + "/cgi-bin/get_jsapi_ticket?access_token="+token, null); |
|
|
|
|
|
JSONObject ticketObj = JSONObject.parseObject(jsapiTicket); |
|
|
|
|
|
String ticket = ticketObj.getString("ticket"); |
|
|
|
|
|
log.info("====================== jsapiTicket start ======================"); |
|
|
|
|
|
log.info("ticket: {}",ticket); |
|
|
|
|
|
log.info("====================== jsapiTicket end ======================"); |
|
|
|
|
|
|
|
|
|
|
|
long timestamp = System.currentTimeMillis() / 1000; |
|
|
|
|
|
//随机字符串
|
|
|
|
|
|
String nonceStr = "Wm3WZYTPz0wzccnW"; |
|
|
|
|
|
String signature = getSignature(ticket, nonceStr, timestamp, url); |
|
|
|
|
|
log.info("signature: {}",signature); |
|
|
|
|
|
|
|
|
|
|
|
Map<String, Object> data = new HashMap<>(); |
|
|
|
|
|
data.put("agentid", szyptAgentid); |
|
|
|
|
|
data.put("corpid", szyptCorpid); |
|
|
|
|
|
data.put("timestamp", timestamp); |
|
|
|
|
|
data.put("nonceStr", nonceStr); |
|
|
|
|
|
data.put("signature", signature); |
|
|
|
|
|
return R.ok(data); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
log.error(e.getMessage()); |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
|
|
|
return R.ok(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private String getSignature(String ticket, String nonceStr, long timestamp, String url) { |
|
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
|
|
String unEncryptStr = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url; |
|
|
|
|
|
MessageDigest sha = MessageDigest.getInstance("SHA"); |
|
|
|
|
|
// 调用digest方法,进行加密操作
|
|
|
|
|
|
byte[] cipherBytes = sha.digest(unEncryptStr.getBytes()); |
|
|
|
|
|
String encryptStr = Hex.encodeHexString(cipherBytes); |
|
|
|
|
|
return encryptStr; |
|
|
|
|
|
} catch (NoSuchAlgorithmException e) { |
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
} |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|