package com.goafanti.business.service.impl; import com.goafanti.business.bo.InputRestrictProject; import com.goafanti.business.bo.RestrictProjectPageList; import com.goafanti.business.service.RestrictProjectService; import com.goafanti.common.dao.RestrictProjectMapper; import com.goafanti.common.dao.UserTransferLogMapper; import com.goafanti.common.error.BusinessException; import com.goafanti.common.model.RestrictProject; import com.goafanti.common.model.UserTransferLog; import com.goafanti.core.mybatis.BaseMybatisDao; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.HashMap; import java.util.Map; @Service public class RestrictProjectServiceImpl extends BaseMybatisDao implements RestrictProjectService { @Resource private RestrictProjectMapper restrictProjectMapper; @Resource private UserTransferLogMapper userTransferLogMapper; @Override public int add(InputRestrictProject in) { String aid = TokenManager.getAdminId(); in.setAid(aid); in.setType(1); in.setLockTime(new Date()); RestrictProject use = restrictProjectMapper.selectByPid(in); if (use != null && use.getType() != 0){ throw new BusinessException("该项目已存在"); } if(use ==null){ restrictProjectMapper.insertSelective(in); }else if (use.getType() == 0){ in.setId(use.getId()); restrictProjectMapper.updateByPrimaryKeySelective(in); } addUserLog(in,0); return 1; } /** * * @param in * @param i 0=新增 1=移除 */ private void addUserLog(RestrictProject in, int i) { addUserLog(in,i,null); } @Override public Object list(InputRestrictProject in) { in.setAid(TokenManager.getAdminId()); return restrictProjectMapper.selectByUidAndAid(in); } @Override public Object update(Integer id,Integer type,String takeAid) { Date date = new Date(); RestrictProject in = new RestrictProject(); RestrictProject use = restrictProjectMapper.selectByPrimaryKey(id); in.setId(id); if (type==0){ in.setReleaseTime(date); in.setType(0); addUserLog(use,1); }else if (type==1){ in.setLockTime(date); in.setAid(takeAid); in.setPid(use.getPid()); in.setUid(use.getUid()); addUserLog(use,2,takeAid); } return restrictProjectMapper.updateByPrimaryKeySelective(in); } @Override public Object pageList(InputRestrictProject in) { Map param = new HashMap<>(); if (in.getUserName()!=null)param.put("userName",in.getUserName()); if (in.getType()!=null)param.put("type",in.getType()); if (in.getStartTime()!=null)param.put("startTime",in.getStartTime()); if (in.getEndTime()!=null)param.put("endTime",in.getEndTime()+" 23:59:59"); if (in.getProjectName()!=null)param.put("projectName",in.getProjectName()); Pagination page = (Pagination) findPage("RestrictProjectList", "RestrictProjectCount", param, in.getPageNo(), in.getPageSize()); return page; } private void addUserLog(RestrictProject in, int i, String takeAid) { UserTransferLog log = new UserTransferLog(); log.setUid(in.getUid()); log.setPid(in.getPid()); if (i == 0){ log.setAid(in.getAid()); log.setType(15); } else if (i == 1) { log.setAid(in.getAid()); log.setType(16); }else if (i == 2) { log.setAid(TokenManager.getAdminId()); log.setTakeAid(takeAid); log.setType(17); } userTransferLogMapper.insertSelective(log); } }