记得上下班打卡 | git大法好,push需谨慎

Commit 77ef0d62 authored by 张国柄's avatar 张国柄

补充入场人逻辑

parent 7e481444
...@@ -12,8 +12,8 @@ liquidnet: ...@@ -12,8 +12,8 @@ liquidnet:
rabbitmq: rabbitmq:
host: 172.16.2.15 host: 172.16.2.15
port: 5672 port: 5672
username: bingbing username: admin
password: 123456 password: admin
knife4j: knife4j:
disable: false disable: false
redis: redis:
......
package com.liquidnet.service.adam.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "AdamEntersParam", description = "添加入场人参数")
@Data
public class AdamEntersResult implements java.io.Serializable {
private static final long serialVersionUID = 5940725094369061032L;
@ApiModelProperty(position = 10, required = true, value = "入场人名称[50]", example = "Swagger")
private String name;
@ApiModelProperty(position = 11, required = true, value = "入场人手机号[11]", example = "13100000000")
private String mobile;
@ApiModelProperty(position = 12, required = true, value = "证件类型:1-大陆身份证,2-港澳通行证,3-台胞证,4-护照,5-军官证", allowableValues = "1,2,3,4,5")
private Integer type;
@ApiModelProperty(position = 13, required = true, value = "入场人证件号[11]", example = "110101110001010111")
private String idCard;
@ApiModelProperty(position = 14, required = true, value = "是否是默认入场人:0-否,1-是", allowableValues = "0,1")
private Boolean isDefault;
}
package com.liquidnet.service.adam.dto.vo; package com.liquidnet.service.adam.dto.vo;
import com.liquidnet.service.adam.entity.AdamEnters;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ApiModel(value = "AdamEntersVo", description = "入场人") @ApiModel(value = "AdamEntersVo", description = "入场人")
@Data @Data
public class AdamEntersVo implements java.io.Serializable { public class AdamEntersVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = 5258094625450569125L; private static final long serialVersionUID = 5258094625450569125L;
@ApiModelProperty(position = 10, value = "入场人名称[50]") @ApiModelProperty(position = 10, value = "入场人名称[50]")
private String name; private String name;
...@@ -18,4 +19,19 @@ public class AdamEntersVo implements java.io.Serializable { ...@@ -18,4 +19,19 @@ public class AdamEntersVo implements java.io.Serializable {
private String idCard; private String idCard;
@ApiModelProperty(position = 14, value = "是否是默认入场人:0-否,1-是") @ApiModelProperty(position = 14, value = "是否是默认入场人:0-否,1-是")
private Boolean isDefault; private Boolean isDefault;
private static final AdamEntersVo obj = new AdamEntersVo();
public static AdamEntersVo getNew() {
try {
return (AdamEntersVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new AdamEntersVo();
}
public AdamEntersVo copy(AdamEnters source) {
return this;
}
} }
...@@ -19,5 +19,5 @@ public interface IAdamEntersService extends IService<AdamEnters> { ...@@ -19,5 +19,5 @@ public interface IAdamEntersService extends IService<AdamEnters> {
boolean add(AdamEnters info); boolean add(AdamEnters info);
AdamEnters query(String entersId); AdamEnters query(String uid, String entersId);
} }
...@@ -122,21 +122,25 @@ create index idx_adam_enters_uid on adam_enters (uid); ...@@ -122,21 +122,25 @@ create index idx_adam_enters_uid on adam_enters (uid);
drop table if exists adam_addresses; drop table if exists adam_addresses;
create table adam_addresses create table adam_addresses
( (
mid int unsigned auto_increment not null primary key, mid int unsigned auto_increment not null primary key,
# `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户id关联', # `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户id关联',
# `string_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '用户StringID', # `string_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '用户StringID',
uid varchar(64) not null, addresses_id varchar(64) not null,
name varchar(255) not null comment '姓名', uid varchar(64) not null,
phone varchar(255) not null comment '手机号', name varchar(255) not null comment '姓名',
province varchar(255) not null comment '省份', phone varchar(255) not null comment '手机号',
city varchar(255) not null comment '城市', province varchar(255) not null comment '省份',
county varchar(255) not null comment '区县', city varchar(255) not null comment '城市',
address varchar(255) not null comment '详细地址', county varchar(255) not null comment '区县',
is_default tinyint not null default 0 comment '0-非默认,1-默认', address varchar(255) not null comment '详细地址',
created_at datetime not null, is_default tinyint not null default 0 comment '0-非默认,1-默认',
updated_at datetime, created_at datetime not null,
deleted_at datetime updated_at datetime,
deleted_at datetime,
comment text
) engine = InnoDB comment '收货地址'; ) engine = InnoDB comment '收货地址';
create unique index uidx_adam_addresses_id on adam_addresses (addresses_id);
create index idx_adam_addresses_uid on adam_addresses (uid); create index idx_adam_addresses_uid on adam_addresses (uid);
-- >>------------------------------------------------------------------------------------ -- >>------------------------------------------------------------------------------------
drop table if exists adam_feedback; drop table if exists adam_feedback;
......
package com.liquidnet.service.adam.constant;
/**
* @author Li Chen
* @date 2020-11-04 14:02
*/
public class AdamRedisConst {
public static final String ADAM = "adam";
public static final String INFO_ENTERS = ADAM.concat(":list:enters:");
// public static final String USER_CONFIRM_SMS_CODE_KEY = ADAM + ":user:sms_confirm:";
//
// public static final String USER_EMAIL_CONFIRM_KEY = ADAM + ":user:email:confirm:";
//
// public static final String USER_EMAIL_UPDATE_KEY = ADAM + ":user:email:update:";
//
// public static final String USER_PASSWORD_FORGET_KEY = ADAM + ":user:password:forget:";
//
// public static final String USER_PASSWORD_ERROR_KEY = ADAM + ":user:password:error:";
//
// public static final String CONVERSION_SEND_CONFIRM_KEY = ADAM + ":conversion:send_confirm:";
//
// public static final String WALLET_LOCK = ADAM + "_wallet_lock_";
//
// public static final String FUNDING_LOCK = ADAM + "_funding_lock_";
//
// public static final String PAYOUT_LOCK = ADAM + "_payout_lock_";
//
// public static final String USER_LOGIN_TIME_OUT_KEY = ADAM + ":user:login:timeout:";
//
// public static final String USER_LOGIN_TOKEN_ITEM_EMAIL_CHANGE = "emailChangeFlag";
//
// public static final String USER_LOGIN_KEY = ADAM + ":user:login:";
//
// public static final String USER_LOGIN_ITEM_TOKEN = "token";
//
// public static final String USER_LOGIN_ITEM_PERMIT = "permit";
}
...@@ -4,23 +4,20 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; ...@@ -4,23 +4,20 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.ResponseDto; import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamEntersParam; import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamEntersService; import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.AmqpException; import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* <p> * <p>
...@@ -55,25 +52,28 @@ public class AdamEntersController { ...@@ -55,25 +52,28 @@ public class AdamEntersController {
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiOperation(value = "入场人列表") @ApiOperation(value = "入场人列表")
@PostMapping("list") @PostMapping("list")
public ResponseDto<AdamEntersVo> list() { public ResponseDto<List<AdamEntersVo>> list() {
// TODO: 2021/4/29 获取登录用户ID // TODO: 2021/4/29 获取登录UID
String uid = "1"; String uid = "1";
List<AdamEntersVo> list = adamEntersService.list(uid);
return null; return ResponseDto.success(list);
} }
@ApiOperationSupport(order = 2) @ApiOperationSupport(order = 2)
@ApiOperation(value = "添加入场人") @ApiOperation(value = "添加入场人")
@PostMapping("add") @PostMapping("add")
public ResponseDto<Object> add(@RequestBody AdamEntersParam parameter) { public ResponseDto<Object> add(@RequestBody AdamEntersParam parameter) {
// TODO: 2021/4/28 数据校验,身份认证 // TODO: 2021/4/28 数据校验、身份认证、获取登录UID
String uid = "1";
AdamEnters addInfo = new AdamEnters(); AdamEnters addInfo = new AdamEnters();
BeanUtils.copyProperties(parameter, addInfo); BeanUtils.copyProperties(parameter, addInfo);
addInfo.setUid(uid);
addInfo.setEntersId(String.valueOf(IDGenerator.nextSnowId())); addInfo.setEntersId(String.valueOf(IDGenerator.nextSnowId()));
addInfo.setCreatedAt(LocalDateTime.now()); addInfo.setCreatedAt(LocalDateTime.now());
addInfo.setState(1); addInfo.setState(1);
...@@ -85,9 +85,12 @@ public class AdamEntersController { ...@@ -85,9 +85,12 @@ public class AdamEntersController {
@ApiOperationSupport(order = 3) @ApiOperationSupport(order = 3)
@ApiOperation(value = "入场人详情") @ApiOperation(value = "入场人详情")
@PostMapping("query/{id}") @PostMapping("query/{id}")
public ResponseDto<Object> query(@PathVariable(name = "id") String entersId) { public ResponseDto<AdamEntersVo> query(@PathVariable(name = "id") String entersId) {
// TODO: 2021/4/28 校验 // TODO: 2021/4/28 校验、获取登录UID
String uid = "1";
AdamEnters info = adamEntersService.query(uid, entersId);
return ResponseDto.success(adamEntersService.query(entersId)); return ResponseDto.success(AdamEntersVo.getNew().copy(info));
} }
} }
...@@ -7,16 +7,18 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo; ...@@ -7,16 +7,18 @@ import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper; import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.IAdamEntersService; import com.liquidnet.service.adam.service.IAdamEntersService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Collection; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -26,8 +28,11 @@ import java.util.List; ...@@ -26,8 +28,11 @@ import java.util.List;
* @author liquidnet * @author liquidnet
* @since 2021-04-28 * @since 2021-04-28
*/ */
@Slf4j
@Service @Service
public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnters> implements IAdamEntersService { public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnters> implements IAdamEntersService {
@Autowired
AdamEntersMapper adamEntersMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired @Autowired
...@@ -35,36 +40,46 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt ...@@ -35,36 +40,46 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override @Override
public List<AdamEntersVo> list(String uid) { public List<AdamEntersVo> list(String uid) {
List<AdamEntersVo> voList = null; List<AdamEntersVo> voList = new ArrayList<>();
Map<Object, Object> map = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
voList = (List<AdamEntersVo>) redisUtil.hget(AdamRedisConst.INFO_ENTERS, uid); if (CollectionUtils.isEmpty(map)) {
List<AdamEnters> infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid)), AdamEnters.class, AdamEnters.class.getSimpleName());
// mongoTemplate.find(Query.query(Criteria.where())) infoList.forEach(i -> {
voList.add(AdamEntersVo.getNew().copy(i));
});
} else {
}
return voList; return voList;
} }
@Override @Override
public boolean add(AdamEnters info) { public boolean add(AdamEnters info) {
// TODO: 2021/4/28 同步REDIS mongoTemplate.insert(Collections.singletonList(info), AdamEnters.class.getSimpleName());
Collection<AdamEnters> insertRst = mongoTemplate.insert(Collections.singletonList(info), AdamEnters.class.getSimpleName());
// TODO: 2021/4/28 放入MQ // TODO: 2021/4/28 放入MQ
// TODO: 2021/4/28 同步REDIS
boolean hset = redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(info.getUid()), info.getEntersId(), info);
log.info("add sync redis result:{}", hset);
return true; return true;
} }
@Override @Override
public AdamEnters query(String entersId) { public AdamEnters query(String uid, String entersId) {
AdamEnters info = null; AdamEnters info = null;
// TODO: 2021/4/28 REDIS:QUERY // TODO: 2021/4/28 REDIS:QUERY
info = (AdamEnters) redisUtil.hget(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
if (null == info) {
info = mongoTemplate.findOne(Query.query(Criteria.where("entersId").is(entersId)), AdamEnters.class, AdamEnters.class.getSimpleName()); info = mongoTemplate.findOne(Query.query(Criteria.where("entersId").is(entersId)), AdamEnters.class, AdamEnters.class.getSimpleName());
}
return info; return info;
} }
......
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