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; } }