package com.ld.igds.quantity.service;
|
|
import com.ld.igds.constant.RedisConst;
|
import com.ld.igds.models.QuantityConf;
|
import com.ld.igds.quantity.dto.QuantityData;
|
import com.ld.igds.quantity.dto.QuantityParam;
|
import com.ld.igds.quantity.mapper.QuantityMapper;
|
import com.ld.igds.util.RedisUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Set;
|
|
/**
|
* @author vince.xu
|
* @Title: CoreQuantityServiceImpl
|
* @ProjectName igds-dev
|
* @Description:
|
* @date 2021/6/17 001715:09
|
*/
|
@Service(CoreQuantityService.BEAN_ID)
|
public class CoreQuantityServiceImpl implements CoreQuantityService {
|
|
@Autowired
|
private QuantityMapper quantityMapper;
|
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Override
|
public void saveData(QuantityData data) {
|
quantityMapper.saveData(data);
|
}
|
|
@Override
|
public QuantityData getLastData(QuantityParam param) {
|
return quantityMapper.getLastData(param);
|
}
|
|
@Override
|
public void setCacheQuantityConf(List<QuantityConf> list) {
|
if (null == list || list.isEmpty()) return;
|
|
String key;
|
for (QuantityConf conf : list) {
|
if (StringUtils.isEmpty(conf.getSn())) {
|
conf.setSn(conf.getYtIp());
|
}
|
key = RedisConst.buildKeyByPrefix(RedisConst.KEY_QUANTITY_CONF, conf.getSn());
|
redisUtil.set(key, conf);
|
}
|
}
|
|
public void setCacheQuantityConf(QuantityConf conf) {
|
if (StringUtils.isEmpty(conf.getSn())) {
|
conf.setSn(conf.getYtIp());
|
}
|
String key = RedisConst.buildKeyByPrefix(RedisConst.KEY_QUANTITY_CONF, conf.getSn());
|
redisUtil.set(key, conf);
|
}
|
|
@Override
|
public void refreshQuantityConfCache() {
|
this.setCacheQuantityConf(quantityMapper.queryAll());
|
}
|
|
@Override
|
public QuantityConf getCacheQuantityConf(String companyId, String depotId) {
|
|
String pattern = RedisConst.buildKeyByPrefix(RedisConst.KEY_QUANTITY_CONF, null);
|
|
Set<String> keys = redisUtil.keys(pattern);
|
|
if (null == keys || keys.isEmpty()) return null;
|
|
QuantityConf conf;
|
for (String key : keys) {
|
conf = (QuantityConf) redisUtil.get(key);
|
if (null == conf) continue;
|
|
if (conf.getCompanyId().equals(companyId) && conf.getDepotId().equals(depotId)) return conf;
|
}
|
|
return null;
|
}
|
|
@Override
|
public List<QuantityConf> getCacheQuantityConf(String companyId) {
|
|
String pattern = RedisConst.buildKeyByPrefix(RedisConst.KEY_QUANTITY_CONF, null);
|
|
Set<String> keys = redisUtil.keys(pattern);
|
|
if (null == keys || keys.isEmpty()) return null;
|
|
List<QuantityConf> list = new ArrayList<>();
|
QuantityConf conf;
|
for (String key : keys) {
|
conf = (QuantityConf) redisUtil.get(key);
|
if (null == conf) {
|
continue;
|
}
|
list.add(conf);
|
}
|
if (list.isEmpty()) {
|
return null;
|
}
|
return list;
|
}
|
|
@Override
|
public QuantityConf getCacheQuantityConfBySn(String sn) {
|
|
String key = RedisConst.buildKeyByPrefix(RedisConst.KEY_QUANTITY_CONF, sn);
|
|
return (QuantityConf) redisUtil.get(key);
|
}
|
|
@Override
|
public void updateQuantityConfBySn(QuantityConf conf) {
|
// 更新数据库
|
quantityMapper.updateQuantityConfBySn(conf);
|
|
setCacheQuantityConf(conf);
|
}
|
|
@Override
|
public List<QuantityData> getQuantityData(QuantityParam param) {
|
return quantityMapper.getQuantityData(param);
|
}
|
|
@Override
|
public List<QuantityData> getDataByLimit(QuantityParam param) {
|
return quantityMapper.getDataByLimit(param);
|
}
|
}
|