NmmsController.java
5.4 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package com.tianbo.analysis.controller;
import com.tianbo.analysis.dao.COMPANYUSERMapper;
import com.tianbo.analysis.dao.ORIGINMANIFESTMASTERMapper;
import com.tianbo.analysis.model.*;
import com.tianbo.analysis.service.OriginService;
import com.tianbo.util.Date.DateUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@Slf4j
@RestController
@RequestMapping("/nmms/dev")
public class NmmsController {
@Resource
ORIGINMANIFESTMASTERMapper originmanifestmasterMapper;
@Autowired
OriginService originService;
@Resource
COMPANYUSERMapper companyuserMapper;
@Value("${sso.witheIP}")
private String whiteIP;
@ApiOperation(value = "删除分单信息", notes = "awba主单号格式\\d{3}-\\d{8},awbh分单号")
@DeleteMapping("/delOriginAWBH")
public ResultJson getCustomMessageId(@RequestParam(value = "awba",required = true) String awba,
@RequestParam(value = "awbh",required = true) String awbh,
@RequestParam(value = "flightDate",required = true) String flightDate,
@RequestParam(value = "flightNo",required = true) String flightNo
){
Date flight_date = DateUtil.parseDate(flightDate,"yyyy-MM-dd");
ORIGINMANIFESTMASTER originmanifestmaster = new ORIGINMANIFESTMASTER(awba,flight_date,flightNo);
originmanifestmaster = originmanifestmasterMapper.selectByAHBA(originmanifestmaster);
return originService.deleteAwbh(originmanifestmaster.getAutoid())>0 ? new ResultJson("200","删除成功") : new ResultJson("200","删除失败");
}
/**
* 资源同步
* @param uam 资源同步实体
* @return
* @throws Exception
*/
@ApiOperation(value = "统一认证平台同步资源接口", notes = "用户信息同步")
@PostMapping(value = "/userSynchronization")
@ResponseBody
public ResultMessage userSynchronization(@RequestBody UAM uam, HttpServletRequest request) {
if(!witheIP(request)){
return new ResultMessage("401", "资源同步失败,来源IP非法");
};
if ("user".equals(uam.getResType())){
List<UserData> list = uam.getData();
// 判断该用户是否存在
int i = 0;
for (UserData userData: list){
log.info("用户信息:{}", userData);
COMPANYUSER companyuser = companyuserMapper.selectByUsername(userData.getLOGIN_NAME());
if (companyuser != null){
companyuser.setPassword(userData.getPWD());
companyuser.setZipCode(userData.getUSER_ID());
log.info("通过账号为条件更新");
i = companyuserMapper.updateByPrimaryKeySelective(companyuser);
}else {
COMPANYUSER kakoUser = new COMPANYUSER();
kakoUser.setId(UUID.randomUUID().toString());
kakoUser.setCropCode(userData.getLOGIN_NAME());
kakoUser.setPassword(userData.getPWD());
kakoUser.setZipCode(userData.getUSER_ID());
kakoUser.setTelCo(userData.getMOBILE());
kakoUser.setFullName(userData.getUSER_NAME());
kakoUser.setCreateDate(new Date());
kakoUser.setCustomsCode("4604");
kakoUser.setCropType(userData.getUSER_TITLE());
kakoUser.setAddrCo(userData.getOFFICE_ADDRESS());
log.info("账号统一认证id都不在 新增");
i = companyuserMapper.insertSelective(kakoUser);
}
}
return i > 0 ? new ResultMessage("200","资源同步成功"):new ResultMessage("202", "资源同步失败");
}
return new ResultMessage("201","不是用户信息");
}
private boolean witheIP(HttpServletRequest request){
List<String> witheIPList = Arrays.asList(whiteIP.split(","));
// 优先取 X-Real-IP
String ip = request.getHeader("X-Real-IP");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
log.info("X-Real-IP = [{}]",ip);
ip = request.getHeader("x-forwarded-for");
log.info("x-forwarded-for= [{}]",ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
ip = request.getRemoteAddr();
log.info("RemoteAddr= [{}]",ip);
if ("0:0:0:0:0:0:0:1".equals(ip))
{
ip = "unknown";
log.info(ip);
}
}
if ("unknown".equalsIgnoreCase(ip)){
ip = "unknown";
}
int index = ip.indexOf(',');
if (index >= 0){
ip = ip.substring(0, index);
}
log.info("用户IP来源为:[{}]",ip);
for (String whitIp : witheIPList ) {
if(ip.contains(whitIp)){
return true;
}
}
log.info("用户IP[{}]来源非法",ip);
return false;
}
}