package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Signup; import com.doumee.dao.web.dto.coffeebean.CoffeeBeanMemberDTO; import com.doumee.dao.web.dto.coffeebean.CoffeeBeanTaskDTO; import com.doumee.dao.system.model.SystemDictData; import com.doumee.service.business.*; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Service public class CoffeeBeanTaskServiceImpl implements CoffeeBeanTaskService { @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private SignupService signupService; @Autowired private SharesService sharesService; @Autowired private CommentService commentService; @Autowired private ShopCommentService shopCommentService; @Autowired private IntegralService integralService; @Autowired private MemberService memberService; @Override public List getTask() { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); List systemDictData = systemDictDataBiz.queryListByCode(Constants.COFFEE_BEAN_TASK, null); List list = new ArrayList<>(); for (SystemDictData dictData : systemDictData){ if (Constants.SIGN_BOARD.equalsIgnoreCase(dictData.getLabel())){ Signup wrapper = new Signup(); wrapper.setMemberId(loginUserInfo.getMemberId()); Signup one = signupService.findOne(wrapper); LocalDate dateTime = DateUtil.toDateLocalDateTime(one.getCreateDate()).toLocalDate(); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(LocalDate.now().compareTo(dateTime) > 0 ? 1 : 0); dto.setLabel(dictData.getLabel()); list.add(dto); } if (Constants.SHARE_INFO.equalsIgnoreCase(dictData.getLabel())){ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); long count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(), Arrays.asList(0,1,2,3,4)); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count); dto.setLabel(dictData.getLabel()); list.add(dto); } if (Constants.SHARE_INVITE_BILL.equalsIgnoreCase(dictData.getLabel())){ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); long count = sharesService.count(startDate, endDate, loginUserInfo.getMemberId(),Arrays.asList(5)); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count); dto.setLabel(dictData.getLabel()); list.add(dto); } if (Constants.INVITE_USER_LOGIN.equalsIgnoreCase(dictData.getLabel())){ CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setLabel(dictData.getLabel()); list.add(dto); } if (Constants.POST_COMMENTS.equalsIgnoreCase(dictData.getLabel())){ Date startDate = DateUtil.toDate(DateUtil.getMonday()); Date endDate = DateUtil.toDate(DateUtil.getSunday()); long count = commentService.count(startDate, endDate, loginUserInfo.getMemberId()); long shopcount = shopCommentService.count(startDate, endDate, loginUserInfo.getMemberId(),null); CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setDoneCount(count+shopcount); dto.setLabel(dictData.getLabel()); list.add(dto); } if (Constants.COFFEE_MAP_CONSUME.equalsIgnoreCase(dictData.getLabel())){ CoffeeBeanTaskDTO dto = new CoffeeBeanTaskDTO(); dto.setCode(dictData.getCode()); dto.setLabel(dictData.getLabel()); list.add(dto); } } return list; } @Override public CoffeeBeanMemberDTO getCoffeeBeanMemberDTO() { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member member = memberService.findById(loginUserInfo.getMemberId()); Member wrapper = new Member(); wrapper.setRecId(member.getId()); List list = memberService.findList(wrapper); List collect = list.stream().map(s -> s.getId()).collect(Collectors.toList()); CoffeeBeanMemberDTO coffeeBeanMemberDTO = new CoffeeBeanMemberDTO(); coffeeBeanMemberDTO.setMemberId(member.getId()); coffeeBeanMemberDTO.setCoffeeBeanCount(member.getIntegral()); coffeeBeanMemberDTO.setRecIds(collect); return coffeeBeanMemberDTO; } }