Browse Source

会员到期检查

albertshaw 8 years ago
parent
commit
a18cc67f16

+ 5 - 0
src/main/java/com/goafanti/common/dao/MemberOrderMapper.java

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import java.util.List;
 import java.util.Map;
 
 import com.goafanti.common.model.MemberOrder;
@@ -18,4 +19,8 @@ public interface MemberOrderMapper {
 	int updateByPrimaryKey(MemberOrder record);
 
 	int updateUserLvl(Map<String, Object> params);
+
+	int updateBatchUserLvl(Map<String, Object> params);
+
+	List<String> selectExpired();
 }

+ 14 - 0
src/main/java/com/goafanti/common/mapper/MemberOrderMapperExt.xml

@@ -6,4 +6,18 @@
 		UPDATE user SET
 		lvl=#{lvl} WHERE id=#{userId}
 	</update>
+	
+	<update id="updateBatchUserLvl" parameterType="java.util.Map">
+	 	update user set lvl = #{lvl}
+	 	where id in 
+		<foreach item="item" collection="list" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+	 </update>
+	
+	<select id="selectExpired" resultType="java.lang.String">
+		SELECT user_id FROM member_order 
+		where (order_state=1 or order_state=3) 
+		and valid_time &gt; CURDATE() and valid_time &lt; date_sub(CURDATE(),interval -1 day)  
+    </select>
 </mapper>

+ 26 - 0
src/main/java/com/goafanti/common/task/ExpiredUserMemberTask.java

@@ -0,0 +1,26 @@
+package com.goafanti.common.task;
+
+import javax.annotation.Resource;
+
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.memberGrade.service.MemberOrderService;
+
+@Component
+public class ExpiredUserMemberTask {
+
+	@Resource
+	MemberOrderService memberOrderService;
+
+	/**
+	 * "0 0 1 * * ?" 每天1点触发一次
+	 */
+	@Scheduled(cron = "0 0 1 * * ?")
+	public void exprireRun() {
+		LoggerUtils.debug(getClass(), "开始检查会员到期");
+		memberOrderService.updateExpiredUser();
+	}
+
+}

+ 8 - 2
src/main/java/com/goafanti/memberGrade/controller/MemberGradeFrontController.java

@@ -15,9 +15,11 @@ import com.goafanti.common.bo.Result;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.enums.OrderState;
 import com.goafanti.common.model.MemberOrder;
+import com.goafanti.common.model.User;
 import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.memberGrade.service.MemberGradeService;
+import com.goafanti.user.service.UserService;
 
 /**
  * 会员 前台
@@ -31,6 +33,8 @@ public class MemberGradeFrontController extends BaseApiController {
 	@Autowired
 	private MemberGradeService	memberGradeService;
 	@Autowired
+	private UserService			userService;
+	@Autowired
 	private JDBCIdGenerator		jDBCIdGenerator;
 
 	/**
@@ -66,6 +70,9 @@ public class MemberGradeFrontController extends BaseApiController {
 	 */
 	@RequestMapping(value = "/addBasicsMemberOrder", method = RequestMethod.POST)
 	public Result addBasicsMemberOrder(Integer menberType, String price, Integer validMonth) {
+		Assert.notNull(TokenManager.getUserToken(), "必须用户登录");
+		User u = userService.selectByPrimaryKey(TokenManager.getUserId());
+		Assert.isTrue(u.getLvl() == 1, "必须为实名认证用户,已经是会员的无需重复申请");
 		MemberOrder mo = new MemberOrder();
 		mo.setId(jDBCIdGenerator.generateId());
 		mo.setMenberType(menberType);
@@ -73,8 +80,7 @@ public class MemberGradeFrontController extends BaseApiController {
 		mo.setValidMonth(validMonth);
 		mo.setOrderState(OrderState.UNPAYED.getCode());
 		mo.setOrderTime(new Date());
-		Assert.notNull(TokenManager.getUserToken(), "必须用户登录");
-		mo.setUserId(TokenManager.getUserId());
+		mo.setUserId(u.getId());
 		return res().data(memberGradeService.addBasicsMemberOrder(mo));
 	}
 

+ 11 - 0
src/main/java/com/goafanti/memberGrade/service/MemberOrderService.java

@@ -1,6 +1,7 @@
 package com.goafanti.memberGrade.service;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,4 +29,14 @@ public class MemberOrderService {
 		}
 		return memberOrderMapper.updateByPrimaryKeySelective(mo);
 	}
+
+	public void updateExpiredUser() {
+		List<String> uids = memberOrderMapper.selectExpired();
+		if (!uids.isEmpty()) {
+			Map<String, Object> umap = new HashMap<>();
+			umap.put("lvl", 1);
+			umap.put("list", uids);
+			memberOrderMapper.updateBatchUserLvl(umap);
+		}
+	}
 }

+ 9 - 3
src/main/webapp/WEB-INF/views/common.html

@@ -162,10 +162,16 @@
 		<div class="pub_fix">
 			<span class="index_blur"></span>
 			<ul class="ret_top">
-				<li><a th:href="${basePath + '/portal/member'}"> <img
-						th:src="${portalHost+'/img/index_fix0.png'}" alt="" />
+				<li th:if="${!isAdmin}" th:classappend="${!isLogin}? 'head_login'">
+					<a th:if="${!isLogin || userData.lvl == 1}" th:href="${isLogin?(basePath + '/portal/member') : 'javascript:;'}" >
+						<img th:src="${portalHost+'/img/index_fix0.png'}" alt="" />
 						<p>申请会员</p>
-				</a></li>
+					</a>
+					<a th:if="${isLogin && userData.lvl == 0}" th:href="${basePath + '/user/certify'}" >
+						<img th:src="${portalHost+'/img/index_fix0.png'}" alt="" />
+						<p>实名认证</p>
+					</a>
+				</li>
 				<li th:if="${!isLogin}"><a href=""> <img
 						th:src="${portalHost+'/img/index_fix1.png'}" alt="" />
 						<p>发布需求</p>