wang-hao-jie
2022-08-25 57dcc73636bb7d8dce89c808eb8cc988a7512264
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
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<Object> list = new ArrayList<>();
 
        List<MjHeadsUsers> mjHeadsUsersList = iMjHeadsUsersService.getAuthorizeType(mjFingerprintReadHead.getId());
 
        for (MjHeadsUsers mjHeadsUsers : mjHeadsUsersList){
            Map<String,Object> map = new HashMap<>();
            if (mjHeadsUsers.getAuthorizeType() == 0){
                String groupName = iMjTeamService.getName(mjHeadsUsers.getOrderId());
                List<Long> userIds = iMjHeadsUsersService.getUserId(mjHeadsUsers.getOrderId());
                List<String> userNames = iMjWorkUserService.getUserNames(userIds);
                map.put("authorizeType",mjHeadsUsers.getAuthorizeType());
                map.put("groupName",groupName);
                map.put("userName",StringUtils.join(userNames.toArray(),","));
            }else {
                List<String> mainUserList = new ArrayList<>();
                String groupName = iMjWorkOrderService.getOrderName(mjHeadsUsers.getOrderId());
                String userName = iMjWorkUserService.getUserName(mjHeadsUsers.getUserId());
                List<MjOrderDetail> mjOrderDetailList = iMjOrderDetailService.getUser(mjHeadsUsers.getOrderId());
                //List<? extends Serializable> collect = mjOrderDetailList.stream().flatMap(e -> Stream.of(e.getUserName(), e.getMainUser())).collect(Collectors.toList());
//                List<User> 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);
    }
}