Ver código fonte

Merge branch 'corp_follow_indx' into pre

zoujiajian 2 anos atrás
pai
commit
9770cd501b

+ 5 - 0
netflix-common/src/main/java/com/cyksj/dto/RedisKey.java

@@ -62,4 +62,9 @@ public class RedisKey {
      * Telegram 电报机器人推送
      */
     public static String TELEGRAM_BOT_MSG ="telegram:bot:msg";
+
+    /**
+     * 客服下标
+     */
+    public static String SERVICE_INDEX_KEY ="service_index_key";
 }

+ 0 - 2
netflix-service/src/main/java/com/cyksj/redis/RedisService.java

@@ -831,8 +831,6 @@ public class RedisService {
         CHATGPT_CAR_SCORES("chatgpt:car:scores","chatGpt 车队分数", 48 * 60 * 60L),
         CHATGPT_CAR_HIGH_CHAT("chatgpt:car:high:chat:","chatGpt gpt4 对话次数", 48 * 60 * 60L),
         CHATGPT_CAR_LOW_CHAT("chatgpt:car:low:chat:","chatGpt 3.5 对话次数", 48 * 60 * 60L),
-        MINI_SCHEMA_URL_PATH("mini_schema_url_path:", "小程序schema", 23 * 60 * 60L),
-
         ;
 
         private String name;

+ 12 - 21
netflix-service/src/main/java/com/cyksj/service/mini/impl/MiniServiceImpl.java

@@ -169,28 +169,19 @@ public class MiniServiceImpl implements MiniService {
 	public String generateSchema(MiniSchemaReq req) throws Exception {
 		//跳转路径
 		req.setPath("pages/index/index");
-		String key = RedisService.key.MINI_SCHEMA_URL_PATH.getEnvName() + req.getPath();
-		String miniSchema = redisService.getStr(key);
-		if (StrUtil.isEmpty(miniSchema)) {
-			try {
-				//调用微信小程序接口
-				String accessToken = weChatService.getAccessToken(certMiniConfig.getAppId());
-				TargetAppletSchemeReq targetAppletSchemeReq = new TargetAppletSchemeReq();
-				targetAppletSchemeReq.setExpireType(0l);
-				targetAppletSchemeReq.setExpireTime((System.currentTimeMillis() / 1000) + Times.second_per_day);
-				targetAppletSchemeReq.setIsExpired(false);
-				TargetAppletSchemeReq.JumpWxa jumpWxa = new TargetAppletSchemeReq.JumpWxa(req.getPath(), "");
-				targetAppletSchemeReq.setJumpWxa(jumpWxa);
-				miniSchema = weChatService.generateSchema(accessToken, targetAppletSchemeReq);
-				if (StrUtil.isNotBlank(miniSchema)) {
-					redisService.setNx(key, miniSchema, RedisService.key.MINI_SCHEMA_URL_PATH.getTimeout());
-				}
-			} catch (Exception e) {
-			}
-		}
-		if (StrUtil.isNotBlank(req.getDsCode()) && StrUtil.isNotBlank(miniSchema)) {
-			miniSchema = miniSchema.contains("?") ? miniSchema + "&dsCode=" + req.getDsCode() : miniSchema + "?dsCode=" + req.getDsCode();
+		String query = StrUtil.EMPTY;
+		if (StrUtil.isNotBlank(req.getDsCode())) {
+			query = "dsCode=" + req.getDsCode();
 		}
+		//调用微信小程序接口
+		String accessToken = weChatService.getAccessToken(certMiniConfig.getAppId());
+		TargetAppletSchemeReq targetAppletSchemeReq = new TargetAppletSchemeReq();
+		targetAppletSchemeReq.setExpireType(0l);
+		targetAppletSchemeReq.setExpireTime((System.currentTimeMillis() / 1000) + Times.second_per_day);
+		targetAppletSchemeReq.setIsExpired(false);
+		TargetAppletSchemeReq.JumpWxa jumpWxa = new TargetAppletSchemeReq.JumpWxa(req.getPath(), query);
+		targetAppletSchemeReq.setJumpWxa(jumpWxa);
+		String miniSchema = weChatService.generateSchema(accessToken, targetAppletSchemeReq);
 		return miniSchema;
 	}
 

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/user/UserActivityService.java

@@ -11,7 +11,7 @@ import com.cyksj.model.entity.UserActivity;
  * 创建时间:2024/4/16 12:16
  */
 public interface UserActivityService extends IService<UserActivity> {
-	void sendStudentCertActivity(User user, String dsCode) throws Exception;
+	void sendStudentCertActivity(User user, String dsCode, String school) throws Exception;
 
 	void saveOrUpdateActivity(UserActivity userActivity) throws Exception;
 }

+ 13 - 1
netflix-service/src/main/java/com/cyksj/service/user/impl/UserActivityServiceImpl.java

@@ -6,13 +6,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.util.Jsons;
 import com.cyksj.mapper.UserActivityMapper;
 import com.cyksj.mapper.UserMapper;
+import com.cyksj.mapper.UserStudentCertRecordMapper;
 import com.cyksj.model.entity.CouponUser;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.entity.UserActivity;
+import com.cyksj.model.entity.UserStudentCertRecord;
 import com.cyksj.service.mange.coupon.CouponCommonService;
 import com.cyksj.service.user.UserActivityService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -31,8 +34,9 @@ public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, Use
 
 	private final UserMapper userMapper;
 
+	private final UserStudentCertRecordMapper userStudentCertRecordMapper;
 	@Override
-	public void sendStudentCertActivity(User user, String dsCode) throws Exception {
+	public void sendStudentCertActivity(User user, String dsCode, String school) throws Exception {
 		UserActivity activity = getById(1);
 		Long sendUserId = user.getId();
 		if (StrUtil.isNotBlank(dsCode)) {
@@ -50,6 +54,14 @@ public class UserActivityServiceImpl extends ServiceImpl<UserActivityMapper, Use
 				couponCommonService.sendCouponToUser(sendUserId, couponId, 0l, 0l, 0l, CouponUser.Channel.student_cert);
 			}
 		}
+		try {
+			UserStudentCertRecord record = new UserStudentCertRecord();
+			//记录发送用户
+			record.setUserId(sendUserId);
+			record.setSchool(school);
+			userStudentCertRecordMapper.insert(record);
+		} catch (DuplicateKeyException e) {
+		}
 	}
 
 	@Override

+ 1 - 9
netflix-web/src/main/java/com/cyksj/web/controller/mini/UserStudentCertController.java

@@ -21,7 +21,6 @@ import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.dao.DuplicateKeyException;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -70,14 +69,7 @@ public class UserStudentCertController {
 		}
 		miniService.getStudentIdentity(user, code);
 		//大学生认证活动 若有sid则发送对应用户
-		try {
-			UserStudentCertRecord record = new UserStudentCertRecord();
-			record.setUserId(userId);
-			record.setSchool(school);
-			userStudentCertRecordMapper.insert(record);
-			userActivityService.sendStudentCertActivity(user, dsCode);
-		} catch (DuplicateKeyException e) {
-		}
+		userActivityService.sendStudentCertActivity(user, dsCode, school);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
 

+ 14 - 0
netflix-web/src/main/java/com/cyksj/web/controller/sys/SysConfigController.java

@@ -11,6 +11,7 @@ import com.cyksj.common.annotation.Log;
 import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Jsons;
+import com.cyksj.dto.RedisKey;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
@@ -218,4 +219,17 @@ public class SysConfigController {
 		cpsUserAdRecordMapper.delete(null);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 获取客服下标
+	 */
+	@GetMapping("/get/service/index")
+	public Result<Long> getCorpFollowIndex() {
+		String key = RedisKey.SERVICE_INDEX_KEY;
+		Long index = redisService.incr(key, 1l);
+		if (index == 10) {
+			redisService.set(key, 1);
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult(index - 1);
+	}
 }