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<CoffeeBeanTaskDTO> getTask() {
|
|
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
|
List<SystemDictData> systemDictData = systemDictDataBiz.queryListByCode(Constants.COFFEE_BEAN_TASK, null);
|
List<CoffeeBeanTaskDTO> 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<Member> list = memberService.findList(wrapper);
|
List<Integer> 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;
|
}
|
}
|