Commit 5db14b82 by 徐高华

链接

parent ee131705
......@@ -16,13 +16,22 @@ public class KeyDataDTO implements Serializable{
private static final long serialVersionUID = 1978554156094100L;
private Long id;
private String relationId;
private String dataKey;
private String data;
/**1活码手机号加密 2动态活码*/
private Integer type;
private java.util.Date createTime;
public void setId(Long id){
public String getRelationId() {
return relationId;
}
public void setRelationId(String relationId) {
this.relationId = relationId;
}
public void setId(Long id){
this.id = id;
}
......
......@@ -32,6 +32,6 @@ public interface TabKeyDataMapper {
* @Return TabHaobanKeyData
* @Throws
*/
public TabKeyData selectByKey(@Param("key")String key, @Param("type")int type);
public TabKeyData selectByKey(@Param("key")String key, @Param("type")int type , @Param("relationId")String relationId);
}
\ No newline at end of file
......@@ -16,12 +16,21 @@ public class TabKeyData implements Serializable {
private static final long serialVersionUID = 1978554156094100L;
private Long id;
private String relationId ;
private String dataKey;
private String data;
/**1活码手机号加密 2动态活码*/
private Integer type;
private java.util.Date createTime;
public String getRelationId() {
return relationId;
}
public void setRelationId(String relationId) {
this.relationId = relationId;
}
public void setId(Long id) {
this.id = id;
}
......
......@@ -5,8 +5,8 @@ import com.gic.haoban.manage.api.enums.KeyDataEnum;
public interface KeyDataService {
public KeyDataDTO saveData(String data, KeyDataEnum dataEnum);
public KeyDataDTO saveData(String relationId , String data, KeyDataEnum dataEnum);
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum);
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum, String relationId);
}
......@@ -7,7 +7,6 @@ import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.ToolUtil;
import com.gic.commons.util.UniqueIdUtils;
......@@ -29,9 +28,10 @@ public class KeyDataServiceImpl implements KeyDataService {
private TabKeyDataMapper tabKeyDataMapper;
@Override
public KeyDataDTO saveData(String data, KeyDataEnum dataEnum) {
public KeyDataDTO saveData(String relationId , String data, KeyDataEnum dataEnum) {
KeyDataDTO dto = new KeyDataDTO();
dto.setDataKey(generateKey(dataEnum, data));
dto.setRelationId(relationId);
dto.setDataKey(generateKey(dataEnum));
dto.setCreateTime(new Date());
dto.setId(UniqueIdUtils.uniqueLong());
dto.setData(data);
......@@ -42,15 +42,15 @@ public class KeyDataServiceImpl implements KeyDataService {
}
@Override
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum) {
TabKeyData tab = this.tabKeyDataMapper.selectByKey(key, dataEnum.getType());
public KeyDataDTO getDataByKey(String key, KeyDataEnum dataEnum , String relationId) {
TabKeyData tab = this.tabKeyDataMapper.selectByKey(key, dataEnum.getType() ,relationId);
if (null != tab) {
return EntityUtil.changeEntityByJSON(KeyDataDTO.class, tab);
}
return null;
}
public static String generateKey(KeyDataEnum dataEnum, String data) {
public static String generateKey(KeyDataEnum dataEnum) {
if (dataEnum.equals(KeyDataEnum.MOBILE)) {
StringBuilder sb = new StringBuilder();
String uuid = ToolUtil.randomUUID();
......@@ -67,7 +67,7 @@ public class KeyDataServiceImpl implements KeyDataService {
sb.append(PADDING[x % 62]);
}
sb.append(PADDING[(int) (Math.random() * 62)]);
return JSON.parseObject(data).getString("ljid") + "_" + sb.toString();
return sb.toString();
}
return UniqueIdUtils.uniqueLongHex();
}
......@@ -75,7 +75,7 @@ public class KeyDataServiceImpl implements KeyDataService {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
for (int i = 0; i < 1000000; i++) {
String s = generateKey(KeyDataEnum.MOBILE, "xxx");
String s = generateKey(KeyDataEnum.MOBILE);
set.add(s);
}
System.out.println(set.size());
......
......@@ -24,7 +24,8 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
json.put("unid", unionid);
json.put("ljid", linkId);
json.put("hmid", hmId);
return ServiceResponse.success(this.keyDataService.saveData(json.toString(), KeyDataEnum.DYNAMIC_HM));
return ServiceResponse
.success(this.keyDataService.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.DYNAMIC_HM));
}
@Override
......@@ -32,13 +33,13 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
JSONObject json = new JSONObject();
json.put("ph", mobile);
json.put("ljid", linkId);
KeyDataDTO keyData = this.keyDataService.saveData(json.toString(), KeyDataEnum.MOBILE) ;
KeyDataDTO keyData = this.keyDataService.saveData(String.valueOf(linkId), json.toString(), KeyDataEnum.MOBILE);
return ServiceResponse.success(keyData.getDataKey().split("_")[1]);
}
@Override
public ServiceResponse<String> getDataByKey(String key, KeyDataEnum dataEnum) {
KeyDataDTO data = this.keyDataService.getDataByKey(key, dataEnum);
KeyDataDTO data = this.keyDataService.getDataByKey(key, dataEnum, null);
if (null != data) {
return ServiceResponse.success(data.getData());
}
......@@ -48,7 +49,7 @@ public class KeyDataApiServiceImpl implements KeyDataApiService {
@Override
public ServiceResponse<String> getMobile(Long linkId, String key) {
key = linkId + "_" + key;
KeyDataDTO data = this.keyDataService.getDataByKey(key, KeyDataEnum.MOBILE);
KeyDataDTO data = this.keyDataService.getDataByKey(key, KeyDataEnum.MOBILE, String.valueOf(linkId));
if (null != data) {
JSONObject json = JSON.parseObject(data.getData());
return ServiceResponse.success(json.getString("ph"));
......
......@@ -4,6 +4,7 @@
<resultMap type="com.gic.haoban.manage.service.entity.TabKeyData"
id="result-map-tabHaobanKeyData">
<result column="id" property="id" />
<result column="relation_id" property="relationId" />
<result column="data_key" property="dataKey" />
<result column="data" property="data" />
<result column="type" property="type" />
......@@ -20,12 +21,14 @@
<![CDATA[
INSERT INTO tab_haoban_key_data(
id,
relation_id ,
data_key,
data,
type,
create_time
)VALUES(
#{id},
#{relationId} ,
#{dataKey,jdbcType=VARCHAR},
#{data,jdbcType=VARCHAR},
#{type,jdbcType=INTEGER},
......@@ -36,7 +39,11 @@
<!-- ============ 查询============= -->
<select id="selectByKey" resultMap="result-map-tabHaobanKeyData">
SELECT * FROM tab_haoban_key_data WHERE data_key = #{key} and type=#{type} order
SELECT * FROM tab_haoban_key_data WHERE data_key = #{key} and type=#{type}
<if test="null != relationId">
and relation_id = #{relationId}
</if>
order
by create_time desc limit 1
</select>
......
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