package com.moral.api.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Organization;
import com.moral.api.entity.ServicesScope;
import com.moral.api.entity.ServicesScopeDevice;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.mapper.ServicesScopeDeviceMapper;
import com.moral.api.mapper.ServicesScopeMapper;
import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
import com.moral.api.service.ServicesScopeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.util.LogUtils;
import com.moral.constant.Constants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 
 *  服务实现类
 * 
 *
 * @author moral
 * @since 2022-01-12
 */
@Service
public class ServicesScopeServiceImpl extends ServiceImpl implements ServicesScopeService {
    @Autowired
    private ServicesScopeMapper servicesScopeMapper;
    @Autowired
    private OrganizationMapper organizationMapper;
    @Autowired
    private ServicesScopeDeviceMapper servicesScopeDeviceMapper;
    @Override
    public Map getDataByCondition(Map map) {
        Map resultMap = new HashMap<>();
        int current = Integer.parseInt(map.get("current").toString());
        int size = Integer.parseInt(map.get("size").toString());
        Page page = new Page<>(current, size);
        QueryWrapper servicesScopeWrapper = new QueryWrapper<>();
        servicesScopeWrapper.eq("is_delete",Constants.NOT_DELETE);
        if (!ObjectUtils.isEmpty(map.get("orgId"))){
            servicesScopeWrapper.eq("organization_id",Integer.parseInt(map.get("orgId").toString()));
        }
        if (!ObjectUtils.isEmpty(map.get("name"))){
            if (map.get("name") != ""){
                servicesScopeWrapper.like("name",map.get("name").toString());
            }
        }
        Page resultPage = servicesScopeMapper.selectPage(page, servicesScopeWrapper);
        List servicesScopes = resultPage.getRecords();
        SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List