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

Commit ff2fc1f5 authored by 张国柄's avatar 张国柄

+入场人编辑;

parent 77ef0d62
......@@ -15,5 +15,9 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
......@@ -3,17 +3,11 @@ package com.liquidnet.common.cache.redis.config;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
......@@ -25,23 +19,27 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
public class RedisCacheConfig{
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
template.setConnectionFactory(factory);
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(factory);
Jackson2JsonRedisSerializer j2jrs = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper om = new ObjectMapper();
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
jackson2JsonRedisSerializer.setObjectMapper(om);
om.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
om.registerModule(new JavaTimeModule());
om.activateDefaultTyping(om.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL);
j2jrs.setObjectMapper(om);
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
redisTemplate.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
redisTemplate.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.setValueSerializer(j2jrs);
// hash的value序列化方式采用jackson
template.setHashValueSerializer(jackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
redisTemplate.setHashValueSerializer(j2jrs);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
......@@ -8,14 +8,16 @@ import lombok.Data;
@Data
public class AdamEntersParam implements java.io.Serializable {
private static final long serialVersionUID = 5940725094369061032L;
@ApiModelProperty(position = 10, required = true, value = "入场人名称[50]", example = "Swagger")
@ApiModelProperty(position = 10, required = false, value = "入场人ID[50]")
private String entersId;
@ApiModelProperty(position = 11, required = true, value = "入场人名称[50]", example = "Swagger")
private String name;
@ApiModelProperty(position = 11, required = true, value = "入场人手机号[11]", example = "13100000000")
@ApiModelProperty(position = 12, 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")
@ApiModelProperty(position = 13, 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")
@ApiModelProperty(position = 14, required = true, value = "入场人证件号[11]", example = "110101110001010111")
private String idCard;
@ApiModelProperty(position = 14, required = true, value = "是否是默认入场人:0-否,1-是", allowableValues = "0,1")
@ApiModelProperty(position = 15, required = true, value = "是否是默认入场人:0-否,1-是", allowableValues = "0,1")
private Boolean isDefault;
}
......@@ -32,6 +32,11 @@ public class AdamEntersVo implements java.io.Serializable, Cloneable {
}
public AdamEntersVo copy(AdamEnters source) {
this.setName(source.getName());
this.setIdCard(source.getIdCard());
this.setMobile(source.getMobile());
this.setType(source.getType());
this.setIsDefault(source.getIsDefault());
return this;
}
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import java.util.List;
......@@ -15,9 +14,11 @@ import java.util.List;
* @since 2021-04-28
*/
public interface IAdamEntersService extends IService<AdamEnters> {
List<AdamEntersVo> list(String uid);
List<AdamEnters> list(String uid);
boolean add(AdamEnters info);
void add(AdamEnters info);
AdamEnters query(String uid, String entersId);
void edit(AdamEnters info);
}
......@@ -29,36 +29,17 @@ import java.net.UnknownHostException;
import java.util.Arrays;
@Slf4j
@SpringBootApplication(scanBasePackages = {"com.liquidnet"})
@EnableEurekaClient
@EnableFeignClients
@EnableCircuitBreaker
@EnableScheduling
@EnableAsync
@MapperScan(basePackages = "com.liquidnet.service.adam.mapper")
@EnableTransactionManagement
@EnableConfigurationProperties
@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
public class ServiceAdamApplication implements TransactionManagementConfigurer, CommandLineRunner {
@Autowired
private DataSource dataSource;
@SpringBootApplication(scanBasePackages = {"com.liquidnet"})
public class ServiceAdamApplication implements CommandLineRunner {
@Autowired
private Environment environment;
public static void main(String[] args) {
SpringApplication.run(ServiceAdamApplication.class, args);
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
log.info("配置事务管理###########################");
return new DataSourceTransactionManager(dataSource);
}
@Override
public void run(String... strings) throws Exception {
try {
......
......@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -57,10 +58,13 @@ public class AdamEntersController {
String uid = "1";
List<AdamEntersVo> list = adamEntersService.list(uid);
List<AdamEntersVo> voList = new ArrayList<>();
adamEntersService.list(uid).forEach(i -> {
voList.add(AdamEntersVo.getNew().copy(i));
});
return ResponseDto.success(list);
return ResponseDto.success(voList);
}
@ApiOperationSupport(order = 2)
......@@ -78,8 +82,9 @@ public class AdamEntersController {
addInfo.setCreatedAt(LocalDateTime.now());
addInfo.setState(1);
adamEntersService.add(addInfo);
return adamEntersService.add(addInfo) ? ResponseDto.success() : ResponseDto.failure();
return ResponseDto.success();
}
@ApiOperationSupport(order = 3)
......@@ -93,4 +98,22 @@ public class AdamEntersController {
return ResponseDto.success(AdamEntersVo.getNew().copy(info));
}
@ApiOperationSupport(order = 4)
@ApiOperation(value = "入场人编辑")
@PostMapping("edit")
public ResponseDto<Object> edit(@RequestBody AdamEntersParam parameter) {
// TODO: 2021/4/28 校验、获取登录UID
String uid = "1";
AdamEnters updateInfo = new AdamEnters();
BeanUtils.copyProperties(parameter, updateInfo);
updateInfo.setUpdatedAt(LocalDateTime.now());
updateInfo.setUid(uid);
updateInfo.setState(1);
adamEntersService.edit(updateInfo);
return ResponseDto.success();
}
}
package com.liquidnet.service.adam.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.mongodb.BasicDBObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
......@@ -39,35 +41,31 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
RedisUtil redisUtil;
@Override
public List<AdamEntersVo> list(String uid) {
List<AdamEntersVo> voList = new ArrayList<>();
public List<AdamEnters> list(String uid) {
List<AdamEnters> infoList = new ArrayList<>();
Map<Object, Object> map = redisUtil.hmget(AdamRedisConst.INFO_ENTERS.concat(uid));
if (CollectionUtils.isEmpty(map)) {
List<AdamEnters> infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid)), AdamEnters.class, AdamEnters.class.getSimpleName());
infoList.forEach(i -> {
voList.add(AdamEntersVo.getNew().copy(i));
});
infoList = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid)), AdamEnters.class, AdamEnters.class.getSimpleName());
} else {
for (Object o : map.values()) {
infoList.add((AdamEnters) o);
}
}
return voList;
return infoList;
}
@Override
public boolean add(AdamEnters info) {
public void add(AdamEnters info) {
mongoTemplate.insert(Collections.singletonList(info), AdamEnters.class.getSimpleName());
// 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;
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(info.getUid()), info.getEntersId(), info);
}
@Override
......@@ -83,4 +81,17 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
return info;
}
@Override
public void edit(AdamEnters info) {
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(info)));
mongoTemplate.getCollection(AdamEnters.class.getSimpleName())
.updateOne(Query.query(Criteria.where("entersId").is(info.getEntersId())).getQueryObject(), object);
// TODO: 2021/4/28 放入MQ
// TODO: 2021/4/28 同步REDIS
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(info.getUid()), info.getEntersId(), 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