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

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

+入场人编辑;

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