/** * */ package com.up.sell.service.impl; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.up.sell.mapper.MemberMapper; import com.up.sell.mapper.MemberOrderMapper; import com.up.sell.service.MemberSerice; import com.up.sell.service.SchedulerContentService; import com.up.sell.vo.MemberOrder; /** * @author zmg * */ @Service @Transactional(propagation=Propagation.SUPPORTS) public class MemberSericeImpl implements MemberSerice{ private static final Logger logger = LoggerFactory.getLogger(MemberSericeImpl.class); @Autowired private MemberMapper memberMapper; @Autowired private MemberOrderMapper memberOrderMapper; @Autowired private SchedulerContentService schedulerContentService; /** * 恢复每个会员的默认可查看电话次数 */ @Transactional(propagation=Propagation.REQUIRED) public int updateViewCount(Integer defaultViewCount) { Integer n = this.memberMapper.updateViewCount(defaultViewCount); schedulerContentService.insertResultForJob("每天零点重设每个会员剩余查看品牌联系人的次数", n); return n; } @Override public int memberExpired() { List list = memberOrderMapper.selectAll(); logger.info("会员总数:" + list.size()); int count = 0; for (MemberOrder mo : list) { Date endTime = mo.getEndTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); logger.info("会员到期时间:" + sdf.format(endTime)); int datePoor = getDatePoor(endTime, new Date()); if (datePoor == 0) { mo.setServiceFlag(0); memberOrderMapper.updateByPrimaryKey(mo); count++; } } logger.info("会员过期总数:" + count); schedulerContentService.insertResultForJob("每天零点查询会员是否过期", count); return 0; } public static int getDatePoor(Date endDate, Date nowDate) { try { long dt1 = endDate.getTime(); long dt2 = nowDate.getTime(); if (dt1 > dt2) { System.out.println("未到期"); return 1; } else if (dt1 < dt2) { System.out.println("已到期"); } else { System.out.println("相等"); } } catch (Exception exception) { exception.printStackTrace(); } return 0; } }