package com.ruoyi.web.controller.api; import com.github.pagehelper.util.StringUtil; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.station.domain.MjFingerprintReadHead; import com.ruoyi.station.domain.MjHeadsUsers; import com.ruoyi.station.domain.MjOrderDetail; import com.ruoyi.station.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.Serializable; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @RestController @RequestMapping("/api") public class QueryController { @Autowired private IMjFingerprintReadHeadService iMjFingerprintReadHeadService; @Autowired private IMjHeadsUsersService iMjHeadsUsersService; @Autowired private IMjTeamService iMjTeamService; @Autowired private IMjOrderDetailService iMjOrderDetailService; @Autowired private IMjWorkUserService iMjWorkUserService; @Autowired private IMjWorkOrderService iMjWorkOrderService; @RequestMapping(value = "/selectInfo", method = RequestMethod.GET) @ResponseBody public Layui getInfo(String ip, String page, String limit){ //正则表达式 String ipChecks = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; //验证ip是否合法 if(StringUtil.isNotEmpty(ip)){ boolean matches = ip.matches(ipChecks); if(!matches){ return Layui.data(0,null); } }else { return Layui.data(0,null); } //根据IP获取读头ID MjFingerprintReadHead mjFingerprintReadHead = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadByIp(ip); //非空验证 if(Objects.isNull(mjFingerprintReadHead)){ return Layui.data(0,null); } List list = new ArrayList<>(); List mjHeadsUsersList = iMjHeadsUsersService.getAuthorizeType(mjFingerprintReadHead.getId()); for (MjHeadsUsers mjHeadsUsers : mjHeadsUsersList){ Map map = new HashMap<>(); if (mjHeadsUsers.getAuthorizeType() == 0){ String groupName = iMjTeamService.getName(mjHeadsUsers.getOrderId()); List userIds = iMjHeadsUsersService.getUserId(mjHeadsUsers.getOrderId()); List userNames = iMjWorkUserService.getUserNames(userIds); map.put("authorizeType",mjHeadsUsers.getAuthorizeType()); map.put("groupName",groupName); map.put("userName",StringUtils.join(userNames.toArray(),",")); }else { List mainUserList = new ArrayList<>(); String groupName = iMjWorkOrderService.getOrderName(mjHeadsUsers.getOrderId()); String userName = iMjWorkUserService.getUserName(mjHeadsUsers.getUserId()); List mjOrderDetailList = iMjOrderDetailService.getUser(mjHeadsUsers.getOrderId()); //List collect = mjOrderDetailList.stream().flatMap(e -> Stream.of(e.getUserName(), e.getMainUser())).collect(Collectors.toList()); // List userList = mjOrderDetailList.stream().map(mjOrderDetail -> { // return new User(mjOrderDetail.getUserName(), mjOrderDetail.getMainUser()); // }).collect(Collectors.toList()); for (MjOrderDetail mjOrderDetail : mjOrderDetailList) { if(mjOrderDetail.getMainUser()==0){ mainUserList.add(mjOrderDetail.getUserName()); } } map.put("authorizeType",mjHeadsUsers.getAuthorizeType()); map.put("groupName",groupName); map.put("userName",userName); map.put("userList", StringUtils.join(mainUserList.toArray(),",")); } list.add(map); } int total = list.size(); return Layui.data(total,list); } }