Browse Source

新增会员过期定时

libing 5 years ago
parent
commit
931b63044f

+ 8 - 0
src/main/java/com/up/sell/mapper/MemberOrderMapper.java

@@ -1,5 +1,7 @@
 package com.up.sell.mapper;
 
+import java.util.List;
+
 import com.up.sell.vo.MemberOrder;
 
 public interface MemberOrderMapper {
@@ -44,4 +46,10 @@ public interface MemberOrderMapper {
      * @return
      */
     int cancelOrder(int hours);
+
+    /**
+     * 获取全部订单
+     * @return
+     */
+	List<MemberOrder> selectAll();
 }

+ 2 - 0
src/main/java/com/up/sell/service/MemberSerice.java

@@ -10,4 +10,6 @@ package com.up.sell.service;
 public interface MemberSerice {
 
 	int updateViewCount(Integer defaultViewCount);
+
+	int memberExpired();
 }

+ 44 - 0
src/main/java/com/up/sell/service/impl/MemberSericeImpl.java

@@ -3,13 +3,21 @@
  */
 package com.up.sell.service.impl;
 
+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.vo.MemberOrder;
 
 /**
  * @author zmg
@@ -18,9 +26,15 @@ import com.up.sell.service.MemberSerice;
 @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;
+
+	
 	/**
 	 * 恢复每个会员的默认可查看电话次数
 	 */
@@ -28,4 +42,34 @@ public class MemberSericeImpl implements MemberSerice{
 	public int updateViewCount(Integer defaultViewCount) {
 		return this.memberMapper.updateViewCount(defaultViewCount);
 	}
+
+	@Override
+	public int memberExpired() {
+		List<MemberOrder> 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);
+		return 0;
+	}
+	
+	public static int getDatePoor(Date endDate, Date nowDate) {
+		 
+	    long nd = 1000 * 24 * 60 * 60;
+	    // 获得两个时间的毫秒时间差异
+	    long diff = endDate.getTime() - nowDate.getTime();
+//	    // 计算差多少天
+	    long day = diff / nd;
+	    return (int) day;
+	}
 }

+ 13 - 0
src/main/java/com/up/sell/task/ScheduledTask.java

@@ -49,4 +49,17 @@ public class ScheduledTask {
 			logger.error(e.getMessage(), e);
 		}
     }
+	
+	/**
+	 * 每天零点查询会员是否过期
+	 */
+	@Scheduled(cron="0 0 0 * * ?")
+    public void memberExpired () {
+		try {
+			logger.info("每天零点查询会员是否过期");
+			this.memberSerice.memberExpired();
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+		}
+    }
 }

+ 7 - 0
src/main/resources/configs/mybatis/xml/MemberOrderMapper.xml

@@ -235,4 +235,11 @@
   <update id="cancelOrder" parameterType="map">
     UPDATE member_order SET order_status=0 WHERE order_status=1 AND create_time <![CDATA[<]]> DATE_SUB(NOW(),INTERVAL #{hours} HOUR)
   </update>
+  
+  <select id="selectAll" resultMap="BaseResultMap">
+  	 select 
+    <include refid="Base_Column_List" />
+    from member_order
+    where service_flag = 1
+  </select>
 </mapper>