package com.welampiot.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SerializerFeature; import com.welampiot.dao.PolicyDao; import com.welampiot.dto.PolicyCmdDTO; import com.welampiot.dto.PolicyDTO; import com.welampiot.service.PolicyCmdService; import com.welampiot.service.PolicyService; import com.welampiot.vo.PolicyVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service public class PolicyServiceImpl implements PolicyService { @Autowired private PolicyDao policyDao; @Autowired private PolicyCmdService policyCmdService; @Override public List getListByVO(PolicyVO policyVO) { List listByVO = policyDao.getListByVO(policyVO); List list = new ArrayList<>(); for (PolicyDTO policy :listByVO) { List listByPolicyId = policyCmdService.getListByPolicyId(policy.getId()); List tList = new ArrayList<>(); for (PolicyCmdDTO p :listByPolicyId) { String jsonStr = JSON.toJSONString(p, SerializerFeature.WriteDateUseDateFormat); Map map = JSON.parseObject(jsonStr, new TypeReference>() { }); List timeList = new ArrayList<>(); for (int i = 1; i <= 10; i++) { if (map.containsKey("time"+i) && map.get("time"+i) != null && !map.get("time"+i).equals("")){ Integer n = i + 1; if (map.containsKey("time"+n) && map.get("time"+n) != null && !map.get("time"+n).equals("")){ String timeValue = map.get("time"+i)+"-"+map.get("time"+n)+" 亮度"+map.get("value"+i)+"%"; timeList.add(timeValue); }else { String timeValue = map.get("time"+i)+"-以后"+" 亮度"+map.get("value"+i)+"%"; timeList.add(timeValue); break; } } } PolicyCmdDTO policyCmdDTO = new PolicyCmdDTO(); policyCmdDTO.setDate(p.getStartTime()); policyCmdDTO.setValue(timeList); tList.add(policyCmdDTO); } policy.setList(tList); list.add(policy); } return list; } @Override public Integer getCountByVO(PolicyVO policyVO) { return policyDao.getCountByVO(policyVO); } @Override public List getNavByVO(PolicyVO policyVO) { List listByVO = policyDao.getListByVO(policyVO); List policyCmdList = policyCmdService.getListByPolicyId(0); HashMap objectObjectHashMap = new HashMap<>(); for (PolicyCmdDTO p :policyCmdList) { Integer policyId = p.getPolicyId(); if (objectObjectHashMap.containsKey(policyId)){ List l = (List) objectObjectHashMap.get(policyId); l.add(p); objectObjectHashMap.put(policyId,l); }else { List l = new ArrayList<>(); l.add(p); objectObjectHashMap.put(policyId,l); } } List list = new ArrayList<>(); for (PolicyDTO policy :listByVO) { // List listByPolicyId = policyCmdService.getListByPolicyId(policy.getId()); List listByPolicyId = (List) objectObjectHashMap.get(policy.getId()); List tList = new ArrayList<>(); for (PolicyCmdDTO p :listByPolicyId) { String jsonStr = JSON.toJSONString(p, SerializerFeature.WriteDateUseDateFormat); Map map = JSON.parseObject(jsonStr, new TypeReference>() { }); List timeList = new ArrayList<>(); for (int i = 1; i <= 10; i++) { if (map.containsKey("time"+i) && map.get("time"+i) != null && !map.get("time"+i).equals("")){ Integer n = i + 1; if (map.containsKey("time"+n) && map.get("time"+n) != null && !map.get("time"+n).equals("")){ String timeValue = map.get("time"+i)+"-"+map.get("time"+n)+" 亮度"+map.get("value"+i)+"%"; timeList.add(timeValue); }else { String timeValue = map.get("time"+i)+"-以后"+" 亮度"+map.get("value"+i)+"%"; timeList.add(timeValue); break; } } } PolicyCmdDTO policyCmdDTO = new PolicyCmdDTO(); policyCmdDTO.setDate(p.getStartTime()); policyCmdDTO.setValue(timeList); tList.add(policyCmdDTO); } policy.setList(tList); list.add(policy); } return list; } @Override public List getPolicyListByDTO(PolicyDTO dto) { return policyDao.getPolicyListByDTO(dto); } @Override public List getAllPolicyListByDTO(PolicyDTO dto) { return policyDao.getAllPolicyListByDTO(dto); } @Override public Integer getPolicyCountByUserid(Integer userId) { return policyDao.getPolicyCountByUserid(userId); } @Override public Integer getAllPolicyCount() { return policyDao.getAllPolicyCount(); } @Override public void addPolicyData(PolicyDTO dto) { policyDao.addPolicyData(dto); } @Override public void updatePolicyData(PolicyDTO dto) { policyDao.updatePolicyData(dto); } @Override public PolicyDTO getPolicyDTOById(Integer id) { return policyDao.getPolicyDTOById(id); } @Override public void deletePolicyDataById(Integer id) { policyDao.deletePolicyDataById(id); } }