AddressServiceImpl.java
2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.huaheng.pc.config.address.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.pc.config.address.domain.Address;
import com.huaheng.pc.config.address.mapper.AddressMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> implements AddressService {
@Override
public String selectAddress(String param) {
if(StringUtils.isEmpty(param)){
throw new ServiceException("参数为空");
}
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getParam,param)
.eq(Address::getWarehouseCode, ShiroUtils.getWarehouseCode());
Address address=this.getOne(addressLam);
if(address == null){
throw new ServiceException("参数错误,系统没有此参数对应的地址");
}
if(StringUtils.isEmpty(address.getUrl())){
throw new ServiceException("地址为空");
}
return address.getUrl();
}
/**
* 复制地址表
* @param warehouseCode 原仓库编码
* @param newWarehouseCode 新仓库编码
* @return 是否复制成功
*/
@Override
@Transactional
public Boolean addressCopy(String warehouseCode, String newWarehouseCode) {
log.trace("开始复制地址表");
LambdaQueryWrapper<Address> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(Address::getWarehouseCode, newWarehouseCode);
if (!this.list(lambdaQueryWrapper).isEmpty()){
log.error("该仓库已存在");
return false;
}
lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(Address::getWarehouseCode, warehouseCode);
List<Address> addressList = this.list(lambdaQueryWrapper);
for ( Address address : addressList) {
address.setId(null);
address.setWarehouseCode(newWarehouseCode);
}
if ( this.saveBatch(addressList) ){
log.trace("复制地址表成功,新仓库编码是:"+newWarehouseCode);
return true;
} else {
return false;
}
}
@Override
public Address getAddressByUrl(String url) {
LambdaQueryWrapper<Address> addressLam = Wrappers.lambdaQuery();
addressLam.eq(Address::getUrl,url)
.eq(Address::getWarehouseCode, ShiroUtils.getWarehouseCode());
Address address=this.getOne(addressLam);
return address;
}
}