Просмотр исходного кода

修改项目启动时自动创建活动排名

silent 4 лет назад
Родитель
Сommit
55b9e2675e

+ 55 - 19
src/main/java/org/springblade/gateway/active_gateway/controller/AppActiveProductController.java

@@ -1,13 +1,32 @@
 package org.springblade.gateway.active_gateway.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.common.utils.IPUtils;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.log.annotation.ApiLog;
+import org.springblade.core.tool.api.R;
 import org.springblade.gateway.active_gateway.service.AppActiveProductService;
+import org.springblade.gateway.active_gateway.util.ActiveProductUtil;
+import org.springblade.sing.active.entity.ActiveHelpRecord;
+import org.springblade.sing.active.entity.ActiveProductRecord;
+import org.springblade.sing.active.entity.ActiveRecord;
+import org.springblade.sing.active.service.IActiveProductRecordService;
+import org.springblade.sing.active.service.IActiveRecordService;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @Author: Silent
  * @Description
@@ -20,25 +39,42 @@ import org.springframework.web.bind.annotation.RestController;
 @Api(value = "助力", tags = "助力接口")
 @Slf4j
 public class AppActiveProductController extends BladeController {
-	private AppActiveProductService activeService;
+	private final AppActiveProductService activeService;
 
-//	/**
-//	 * 作品助力
-//	 */
-//	@ApiLog("作品助力")
-//	@PostMapping("/productHelp")
-//	@ApiOperationSupport(order = 1)
-//	@ApiOperation(value = "作品助力", notes = "传入activeHelpRecord")
-//	public R<String> productHelp(@Valid ActiveHelpRecord activeHelpRecord, HttpServletRequest request){
-//		try {
-//			//获取用户IP地址
-//			activeHelpRecord.setIp(IPUtils.getRealIp(request));
-//			activeService.activeHelp(activeHelpRecord);
-//			return R.success("助力成功!");
-//		} catch (Exception e) {
-//			log.error(e.getMessage());
-//			return R.fail(e.getMessage());
-//		}
-//	}
+	private final IActiveProductRecordService activeProductRecordService;
+
+	private final IActiveRecordService activeRecordService;
 
+	@PostConstruct
+	public void init(){
+		//查询所有的活动列表
+		List<ActiveRecord> activeRecordList = activeRecordService.list();
+		for (ActiveRecord activeRecord : activeRecordList) {
+			//查询该活动的所有作品
+			List<ActiveProductRecord> activeProductRecordList = activeProductRecordService
+				.list(Wrappers.<ActiveProductRecord>lambdaQuery()
+				.eq(ActiveProductRecord::getActiveId, activeRecord.getId()));
+			Map<Object, Double> map = activeProductRecordList.stream().collect(Collectors.toMap(ele -> ele.getId(), ele -> ele.getHeatValue().doubleValue()));
+			ActiveProductUtil.addActiveCache(activeRecord.getId().toString(),map);
+		}
+	}
+
+	/**
+	 * 作品助力
+	 */
+	@ApiLog("作品助力")
+//	@PostMapping("/productHelp")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "作品助力", notes = "传入activeHelpRecord")
+	public R<String> productHelp(@Valid ActiveHelpRecord activeHelpRecord, HttpServletRequest request){
+		try {
+			//获取用户IP地址
+			activeHelpRecord.setIp(IPUtils.getRealIp(request));
+			activeService.activeHelp(activeHelpRecord);
+			return R.success("助力成功!");
+		} catch (Exception e) {
+			log.error(e.getMessage());
+			return R.fail(e.getMessage());
+		}
+	}
 }

+ 24 - 0
src/main/java/org/springblade/gateway/active_gateway/util/ActiveProductUtil.java

@@ -5,6 +5,8 @@ import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.gateway.active_gateway.constant.ActiveProductConstant;
 import org.springblade.sing.active.entity.ActiveProductRecord;
 
+import java.util.Map;
+
 /**
  * @Author: Silent
  * @Description
@@ -29,6 +31,8 @@ public class ActiveProductUtil {
 
 	/**
 	 * 删除作品排行
+	 * @param activeProductRecord
+	 * @return
 	 */
 	public static Long delProductRank(ActiveProductRecord activeProductRecord){
 		//先移除
@@ -36,6 +40,26 @@ public class ActiveProductUtil {
 			activeProductRecord.getId());
 	}
 
+	/**
+	 * 删除活动缓存
+	 * @param activeId
+	 * @return
+	 */
+	public static boolean delActiveCache(String activeId){
+		return bladeRedis.del(new StringBuilder(ActiveProductConstant.PRODUCT_SORT_CACHE_KEY).append(":").append(activeId).toString());
+	}
+
+	/**
+	 * 添加活动缓存
+	 * @param activeId
+	 * @param activeMap
+	 * @return
+	 */
+	public static Long addActiveCache(String activeId, Map<Object,Double> activeMap){
+		delActiveCache(activeId);
+		return bladeRedis.zAdd(new StringBuilder(ActiveProductConstant.PRODUCT_SORT_CACHE_KEY).append(":").append(activeId).toString(),activeMap);
+	}
+
 	/**
 	 * 添加累计加热力值
 	 * @param activeId 活动id

+ 1 - 1
src/main/java/org/springblade/gateway/goods_gateway/controller/AppHelpGoodsController.java

@@ -104,7 +104,7 @@ public class AppHelpGoodsController {
 	@ApiLog("发送验证码")
 	@PostMapping("/sendCmccSms")
 	@ApiOperationSupport(order = 1)
-	@ApiOperation(value = "创建道具订单", notes = "传入cmccPlaceOrderRequest")
+	@ApiOperation(value = "发送验证码", notes = "传入cmccPlaceOrderRequest")
 	public R<String> sendCmccSms(@ApiParam(value = "手机号码",required = true) @RequestParam String mobile,
 						 @ApiParam(value = "订单号ID",required = true) @RequestParam String outOrderId){
 		try {