package com.zcloud.service.xgf.impl; import com.zcloud.entity.Page; import com.zcloud.entity.PageData; import com.zcloud.mapper.datasource.xgf.XgfUserDetailsMapper; import com.zcloud.mapper.datasource.xgf.XgfUserMapper; import com.zcloud.service.xgf.XgfUserService; import com.zcloud.util.DateUtil; import com.zcloud.util.HttpClientService; import com.zcloud.util.HttpClientUtil; import com.zcloud.util.Warden; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service public class XgfUserServiceImpl implements XgfUserService { @Resource private XgfUserMapper xgfUserMapper; @Resource private XgfUserDetailsMapper xgfUserDetailsMapper; @Value("${preventionxgf.api.url}") private String prevention_xgf_url; @Override public void save(PageData pd) throws Exception { xgfUserMapper.save(pd); } @Override public void saveDetail(PageData pd) throws Exception { xgfUserDetailsMapper.save(pd); } @Override public List list(Page page) throws Exception { return xgfUserDetailsMapper.listPage(page); } @Override @Transactional public void init(PageData request) { List list = Warden.getList(request.getString("infoList")); for (PageData x : list) { try { PageData condition = new PageData(); if (StringUtils.isNotBlank(x.getString("USER_ID"))) { condition.put("XGF_USER_ID", x.getString("USER_ID")); PageData entity = xgfUserMapper.findById(condition); if (entity == null || entity.size() <= 0) { x.put("XGF_USER_ID", x.get("USER_ID")); x.put("XGF_USER_DETAILS_ID", x.get("USER_ID")); x.put("ISDELETE", "0"); x.put("VALID_FLAG", "1"); x.put("STATUS", "2"); x.put("CREATED_TIME", DateUtil.getTime()); x.put("OPERATOR_TIME", DateUtil.getTime()); xgfUserMapper.save(x); xgfUserDetailsMapper.save(x); } else { x.put("XGF_USER_ID", x.get("USER_ID")); x.put("XFG_USER_DETAILS_ID", x.get("USER_ID")); x.put("ISDELETE", "0"); x.put("OPERATOR_TIME", DateUtil.getTime()); xgfUserMapper.edit(x); xgfUserDetailsMapper.edit(x); } } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("保存数据失败"); } } } @Override public void approvalApplication(PageData request) throws Exception { List list = Arrays.asList(request.getString("xgf_user_ids").split(",")); PageData condition = new PageData(); condition.put("XGF_USER_IDS", list); List entities = xgfUserMapper.listByIds(condition); for (PageData x : entities) { x.put("VALID_FLAG", "0"); x.put("STATUS", "1"); xgfUserMapper.edit(x); } } @Override public List flowlistPage(Page page) throws Exception { return xgfUserMapper.flowlistPage(page); } @Override @Transactional public void approve(PageData request) throws Exception { List _list = Warden.getList(request.getString("list")); if (_list == null || _list.size() == 0) { throw new RuntimeException("请求数据异常"); } List list = _list.stream().map(x -> x.getString("XGF_USER_ID")).collect(Collectors.toList()); PageData condition = new PageData(); for (String x : list) { condition.put("XGF_USER_ID", x); PageData entity = xgfUserMapper.findById(condition); if (entity == null || entity.size() == 0) { throw new RuntimeException("未找到该用户"); } if ("1".equals(request.getString("STATUS"))) { entity.put("STATUS", "0"); } else { entity.put("STATUS", "2"); } xgfUserMapper.edit(entity); entity.put("USER_ID", condition.get("XGF_USER_ID")); entity.put("STATUS", request.getString("STATUS")); Map result = HttpClientService.doPost(prevention_xgf_url + "openApi/user/approve", entity); if (result == null || !"succeed".equals(result.get("result"))) { throw new RuntimeException("请求失败"); } } } }