CalendarActionServiceImpl.java 6.01 KB
Newer Older
1 2 3 4
package pwc.taxtech.atms.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
5 6 7
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
8 9 10
import pwc.taxtech.atms.calendar.dao.CalendarActionJurisdictionRelationshipMapper;
import pwc.taxtech.atms.calendar.dao.CalendarActionMapper;
import pwc.taxtech.atms.calendar.dao.CalendarJurisdictionMapper;
11 12 13 14 15 16
import pwc.taxtech.atms.calendar.dao.ext.CalendarActionTMapper;
import pwc.taxtech.atms.calendar.dao.ext.CalendarExtMapper;
import pwc.taxtech.atms.calendar.dao.ext.CalendarJurisdictionTMapper;
import pwc.taxtech.atms.calendar.dto.CalendarActionDto;
import pwc.taxtech.atms.calendar.dto.CalendarJurisdictionDto;
import pwc.taxtech.atms.calendar.entity.*;
17 18 19 20
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.service.ICalendarActionService;

import javax.annotation.Resource;
21
import java.util.ArrayList;
22
import java.util.Date;
23
import java.util.List;
24 25 26 27 28 29 30 31

/**
 * <p> @Description </p>
 *
 * @Author: Mccoy Z Xia (Xia zhixin)
 * @Date: 2019-07-10 16:19
 * @Version: 1.0
 **/
32
@Service
33 34 35 36 37 38 39
public class CalendarActionServiceImpl extends BaseService implements ICalendarActionService {

    private static final Logger log = LoggerFactory.getLogger(CalendarActionServiceImpl.class);

    @Resource
    private CalendarActionMapper calendarActionMapper;

40 41 42
    @Resource
    private CalendarExtMapper calendarExtMapper;

43 44 45 46 47 48
    @Resource
    private CalendarJurisdictionMapper calendarJurisdictionMapper;

    @Resource
    private CalendarActionJurisdictionRelationshipMapper calendarActionJurisdictionRelationshipMapper;

49 50 51 52 53 54
    @Autowired
    private CalendarActionTMapper actionTMapper;

    @Autowired
    private CalendarJurisdictionTMapper jurisdictionTMapper;

55
    @Override
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
    public OperationResultDto saveCalendarAction(CalendarActionDto dto) {

        boolean result;

        if (dto.getId() == null) {
            result = insertAction(dto);
        } else {
            result =updateAction(dto);
        }

        return new OperationResultDto(result);
    }

    private boolean insertAction(CalendarActionDto dto) {
        Date createTime = new Date();
71

72
        CalendarAction action = actionTMapper.toCalendarAction(dto);
73
        action.setStatus((byte) 1);
74 75 76
        action.setId(idService.nextId());
        action.setCreateTime(createTime);
        action.setUpdateTime(createTime);
77

78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
        List<CalendarJurisdictionDto> list = dto.getJurisdictionDtoList();
        List<CalendarJurisdiction> jurisdictionList = new ArrayList<>();
        List<CalendarActionJurisdictionRelationship> relationshipList = new ArrayList<>();

        list.forEach(l -> {
            CalendarJurisdiction jurisdiction = jurisdictionTMapper.toCalendarAction(l);
            jurisdiction.setId(idService.nextId());
            jurisdiction.setCreateTime(createTime);
            jurisdiction.setUpdateTime(createTime);
            jurisdictionList.add(jurisdiction);

            CalendarActionJurisdictionRelationship relationship = new CalendarActionJurisdictionRelationship();
            relationship.setId(idService.nextId());
            relationship.setActionId(action.getId());
            relationship.setJurisdictionId(jurisdiction.getId());
Mccoy Z Xia's avatar
Mccoy Z Xia committed
93
            relationshipList.add(relationship);
94 95
        });

96
        try {
Mccoy Z Xia's avatar
Mccoy Z Xia committed
97 98 99 100
//            calendarExtMapper.batchInsertActionJurisdiction(jurisdictionList);
//            calendarExtMapper.batchInsertActionJurisdictionRelation(relationshipList);
            jurisdictionList.forEach(p -> calendarJurisdictionMapper.insert(p));
            relationshipList.forEach(p -> calendarActionJurisdictionRelationshipMapper.insert(p));
101 102 103 104 105 106 107 108
            calendarActionMapper.insert(action);
        } catch (Exception e) {
            log.error("insertAction error", e);
            return false;
        }

        return true;
    }
109

110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
    private boolean updateAction(CalendarActionDto dto) {
        Date updateTime = new Date();
        CalendarAction action = actionTMapper.toCalendarAction(dto);
        action.setUpdateTime(updateTime);

        List<CalendarJurisdictionDto> list = dto.getJurisdictionDtoList();
        List<CalendarJurisdiction> jurisdictionList = new ArrayList<>();

        try {
            list.forEach(p -> {
                CalendarJurisdiction jurisdiction = jurisdictionTMapper.toCalendarAction(p);
                jurisdiction.setUpdateTime(updateTime);
                jurisdictionList.add(jurisdiction);
            });
            jurisdictionList.forEach(p -> calendarJurisdictionMapper.updateByPrimaryKeySelective(p));
            calendarActionMapper.updateByPrimaryKeySelective(action);
126
        } catch (Exception e) {
127
            log.error("updateAction error", e);
128
        }
129 130

        return true;
131 132 133
    }

    @Override
Mccoy Z Xia's avatar
Mccoy Z Xia committed
134
    public OperationResultDto deleteCalendarAction(Long id) {
135
        int count = 0;
136
        CalendarAction action = new CalendarAction();
Mccoy Z Xia's avatar
Mccoy Z Xia committed
137
        action.setId(id);
138 139
        action.setStatus(Byte.parseByte("0"));
        action.setUpdateTime(new Date());
140
        try {
141
            count = calendarActionMapper.updateByPrimaryKeySelective(action);
142 143 144
        } catch (Exception e) {
            log.error("deleteAction error", e);
        }
145 146 147 148 149 150 151 152
        return new OperationResultDto(count > 0);
    }

    @Override
    public OperationResultDto getCalendarActionList() {

        CalendarActionExample actionExample = new CalendarActionExample();
        actionExample.createCriteria().andStatusEqualTo((byte) 1);
153
        List<CalendarAction> actionList = calendarActionMapper.selectByExample(actionExample);
154 155 156 157 158 159 160 161 162 163
        List<CalendarActionDto> actionDtoList = new ArrayList<>();

        actionList.forEach(p -> {
            List<CalendarJurisdictionDto> jurisdictionDtoList = calendarExtMapper.getJurisdictionListByActionId(p.getId());
            CalendarActionDto dto = actionTMapper.toCalendarActionDto(p);
            dto.setJurisdictionDtoList(jurisdictionDtoList);
            actionDtoList.add(dto);
        });

        return OperationResultDto.success(actionDtoList);
164 165 166
    }

}