package com.goafanti.copyright.service.impl; import java.text.ParseException; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.dao.CopyrightInfoMapper; import com.goafanti.common.dao.CopyrightLogMapper; import com.goafanti.common.enums.CopyrightStatus; import com.goafanti.common.model.CopyrightInfo; import com.goafanti.common.model.CopyrightLog; import com.goafanti.copyright.bo.CopyrightInfoDetail; import com.goafanti.copyright.service.CopyrightInfoService; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; @Service public class CopyrightInfoServiceImpl extends BaseMybatisDao implements CopyrightInfoService { @Autowired private CopyrightInfoMapper copyrightInfoMapper; @Autowired private CopyrightLogMapper copyrightLogMapper; @Override public CopyrightInfo insert(CopyrightInfo copyrightInfo) { Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); copyrightInfo.setCreateTime(now.getTime()); CopyrightLog log = new CopyrightLog(); log.setCid(copyrightInfo.getId()); log.setRecordTime(copyrightInfo.getCreateTime()); log.setComment(copyrightInfo.getComment()); log.setOperator(TokenManager.getAdminId()); log.setPrincipal(copyrightInfo.getPrincipal()); log.setStatus(copyrightInfo.getStatus()); copyrightInfoMapper.insertSelective(copyrightInfo); copyrightLogMapper.insertSelective(log); return copyrightInfo; } @Override public void updateByPrimaryKeySelective(CopyrightInfo copyrightInfo, CopyrightLog copyrightLog) { if (copyrightLog.getRecordTime() != null && copyrightLog.getStatus() != null && copyrightLog.getPrincipal() != null) { copyrightLogMapper.insertSelective(copyrightLog); if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.ACCEPT) { copyrightInfo.setAcceptTime(copyrightLog.getRecordTime()); } else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.AUTHORIZED) { copyrightInfo.setAuthorizedDate(copyrightLog.getRecordTime()); } else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.DELIVERD) { copyrightInfo.setCreateTime(copyrightLog.getRecordTime()); } } copyrightInfoMapper.updateByPrimaryKeySelective(copyrightInfo); } @Override public int batchDeleteByPrimaryKey(List id) { return 0; } @SuppressWarnings("unchecked") @Override public Pagination listCopyrightInfo(String province, String unitName, String copyrightName, CopyrightStatus status, String[] createTime, String[] acceptTime, String[] authTime, Integer pageNo, Integer pageSize) { Map params = new HashMap<>(); if (StringUtils.isNotBlank(province)) { params.put("province", province); } if (StringUtils.isNotBlank(unitName)) { params.put("unitName", unitName); } if (StringUtils.isNotBlank(copyrightName)) { params.put("copyrightName", copyrightName); } if (status != CopyrightStatus.OTHER) { params.put("status", status.getCode()); } if (createTime != null) { try { if (createTime.length > 0 && StringUtils.isNotBlank(createTime[0])) { params.put("createStartTime", DateUtils.parseDate(createTime[0], AFTConstants.YYYYMMDD)); } if (createTime.length > 1 && StringUtils.isNotBlank(createTime[1])) { params.put("createEndTime", DateUtils.addDays(DateUtils.parseDate(createTime[1], AFTConstants.YYYYMMDD), 1)); } } catch (ParseException e) { } } if (acceptTime != null) { try { if (acceptTime.length > 0 && StringUtils.isNotBlank(acceptTime[0])) { params.put("acceptStartTime", DateUtils.parseDate(acceptTime[0], AFTConstants.YYYYMMDD)); } if (acceptTime.length > 1 && StringUtils.isNotBlank(acceptTime[1])) { params.put("acceptEndTime", DateUtils.addDays(DateUtils.parseDate(acceptTime[1], AFTConstants.YYYYMMDD), 1)); } } catch (ParseException e) { } } if (authTime != null) { try { if (authTime.length > 0 && StringUtils.isNotBlank(authTime[0])) { params.put("authStartTime", DateUtils.parseDate(authTime[0], AFTConstants.YYYYMMDD)); } if (authTime.length > 1 && StringUtils.isNotBlank(authTime[1])) { params.put("authEndTime", DateUtils.addDays(DateUtils.parseDate(authTime[1], AFTConstants.YYYYMMDD), 1)); } } catch (ParseException e) { } } return (Pagination) findPage("findListByPage", "findListCount", params, pageNo, pageSize); } @Override public CopyrightInfo selectByPrimaryKey(String id) { return copyrightInfoMapper.selectByPrimaryKey(id); } @Override public CopyrightInfoDetail findByPrimaryKey(String id) { return copyrightInfoMapper.findByPrimaryKey(id); } }