parent
7c6d7cfe6f
commit
b6914bdf1f
@ -0,0 +1,56 @@ |
||||
package com.hfkj.common.utils; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import org.apache.http.HttpResponse; |
||||
import org.apache.http.util.EntityUtils; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 阿里云业务服务 |
||||
* @className: AliyunService |
||||
* @author: HuRui |
||||
* @date: 2024/4/3 |
||||
**/ |
||||
public class AliyunService { |
||||
|
||||
/** |
||||
* 查询ip地址 |
||||
* @param ip ip地址 |
||||
* @return |
||||
*/ |
||||
public static JSONObject queryAddress(String ip) { |
||||
try { |
||||
String host = "https://ipaddquery.market.alicloudapi.com"; |
||||
String path = "/ip/address-query"; |
||||
String method = "POST"; |
||||
String appcode = "f9ace4c915054ca697a76fb9a4e1e8c0"; |
||||
|
||||
Map<String, String> headers = new HashMap<>(); |
||||
headers.put("Authorization", "APPCODE " + appcode); |
||||
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); |
||||
|
||||
Map<String, String> bodys = new HashMap<>(); |
||||
bodys.put("ip", ip); |
||||
|
||||
HttpResponse response = HttpUtils.doPost(host, path, method, headers, new HashMap<>(), bodys); |
||||
JSONObject resObj = JSONObject.parseObject(EntityUtils.toString(response.getEntity())); |
||||
if (resObj.getString("code").equals("200")) { |
||||
return resObj.getJSONObject("data"); |
||||
} |
||||
return null; |
||||
|
||||
} catch (Exception e) { |
||||
return null; |
||||
} |
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
try { |
||||
System.out.println(queryAddress("123.147.76.209")); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,139 @@ |
||||
package com.hfkj.dao; |
||||
|
||||
import com.hfkj.entity.SecUserLoginLog; |
||||
import com.hfkj.entity.SecUserLoginLogExample; |
||||
import java.util.List; |
||||
import org.apache.ibatis.annotations.Delete; |
||||
import org.apache.ibatis.annotations.DeleteProvider; |
||||
import org.apache.ibatis.annotations.Insert; |
||||
import org.apache.ibatis.annotations.InsertProvider; |
||||
import org.apache.ibatis.annotations.Options; |
||||
import org.apache.ibatis.annotations.Param; |
||||
import org.apache.ibatis.annotations.Result; |
||||
import org.apache.ibatis.annotations.Results; |
||||
import org.apache.ibatis.annotations.Select; |
||||
import org.apache.ibatis.annotations.SelectProvider; |
||||
import org.apache.ibatis.annotations.Update; |
||||
import org.apache.ibatis.annotations.UpdateProvider; |
||||
import org.apache.ibatis.type.JdbcType; |
||||
import org.springframework.stereotype.Repository; |
||||
|
||||
/** |
||||
* |
||||
* 代码由工具生成,请勿修改!!! |
||||
* 如果需要扩展请在其父类进行扩展 |
||||
* |
||||
**/ |
||||
@Repository |
||||
public interface SecUserLoginLogMapper extends SecUserLoginLogMapperExt { |
||||
@SelectProvider(type=SecUserLoginLogSqlProvider.class, method="countByExample") |
||||
long countByExample(SecUserLoginLogExample example); |
||||
|
||||
@DeleteProvider(type=SecUserLoginLogSqlProvider.class, method="deleteByExample") |
||||
int deleteByExample(SecUserLoginLogExample example); |
||||
|
||||
@Delete({ |
||||
"delete from sec_user_login_log", |
||||
"where id = #{id,jdbcType=BIGINT}" |
||||
}) |
||||
int deleteByPrimaryKey(Long id); |
||||
|
||||
@Insert({ |
||||
"insert into sec_user_login_log (user_id, user_login_name, ", |
||||
"ip, country, region_id, ", |
||||
"region_name, city_id, ", |
||||
"city_name, isp, `status`, ", |
||||
"remark, create_time, ", |
||||
"ext_1, ext_2, ext_3)", |
||||
"values (#{userId,jdbcType=BIGINT}, #{userLoginName,jdbcType=VARCHAR}, ", |
||||
"#{ip,jdbcType=VARCHAR}, #{country,jdbcType=VARCHAR}, #{regionId,jdbcType=VARCHAR}, ", |
||||
"#{regionName,jdbcType=VARCHAR}, #{cityId,jdbcType=VARCHAR}, ", |
||||
"#{cityName,jdbcType=VARCHAR}, #{isp,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ", |
||||
"#{remark,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, ", |
||||
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})" |
||||
}) |
||||
@Options(useGeneratedKeys=true,keyProperty="id") |
||||
int insert(SecUserLoginLog record); |
||||
|
||||
@InsertProvider(type=SecUserLoginLogSqlProvider.class, method="insertSelective") |
||||
@Options(useGeneratedKeys=true,keyProperty="id") |
||||
int insertSelective(SecUserLoginLog record); |
||||
|
||||
@SelectProvider(type=SecUserLoginLogSqlProvider.class, method="selectByExample") |
||||
@Results({ |
||||
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), |
||||
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT), |
||||
@Result(column="user_login_name", property="userLoginName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ip", property="ip", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="country", property="country", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="region_id", property="regionId", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="region_name", property="regionName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="city_id", property="cityId", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="city_name", property="cityName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="isp", property="isp", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER), |
||||
@Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), |
||||
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR) |
||||
}) |
||||
List<SecUserLoginLog> selectByExample(SecUserLoginLogExample example); |
||||
|
||||
@Select({ |
||||
"select", |
||||
"id, user_id, user_login_name, ip, country, region_id, region_name, city_id, ", |
||||
"city_name, isp, `status`, remark, create_time, ext_1, ext_2, ext_3", |
||||
"from sec_user_login_log", |
||||
"where id = #{id,jdbcType=BIGINT}" |
||||
}) |
||||
@Results({ |
||||
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true), |
||||
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT), |
||||
@Result(column="user_login_name", property="userLoginName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ip", property="ip", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="country", property="country", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="region_id", property="regionId", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="region_name", property="regionName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="city_id", property="cityId", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="city_name", property="cityName", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="isp", property="isp", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER), |
||||
@Result(column="remark", property="remark", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP), |
||||
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR), |
||||
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR) |
||||
}) |
||||
SecUserLoginLog selectByPrimaryKey(Long id); |
||||
|
||||
@UpdateProvider(type=SecUserLoginLogSqlProvider.class, method="updateByExampleSelective") |
||||
int updateByExampleSelective(@Param("record") SecUserLoginLog record, @Param("example") SecUserLoginLogExample example); |
||||
|
||||
@UpdateProvider(type=SecUserLoginLogSqlProvider.class, method="updateByExample") |
||||
int updateByExample(@Param("record") SecUserLoginLog record, @Param("example") SecUserLoginLogExample example); |
||||
|
||||
@UpdateProvider(type=SecUserLoginLogSqlProvider.class, method="updateByPrimaryKeySelective") |
||||
int updateByPrimaryKeySelective(SecUserLoginLog record); |
||||
|
||||
@Update({ |
||||
"update sec_user_login_log", |
||||
"set user_id = #{userId,jdbcType=BIGINT},", |
||||
"user_login_name = #{userLoginName,jdbcType=VARCHAR},", |
||||
"ip = #{ip,jdbcType=VARCHAR},", |
||||
"country = #{country,jdbcType=VARCHAR},", |
||||
"region_id = #{regionId,jdbcType=VARCHAR},", |
||||
"region_name = #{regionName,jdbcType=VARCHAR},", |
||||
"city_id = #{cityId,jdbcType=VARCHAR},", |
||||
"city_name = #{cityName,jdbcType=VARCHAR},", |
||||
"isp = #{isp,jdbcType=VARCHAR},", |
||||
"`status` = #{status,jdbcType=INTEGER},", |
||||
"remark = #{remark,jdbcType=VARCHAR},", |
||||
"create_time = #{createTime,jdbcType=TIMESTAMP},", |
||||
"ext_1 = #{ext1,jdbcType=VARCHAR},", |
||||
"ext_2 = #{ext2,jdbcType=VARCHAR},", |
||||
"ext_3 = #{ext3,jdbcType=VARCHAR}", |
||||
"where id = #{id,jdbcType=BIGINT}" |
||||
}) |
||||
int updateByPrimaryKey(SecUserLoginLog record); |
||||
} |
@ -0,0 +1,7 @@ |
||||
package com.hfkj.dao; |
||||
|
||||
/** |
||||
* mapper扩展类 |
||||
*/ |
||||
public interface SecUserLoginLogMapperExt { |
||||
} |
@ -0,0 +1,388 @@ |
||||
package com.hfkj.dao; |
||||
|
||||
import com.hfkj.entity.SecUserLoginLog; |
||||
import com.hfkj.entity.SecUserLoginLogExample.Criteria; |
||||
import com.hfkj.entity.SecUserLoginLogExample.Criterion; |
||||
import com.hfkj.entity.SecUserLoginLogExample; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import org.apache.ibatis.jdbc.SQL; |
||||
|
||||
public class SecUserLoginLogSqlProvider { |
||||
|
||||
public String countByExample(SecUserLoginLogExample example) { |
||||
SQL sql = new SQL(); |
||||
sql.SELECT("count(*)").FROM("sec_user_login_log"); |
||||
applyWhere(sql, example, false); |
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String deleteByExample(SecUserLoginLogExample example) { |
||||
SQL sql = new SQL(); |
||||
sql.DELETE_FROM("sec_user_login_log"); |
||||
applyWhere(sql, example, false); |
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String insertSelective(SecUserLoginLog record) { |
||||
SQL sql = new SQL(); |
||||
sql.INSERT_INTO("sec_user_login_log"); |
||||
|
||||
if (record.getUserId() != null) { |
||||
sql.VALUES("user_id", "#{userId,jdbcType=BIGINT}"); |
||||
} |
||||
|
||||
if (record.getUserLoginName() != null) { |
||||
sql.VALUES("user_login_name", "#{userLoginName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIp() != null) { |
||||
sql.VALUES("ip", "#{ip,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCountry() != null) { |
||||
sql.VALUES("country", "#{country,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionId() != null) { |
||||
sql.VALUES("region_id", "#{regionId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionName() != null) { |
||||
sql.VALUES("region_name", "#{regionName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityId() != null) { |
||||
sql.VALUES("city_id", "#{cityId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityName() != null) { |
||||
sql.VALUES("city_name", "#{cityName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIsp() != null) { |
||||
sql.VALUES("isp", "#{isp,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getStatus() != null) { |
||||
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}"); |
||||
} |
||||
|
||||
if (record.getRemark() != null) { |
||||
sql.VALUES("remark", "#{remark,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCreateTime() != null) { |
||||
sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}"); |
||||
} |
||||
|
||||
if (record.getExt1() != null) { |
||||
sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt2() != null) { |
||||
sql.VALUES("ext_2", "#{ext2,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt3() != null) { |
||||
sql.VALUES("ext_3", "#{ext3,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String selectByExample(SecUserLoginLogExample example) { |
||||
SQL sql = new SQL(); |
||||
if (example != null && example.isDistinct()) { |
||||
sql.SELECT_DISTINCT("id"); |
||||
} else { |
||||
sql.SELECT("id"); |
||||
} |
||||
sql.SELECT("user_id"); |
||||
sql.SELECT("user_login_name"); |
||||
sql.SELECT("ip"); |
||||
sql.SELECT("country"); |
||||
sql.SELECT("region_id"); |
||||
sql.SELECT("region_name"); |
||||
sql.SELECT("city_id"); |
||||
sql.SELECT("city_name"); |
||||
sql.SELECT("isp"); |
||||
sql.SELECT("`status`"); |
||||
sql.SELECT("remark"); |
||||
sql.SELECT("create_time"); |
||||
sql.SELECT("ext_1"); |
||||
sql.SELECT("ext_2"); |
||||
sql.SELECT("ext_3"); |
||||
sql.FROM("sec_user_login_log"); |
||||
applyWhere(sql, example, false); |
||||
|
||||
if (example != null && example.getOrderByClause() != null) { |
||||
sql.ORDER_BY(example.getOrderByClause()); |
||||
} |
||||
|
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String updateByExampleSelective(Map<String, Object> parameter) { |
||||
SecUserLoginLog record = (SecUserLoginLog) parameter.get("record"); |
||||
SecUserLoginLogExample example = (SecUserLoginLogExample) parameter.get("example"); |
||||
|
||||
SQL sql = new SQL(); |
||||
sql.UPDATE("sec_user_login_log"); |
||||
|
||||
if (record.getId() != null) { |
||||
sql.SET("id = #{record.id,jdbcType=BIGINT}"); |
||||
} |
||||
|
||||
if (record.getUserId() != null) { |
||||
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}"); |
||||
} |
||||
|
||||
if (record.getUserLoginName() != null) { |
||||
sql.SET("user_login_name = #{record.userLoginName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIp() != null) { |
||||
sql.SET("ip = #{record.ip,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCountry() != null) { |
||||
sql.SET("country = #{record.country,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionId() != null) { |
||||
sql.SET("region_id = #{record.regionId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionName() != null) { |
||||
sql.SET("region_name = #{record.regionName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityId() != null) { |
||||
sql.SET("city_id = #{record.cityId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityName() != null) { |
||||
sql.SET("city_name = #{record.cityName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIsp() != null) { |
||||
sql.SET("isp = #{record.isp,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getStatus() != null) { |
||||
sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); |
||||
} |
||||
|
||||
if (record.getRemark() != null) { |
||||
sql.SET("remark = #{record.remark,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCreateTime() != null) { |
||||
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); |
||||
} |
||||
|
||||
if (record.getExt1() != null) { |
||||
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt2() != null) { |
||||
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt3() != null) { |
||||
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
applyWhere(sql, example, true); |
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String updateByExample(Map<String, Object> parameter) { |
||||
SQL sql = new SQL(); |
||||
sql.UPDATE("sec_user_login_log"); |
||||
|
||||
sql.SET("id = #{record.id,jdbcType=BIGINT}"); |
||||
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}"); |
||||
sql.SET("user_login_name = #{record.userLoginName,jdbcType=VARCHAR}"); |
||||
sql.SET("ip = #{record.ip,jdbcType=VARCHAR}"); |
||||
sql.SET("country = #{record.country,jdbcType=VARCHAR}"); |
||||
sql.SET("region_id = #{record.regionId,jdbcType=VARCHAR}"); |
||||
sql.SET("region_name = #{record.regionName,jdbcType=VARCHAR}"); |
||||
sql.SET("city_id = #{record.cityId,jdbcType=VARCHAR}"); |
||||
sql.SET("city_name = #{record.cityName,jdbcType=VARCHAR}"); |
||||
sql.SET("isp = #{record.isp,jdbcType=VARCHAR}"); |
||||
sql.SET("`status` = #{record.status,jdbcType=INTEGER}"); |
||||
sql.SET("remark = #{record.remark,jdbcType=VARCHAR}"); |
||||
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}"); |
||||
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}"); |
||||
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}"); |
||||
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}"); |
||||
|
||||
SecUserLoginLogExample example = (SecUserLoginLogExample) parameter.get("example"); |
||||
applyWhere(sql, example, true); |
||||
return sql.toString(); |
||||
} |
||||
|
||||
public String updateByPrimaryKeySelective(SecUserLoginLog record) { |
||||
SQL sql = new SQL(); |
||||
sql.UPDATE("sec_user_login_log"); |
||||
|
||||
if (record.getUserId() != null) { |
||||
sql.SET("user_id = #{userId,jdbcType=BIGINT}"); |
||||
} |
||||
|
||||
if (record.getUserLoginName() != null) { |
||||
sql.SET("user_login_name = #{userLoginName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIp() != null) { |
||||
sql.SET("ip = #{ip,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCountry() != null) { |
||||
sql.SET("country = #{country,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionId() != null) { |
||||
sql.SET("region_id = #{regionId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getRegionName() != null) { |
||||
sql.SET("region_name = #{regionName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityId() != null) { |
||||
sql.SET("city_id = #{cityId,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCityName() != null) { |
||||
sql.SET("city_name = #{cityName,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getIsp() != null) { |
||||
sql.SET("isp = #{isp,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getStatus() != null) { |
||||
sql.SET("`status` = #{status,jdbcType=INTEGER}"); |
||||
} |
||||
|
||||
if (record.getRemark() != null) { |
||||
sql.SET("remark = #{remark,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getCreateTime() != null) { |
||||
sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}"); |
||||
} |
||||
|
||||
if (record.getExt1() != null) { |
||||
sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt2() != null) { |
||||
sql.SET("ext_2 = #{ext2,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
if (record.getExt3() != null) { |
||||
sql.SET("ext_3 = #{ext3,jdbcType=VARCHAR}"); |
||||
} |
||||
|
||||
sql.WHERE("id = #{id,jdbcType=BIGINT}"); |
||||
|
||||
return sql.toString(); |
||||
} |
||||
|
||||
protected void applyWhere(SQL sql, SecUserLoginLogExample example, boolean includeExamplePhrase) { |
||||
if (example == null) { |
||||
return; |
||||
} |
||||
|
||||
String parmPhrase1; |
||||
String parmPhrase1_th; |
||||
String parmPhrase2; |
||||
String parmPhrase2_th; |
||||
String parmPhrase3; |
||||
String parmPhrase3_th; |
||||
if (includeExamplePhrase) { |
||||
parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}"; |
||||
parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}"; |
||||
parmPhrase2 = "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}"; |
||||
parmPhrase2_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}"; |
||||
parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}"; |
||||
parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}"; |
||||
} else { |
||||
parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}"; |
||||
parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}"; |
||||
parmPhrase2 = "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}"; |
||||
parmPhrase2_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}"; |
||||
parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}"; |
||||
parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}"; |
||||
} |
||||
|
||||
StringBuilder sb = new StringBuilder(); |
||||
List<Criteria> oredCriteria = example.getOredCriteria(); |
||||
boolean firstCriteria = true; |
||||
for (int i = 0; i < oredCriteria.size(); i++) { |
||||
Criteria criteria = oredCriteria.get(i); |
||||
if (criteria.isValid()) { |
||||
if (firstCriteria) { |
||||
firstCriteria = false; |
||||
} else { |
||||
sb.append(" or "); |
||||
} |
||||
|
||||
sb.append('('); |
||||
List<Criterion> criterions = criteria.getAllCriteria(); |
||||
boolean firstCriterion = true; |
||||
for (int j = 0; j < criterions.size(); j++) { |
||||
Criterion criterion = criterions.get(j); |
||||
if (firstCriterion) { |
||||
firstCriterion = false; |
||||
} else { |
||||
sb.append(" and "); |
||||
} |
||||
|
||||
if (criterion.isNoValue()) { |
||||
sb.append(criterion.getCondition()); |
||||
} else if (criterion.isSingleValue()) { |
||||
if (criterion.getTypeHandler() == null) { |
||||
sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j)); |
||||
} else { |
||||
sb.append(String.format(parmPhrase1_th, criterion.getCondition(), i, j,criterion.getTypeHandler())); |
||||
} |
||||
} else if (criterion.isBetweenValue()) { |
||||
if (criterion.getTypeHandler() == null) { |
||||
sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j)); |
||||
} else { |
||||
sb.append(String.format(parmPhrase2_th, criterion.getCondition(), i, j, criterion.getTypeHandler(), i, j, criterion.getTypeHandler())); |
||||
} |
||||
} else if (criterion.isListValue()) { |
||||
sb.append(criterion.getCondition()); |
||||
sb.append(" ("); |
||||
List<?> listItems = (List<?>) criterion.getValue(); |
||||
boolean comma = false; |
||||
for (int k = 0; k < listItems.size(); k++) { |
||||
if (comma) { |
||||
sb.append(", "); |
||||
} else { |
||||
comma = true; |
||||
} |
||||
if (criterion.getTypeHandler() == null) { |
||||
sb.append(String.format(parmPhrase3, i, j, k)); |
||||
} else { |
||||
sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler())); |
||||
} |
||||
} |
||||
sb.append(')'); |
||||
} |
||||
} |
||||
sb.append(')'); |
||||
} |
||||
} |
||||
|
||||
if (sb.length() > 0) { |
||||
sql.WHERE(sb.toString()); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,296 @@ |
||||
package com.hfkj.entity; |
||||
|
||||
import java.io.Serializable; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* sec_user_login_log |
||||
* @author |
||||
*/ |
||||
/** |
||||
* |
||||
* 代码由工具生成 |
||||
* |
||||
**/ |
||||
public class SecUserLoginLog implements Serializable { |
||||
/** |
||||
* 主键 |
||||
*/ |
||||
private Long id; |
||||
|
||||
/** |
||||
* 登录账户id |
||||
*/ |
||||
private Long userId; |
||||
|
||||
/** |
||||
* 登录账户 |
||||
*/ |
||||
private String userLoginName; |
||||
|
||||
/** |
||||
* ip |
||||
*/ |
||||
private String ip; |
||||
|
||||
/** |
||||
* 国家 |
||||
*/ |
||||
private String country; |
||||
|
||||
/** |
||||
* 省份编号 |
||||
*/ |
||||
private String regionId; |
||||
|
||||
/** |
||||
* 省份名称 |
||||
*/ |
||||
private String regionName; |
||||
|
||||
/** |
||||
* 城市编号 |
||||
*/ |
||||
private String cityId; |
||||
|
||||
/** |
||||
* 城市名称 |
||||
*/ |
||||
private String cityName; |
||||
|
||||
/** |
||||
* 运营商 |
||||
*/ |
||||
private String isp; |
||||
|
||||
/** |
||||
* 状态 1:正常 2:风险 |
||||
*/ |
||||
private Integer status; |
||||
|
||||
/** |
||||
* 备注 |
||||
*/ |
||||
private String remark; |
||||
|
||||
/** |
||||
* 创建时间 |
||||
*/ |
||||
private Date createTime; |
||||
|
||||
private String ext1; |
||||
|
||||
private String ext2; |
||||
|
||||
private String ext3; |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
public Long getId() { |
||||
return id; |
||||
} |
||||
|
||||
public void setId(Long id) { |
||||
this.id = id; |
||||
} |
||||
|
||||
public Long getUserId() { |
||||
return userId; |
||||
} |
||||
|
||||
public void setUserId(Long userId) { |
||||
this.userId = userId; |
||||
} |
||||
|
||||
public String getUserLoginName() { |
||||
return userLoginName; |
||||
} |
||||
|
||||
public void setUserLoginName(String userLoginName) { |
||||
this.userLoginName = userLoginName; |
||||
} |
||||
|
||||
public String getIp() { |
||||
return ip; |
||||
} |
||||
|
||||
public void setIp(String ip) { |
||||
this.ip = ip; |
||||
} |
||||
|
||||
public String getCountry() { |
||||
return country; |
||||
} |
||||
|
||||
public void setCountry(String country) { |
||||
this.country = country; |
||||
} |
||||
|
||||
public String getRegionId() { |
||||
return regionId; |
||||
} |
||||
|
||||
public void setRegionId(String regionId) { |
||||
this.regionId = regionId; |
||||
} |
||||
|
||||
public String getRegionName() { |
||||
return regionName; |
||||
} |
||||
|
||||
public void setRegionName(String regionName) { |
||||
this.regionName = regionName; |
||||
} |
||||
|
||||
public String getCityId() { |
||||
return cityId; |
||||
} |
||||
|
||||
public void setCityId(String cityId) { |
||||
this.cityId = cityId; |
||||
} |
||||
|
||||
public String getCityName() { |
||||
return cityName; |
||||
} |
||||
|
||||
public void setCityName(String cityName) { |
||||
this.cityName = cityName; |
||||
} |
||||
|
||||
public String getIsp() { |
||||
return isp; |
||||
} |
||||
|
||||
public void setIsp(String isp) { |
||||
this.isp = isp; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public void setStatus(Integer status) { |
||||
this.status = status; |
||||
} |
||||
|
||||
public String getRemark() { |
||||
return remark; |
||||
} |
||||
|
||||
public void setRemark(String remark) { |
||||
this.remark = remark; |
||||
} |
||||
|
||||
public Date getCreateTime() { |
||||
return createTime; |
||||
} |
||||
|
||||
public void setCreateTime(Date createTime) { |
||||
this.createTime = createTime; |
||||
} |
||||
|
||||
public String getExt1() { |
||||
return ext1; |
||||
} |
||||
|
||||
public void setExt1(String ext1) { |
||||
this.ext1 = ext1; |
||||
} |
||||
|
||||
public String getExt2() { |
||||
return ext2; |
||||
} |
||||
|
||||
public void setExt2(String ext2) { |
||||
this.ext2 = ext2; |
||||
} |
||||
|
||||
public String getExt3() { |
||||
return ext3; |
||||
} |
||||
|
||||
public void setExt3(String ext3) { |
||||
this.ext3 = ext3; |
||||
} |
||||
|
||||
@Override |
||||
public boolean equals(Object that) { |
||||
if (this == that) { |
||||
return true; |
||||
} |
||||
if (that == null) { |
||||
return false; |
||||
} |
||||
if (getClass() != that.getClass()) { |
||||
return false; |
||||
} |
||||
SecUserLoginLog other = (SecUserLoginLog) that; |
||||
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) |
||||
&& (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId())) |
||||
&& (this.getUserLoginName() == null ? other.getUserLoginName() == null : this.getUserLoginName().equals(other.getUserLoginName())) |
||||
&& (this.getIp() == null ? other.getIp() == null : this.getIp().equals(other.getIp())) |
||||
&& (this.getCountry() == null ? other.getCountry() == null : this.getCountry().equals(other.getCountry())) |
||||
&& (this.getRegionId() == null ? other.getRegionId() == null : this.getRegionId().equals(other.getRegionId())) |
||||
&& (this.getRegionName() == null ? other.getRegionName() == null : this.getRegionName().equals(other.getRegionName())) |
||||
&& (this.getCityId() == null ? other.getCityId() == null : this.getCityId().equals(other.getCityId())) |
||||
&& (this.getCityName() == null ? other.getCityName() == null : this.getCityName().equals(other.getCityName())) |
||||
&& (this.getIsp() == null ? other.getIsp() == null : this.getIsp().equals(other.getIsp())) |
||||
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus())) |
||||
&& (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark())) |
||||
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) |
||||
&& (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1())) |
||||
&& (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2())) |
||||
&& (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3())); |
||||
} |
||||
|
||||
@Override |
||||
public int hashCode() { |
||||
final int prime = 31; |
||||
int result = 1; |
||||
result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); |
||||
result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode()); |
||||
result = prime * result + ((getUserLoginName() == null) ? 0 : getUserLoginName().hashCode()); |
||||
result = prime * result + ((getIp() == null) ? 0 : getIp().hashCode()); |
||||
result = prime * result + ((getCountry() == null) ? 0 : getCountry().hashCode()); |
||||
result = prime * result + ((getRegionId() == null) ? 0 : getRegionId().hashCode()); |
||||
result = prime * result + ((getRegionName() == null) ? 0 : getRegionName().hashCode()); |
||||
result = prime * result + ((getCityId() == null) ? 0 : getCityId().hashCode()); |
||||
result = prime * result + ((getCityName() == null) ? 0 : getCityName().hashCode()); |
||||
result = prime * result + ((getIsp() == null) ? 0 : getIsp().hashCode()); |
||||
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode()); |
||||
result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode()); |
||||
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); |
||||
result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode()); |
||||
result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode()); |
||||
result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode()); |
||||
return result; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
StringBuilder sb = new StringBuilder(); |
||||
sb.append(getClass().getSimpleName()); |
||||
sb.append(" ["); |
||||
sb.append("Hash = ").append(hashCode()); |
||||
sb.append(", id=").append(id); |
||||
sb.append(", userId=").append(userId); |
||||
sb.append(", userLoginName=").append(userLoginName); |
||||
sb.append(", ip=").append(ip); |
||||
sb.append(", country=").append(country); |
||||
sb.append(", regionId=").append(regionId); |
||||
sb.append(", regionName=").append(regionName); |
||||
sb.append(", cityId=").append(cityId); |
||||
sb.append(", cityName=").append(cityName); |
||||
sb.append(", isp=").append(isp); |
||||
sb.append(", status=").append(status); |
||||
sb.append(", remark=").append(remark); |
||||
sb.append(", createTime=").append(createTime); |
||||
sb.append(", ext1=").append(ext1); |
||||
sb.append(", ext2=").append(ext2); |
||||
sb.append(", ext3=").append(ext3); |
||||
sb.append(", serialVersionUID=").append(serialVersionUID); |
||||
sb.append("]"); |
||||
return sb.toString(); |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,37 @@ |
||||
package com.hfkj.service; |
||||
|
||||
import com.hfkj.entity.SecUser; |
||||
import com.hfkj.entity.SecUserLoginLog; |
||||
|
||||
import javax.servlet.http.HttpServletRequest; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 登录账户 |
||||
* @className: SecUserLoginLogService |
||||
* @author: HuRui |
||||
* @date: 2024/4/3 |
||||
**/ |
||||
public interface SecUserLoginLogService { |
||||
|
||||
/** |
||||
* 创建 |
||||
* @param userLoginLog |
||||
*/ |
||||
void create(SecUserLoginLog userLoginLog); |
||||
|
||||
/** |
||||
* 异步创建登录日志 |
||||
* @param user |
||||
*/ |
||||
void asyncCreateLog(SecUser user, HttpServletRequest request); |
||||
|
||||
/** |
||||
* 查询日志列表 |
||||
* @param param |
||||
* @return |
||||
*/ |
||||
List<SecUserLoginLog> getLogList(Map<String, Object> param); |
||||
|
||||
} |
@ -0,0 +1,98 @@ |
||||
package com.hfkj.service.impl; |
||||
|
||||
import com.alibaba.fastjson.JSONObject; |
||||
import com.hfkj.common.utils.AliyunService; |
||||
import com.hfkj.common.utils.RequestUtils; |
||||
import com.hfkj.dao.SecUserLoginLogMapper; |
||||
import com.hfkj.entity.SecUser; |
||||
import com.hfkj.entity.SecUserLoginLog; |
||||
import com.hfkj.entity.SecUserLoginLogExample; |
||||
import com.hfkj.service.SecUserLoginLogService; |
||||
import com.hfkj.sysenum.SecUserLoginLogStatusEnum; |
||||
import org.apache.commons.collections4.MapUtils; |
||||
import org.apache.commons.lang3.StringUtils; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import javax.annotation.Resource; |
||||
import javax.servlet.http.HttpServletRequest; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.concurrent.ExecutorService; |
||||
import java.util.concurrent.Executors; |
||||
|
||||
/** |
||||
* @className: SecUserLoginLogServiceImpl |
||||
* @author: HuRui |
||||
* @date: 2024/4/3 |
||||
**/ |
||||
@Service("secUserLoginLogService") |
||||
public class SecUserLoginLogServiceImpl implements SecUserLoginLogService { |
||||
|
||||
@Resource |
||||
private SecUserLoginLogMapper secUserLoginLogMapper; |
||||
|
||||
@Override |
||||
public void create(SecUserLoginLog userLoginLog) { |
||||
userLoginLog.setCreateTime(new Date()); |
||||
secUserLoginLogMapper.insert(userLoginLog); |
||||
} |
||||
|
||||
@Override |
||||
public void asyncCreateLog(SecUser user, HttpServletRequest request) { |
||||
// 创建一个单线程的线程池
|
||||
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor(); |
||||
// 异步记录登录信息
|
||||
singleThreadExecutor.submit(new Runnable() { |
||||
@Override |
||||
public void run() { |
||||
SecUserLoginLog loginLog = new SecUserLoginLog(); |
||||
loginLog.setUserId(user.getId()); |
||||
loginLog.setUserLoginName(user.getLoginName()); |
||||
loginLog.setIp(RequestUtils.getIpAddress(request)); |
||||
// 查询ip归属地
|
||||
JSONObject ipAddress = AliyunService.queryAddress(loginLog.getIp()); |
||||
if (ipAddress != null) { |
||||
loginLog.setCountry(StringUtils.isNotBlank(ipAddress.getString("country"))?ipAddress.getString("country"):"未知"); |
||||
loginLog.setRegionId(StringUtils.isNotBlank(ipAddress.getString("region_id"))?ipAddress.getString("region_id"):null); |
||||
loginLog.setRegionName(StringUtils.isNotBlank(ipAddress.getString("region"))?ipAddress.getString("region"):"未知"); |
||||
loginLog.setCityId(StringUtils.isNotBlank(ipAddress.getString("city_id"))?ipAddress.getString("city_id"):null); |
||||
loginLog.setCityName(StringUtils.isNotBlank(ipAddress.getString("city"))?ipAddress.getString("city"):"未知"); |
||||
loginLog.setIsp(StringUtils.isNotBlank(ipAddress.getString("isp"))?ipAddress.getString("isp"):"未知"); |
||||
loginLog.setStatus(SecUserLoginLogStatusEnum.status1.getCode()); |
||||
} else { |
||||
loginLog.setCountry("未知"); |
||||
loginLog.setRegionName("未知"); |
||||
loginLog.setCityName("未知"); |
||||
loginLog.setIsp("未知"); |
||||
loginLog.setStatus(SecUserLoginLogStatusEnum.status2.getCode()); |
||||
} |
||||
create(loginLog); |
||||
} |
||||
}); |
||||
singleThreadExecutor.shutdown(); |
||||
} |
||||
|
||||
@Override |
||||
public List<SecUserLoginLog> getLogList(Map<String, Object> param) { |
||||
SecUserLoginLogExample example = new SecUserLoginLogExample(); |
||||
SecUserLoginLogExample.Criteria criteria = example.createCriteria(); |
||||
|
||||
if (MapUtils.getLong(param, "userId") != null) { |
||||
criteria.andUserIdEqualTo(MapUtils.getLong(param, "userId")); |
||||
} |
||||
|
||||
if (StringUtils.isNotBlank(MapUtils.getString(param, "userLoginName"))) { |
||||
criteria.andUserLoginNameEqualTo(MapUtils.getString(param, "userLoginName")); |
||||
} |
||||
|
||||
if (MapUtils.getInteger(param, "status") != null) { |
||||
criteria.andStatusEqualTo(MapUtils.getInteger(param, "status")); |
||||
} |
||||
|
||||
example.setOrderByClause("create_time desc"); |
||||
return secUserLoginLogMapper.selectByExample(example); |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,46 @@ |
||||
package com.hfkj.sysenum; |
||||
|
||||
/** |
||||
* 登录日志状态 |
||||
* @className: SecUserLoginLogStatusEnum |
||||
* @author: HuRui |
||||
* @date: 2024/4/3 |
||||
**/ |
||||
public enum SecUserLoginLogStatusEnum { |
||||
/** |
||||
* 正常 |
||||
*/ |
||||
status1(1, "正常"), |
||||
|
||||
/** |
||||
* 风险 |
||||
*/ |
||||
status2(2, "风险"), |
||||
; |
||||
|
||||
private int code; |
||||
|
||||
private String name; |
||||
|
||||
|
||||
SecUserLoginLogStatusEnum(int code, String name) { |
||||
this.code = code; |
||||
this.name = name; |
||||
} |
||||
|
||||
public int getCode() { |
||||
return code; |
||||
} |
||||
|
||||
public void setCode(int code) { |
||||
this.code = code; |
||||
} |
||||
|
||||
public String getName() { |
||||
return name; |
||||
} |
||||
|
||||
public void setName(String name) { |
||||
this.name = name; |
||||
} |
||||
} |
Loading…
Reference in new issue