Commit 2ebca5bd authored by 夏敏伟's avatar 夏敏伟

Merge branch 'master' of http://192.168.168.218/wcyuee/szpt

parents cea78c66 1eff820d
package com.zksy.szpt.domain;
public class CurrentUserInfo {
private String userId;
private String userName;
private String deptCode;
private String ip;
public CurrentUserInfo() {
}
private CurrentUserInfo(CurrentUserInfoBuilder builder) {
this.userId = builder.userId;
this.userName = builder.userName;
this.deptCode = builder.deptCode;
this.ip = builder.ip;
}
// 建造器类
public static class CurrentUserInfoBuilder {
private String userId; // 必选项,用 final 修饰
private String userName; // 必选项,用 final 修饰
private String deptCode;
private String ip;// 可选项,不用 final 修饰
public CurrentUserInfoBuilder userId(String userId) { // 可选参数
this.userId = userId;
return this;
}
public CurrentUserInfoBuilder userName(String userName) { // 可选参数
this.userName = userName;
return this;
}
public CurrentUserInfoBuilder deptCode(String deptCode) { // 可选参数
this.deptCode = deptCode;
return this;
}
public CurrentUserInfoBuilder ip(String ip) { // 可选参数
this.ip = ip;
return this;
}
public CurrentUserInfo build() {
return new CurrentUserInfo(this);
}
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
}
\ No newline at end of file
......@@ -13,6 +13,7 @@ public class AppStore {
private String appSecret;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
private String deptCode;
public Long getId() {
return id;
......@@ -45,4 +46,12 @@ public class AppStore {
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
}
......@@ -184,9 +184,9 @@ public class SzptFwxx {
private Date jkmhysj;
/**
* 数据归属单位代码
* 数据归属单位代码。不用更新,入库的时候就已经代表了数据归属单位
*/
@TableField(fill = FieldFill.INSERT)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String sjgsdwdm;
/**
......
......@@ -112,7 +112,10 @@ public class SzptGdSbxx {
/**
* 数据归属单位代码
*/
@TableField(fill = FieldFill.INSERT)
/**
* 数据归属单位代码。不用更新,入库的时候就已经代表了数据归属单位
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String sjgsdwdm;
/**
......
......@@ -189,8 +189,9 @@ public class SzptGdXx {
private String mdjyzt;
/**
* 数据归属单位代码
* 数据归属单位代码。不用更新,入库的时候就已经代表了数据归属单位
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String sjgsdwdm;
/**
......
......@@ -83,8 +83,9 @@ public class SzptQyxx {
private String zt;
/**
* 数据归属单位代码
* 数据归属单位代码。不用更新,入库的时候就已经代表了数据归属单位
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String sjgsdwdm;
/**
......
......@@ -9,12 +9,12 @@ public class XxRwwcqk {
/**
* IID
*/
@TableId(type = IdType.ASSIGN_ID)
private Long iid;
/**
* 任务完成ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
......
......@@ -5,11 +5,14 @@ import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zksy.szpt.domain.CurrentUserInfo;
import com.zksy.szpt.domain.HttpResult;
import com.zksy.szpt.domain.HttpResultState;
import com.zksy.szpt.domain.po.AppStore;
import com.zksy.szpt.service.AppStoreService;
import com.zksy.szpt.util.EncryptUtil;
import com.zksy.szpt.util.SignatureUtil;
import com.zksy.szpt.util.UserContextHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.RedisTemplate;
......@@ -96,12 +99,16 @@ public class SignatureVerificationFilter extends OncePerRequestFilter {
}
// 校验appId
String secretKey = this.appStoreService.getAppSecretByAppKey(appId);
AppStore appStore = this.appStoreService.getAppSecretInfo(appId);
String secretKey = appStore.getAppSecret();
if (!StringUtils.hasText(secretKey)) {
this.write(response, "appId无效");
return false;
}
//验证单位 todo
// String deptCode = appStore.getDeptCode();
// 请求体
String body = StreamUtils.copyToString(request.getInputStream(), StandardCharsets.UTF_8);
body = objectMapper.writeValueAsString(objectMapper.readValue(body, Map.class));
......@@ -113,6 +120,9 @@ public class SignatureVerificationFilter extends OncePerRequestFilter {
write(response, "签名有误,generatedSignature:" + generatedSignature + ",sign: " + sign + ",appId:" + appId + ",nonce:" + nonce + ",timestamp:" + timestampStr);
return false;
}
// 签名验证通过
addUserInfo(request);
return true;
}
......@@ -131,5 +141,17 @@ public class SignatureVerificationFilter extends OncePerRequestFilter {
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.getWriter().write(JSONUtil.toJsonStr(httpResult));
}
/**
* 增加用户信息
* @param request
*/
private void addUserInfo(HttpServletRequest request) {
// 增加用户信息
String userId = request.getHeader(SignatureUtil.APPID);
String ip = request.getRemoteAddr();
CurrentUserInfo currentUserInfo = new CurrentUserInfo.CurrentUserInfoBuilder().userId(userId).userName(userId).ip(ip).build();
UserContextHolder.set(currentUserInfo);
}
}
......@@ -2,6 +2,8 @@ package com.zksy.szpt.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.core.handlers.StrictFill;
import com.zksy.szpt.domain.CurrentUserInfo;
import com.zksy.szpt.util.UserContextHolder;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
......@@ -19,20 +21,25 @@ public class SzptMetaObjectHandler implements MetaObjectHandler {
// 新增时自动填充 create_time, update_time 字段
// this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
// this.strictInsertFill(metaObject, "cjsj", Date.class, new Date());
CurrentUserInfo currentUserInfo = UserContextHolder.get();
List<StrictFill> fields = Arrays.asList(
StrictFill.of("createTime", Date.class, new Date()),
StrictFill.of("cjsj", Date.class, new Date()),
StrictFill.of("gxsj", Date.class, new Date()),
StrictFill.of("updateTime", Date.class, new Date()),
StrictFill.of("sjgsdwdm", String.class, "1"),
StrictFill.of("sjgsdwmc", String.class, "1"),
// StrictFill.of("sjgsdwdm", String.class, "1"),
// StrictFill.of("sjgsdwmc", String.class, "1"),
StrictFill.of("createGajgjgdm", String.class, "1"),
StrictFill.of("createGajgmc", String.class, "1"),
StrictFill.of("createId", String.class, "1"),
// StrictFill.of("createId", String.class, "1"),
StrictFill.of("createId", String.class, currentUserInfo.getUserId()),
StrictFill.of("cjrid", String.class, "1"),
StrictFill.of("createBy", String.class, "1"),
// StrictFill.of("createBy", String.class, "1"),
StrictFill.of("createBy", String.class, currentUserInfo.getUserId()),
StrictFill.of("createTerminal", String.class, "1"),
StrictFill.of("createIp", String.class, "1"),
// StrictFill.of("createIp", String.class, "1"),
StrictFill.of("createIp", String.class, currentUserInfo.getIp()),
StrictFill.of("delFlag", Integer.class, 0)
// StrictFill.of("del_flag", Integer.class,0)
......@@ -42,6 +49,7 @@ public class SzptMetaObjectHandler implements MetaObjectHandler {
@Override
public void updateFill(MetaObject metaObject) {
CurrentUserInfo currentUserInfo = UserContextHolder.get();
List<StrictFill> fields = Arrays.asList(
StrictFill.of("updateTime", Date.class, new Date()),
StrictFill.of("gxrid", String.class, "1"),
......@@ -49,11 +57,14 @@ public class SzptMetaObjectHandler implements MetaObjectHandler {
StrictFill.of("gxrxm", String.class, "测试"),
StrictFill.of("update_gajgjgdm", String.class, '1'),
StrictFill.of("update_gajgmc", String.class, '1'),
StrictFill.of("update_id", String.class, '1'),
StrictFill.of("update_by", String.class, '1'),
// StrictFill.of("update_id", String.class, '1'),
StrictFill.of("update_id", String.class, currentUserInfo.getUserId()),
// StrictFill.of("update_by", String.class, '1'),
StrictFill.of("update_by", String.class, currentUserInfo.getUserId()),
StrictFill.of("update_time", Date.class, new Date()),
StrictFill.of("update_terminal", String.class, '1'),
StrictFill.of("update_ip", String.class, '1')
// StrictFill.of("update_ip", String.class, '1'),
StrictFill.of("update_ip", String.class, currentUserInfo.getIp())
// StrictFill.of("del_flag", Integer.class,0)
);
this.strictInsertFill(findTableInfo(metaObject), metaObject, fields);
......
......@@ -31,4 +31,14 @@ public class AppStoreService {
AppStore appStore = BeanMapperUtil.map(appStoreDTO, AppStore.class);
return appStoreMapper.insert(appStore);
}
public AppStore getAppSecretInfo(String appKey) {
LambdaQueryWrapper<AppStore> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AppStore::getAppKey, appKey);
List<AppStore> tbAppStorePOList = appStoreMapper.selectList(queryWrapper);
if (tbAppStorePOList != null && !tbAppStorePOList.isEmpty()) {
return tbAppStorePOList.get(0);
}
return null;
}
}
package com.zksy.szpt.util;
import com.zksy.szpt.domain.CurrentUserInfo;
/**
* 保存当前http请求的用户登录信息
*/
public class UserContextHolder {
private static final ThreadLocal<CurrentUserInfo> userThread = new ThreadLocal<>();
public static void set(CurrentUserInfo user){
userThread.set(user);
}
public static CurrentUserInfo get(){
return userThread.get();
}
//防止内存泄漏
public static void remove(){
userThread.remove();
}
}
......@@ -28,7 +28,7 @@ public class MainTest {
String nonce = "2";
String timestampStr = "21";
String appId = "1";
String appId = "1872476300466950146";
@Resource
......@@ -44,7 +44,7 @@ public class MainTest {
@DisplayName("任务完成情况")
public void xxRwwcqkTest() {
timestampStr = String.valueOf(System.currentTimeMillis() / 1000);
nonce = String.valueOf(System.currentTimeMillis() / 1000);
String secretKey = this.appStoreService.getAppSecretByAppKey(appId);
Assertions.assertNotNull(secretKey, "appId不存在");//断言appId存在,为空直接抛出异常不进行下一步测试,提高测试效率
//请求参数
......@@ -52,7 +52,7 @@ public class MainTest {
xxRwwcqkDTO.setRwid("123456");
xxRwwcqkDTO.setXxyid("123456");
xxRwwcqkDTO.setShrid("123456");
// xxRwwcqkDTO.setWczt("1");
xxRwwcqkDTO.setWczt("1");
xxRwwcqkDTO.setBmzt("1");
String json = null;
try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment