首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >根据用户主动关注用户和用户朋友圈以及其他关系层面平台注入的用户 系统推荐程序返回用户推荐列表

根据用户主动关注用户和用户朋友圈以及其他关系层面平台注入的用户 系统推荐程序返回用户推荐列表

原创
作者头像
程序员编程助手科技
发布2026-05-11 18:40:36
发布2026-05-11 18:40:36
550
举报
文章被收录于专栏:Java技术Java技术
代码语言:java
复制
package com.microsoft.aiRecmandation.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.UUID;

import com.microsoft.aiRecmandation.domain.CustomerRetGoodAndReplyStatistic;
import com.microsoft.aiRecmandation.domain.CustomerScanne;
import com.microsoft.aiRecmandation.domain.FixedLeaderBoard;
import com.microsoft.aiRecmandation.domain.LeaderBoard;
import com.microsoft.aiRecmandation.domain.LeaderBoardZoneInjection;
import com.microsoft.aiRecmandation.domain.OpenToPublicLeaderBoardUser;
import com.microsoft.aiRecmandation.domain.RetGoodAndReplyStatistic;

public class AIRecomandationController {

	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
	
	/**
	 * 根据用户主动关注用户和用户朋友圈以及其他关系层面平台注入的用户 系统推荐程序返回用户推荐列表
	 * @param srcList
	 * @return
	 * 
	 */
	public static List<OpenToPublicLeaderBoardUser> getAIRecomandationUserListByMaster(List<CustOpen2PublicUserClimbingLeaerBoardUsingStatistic> srcList){
		if(srcList==null) {
			return null;
		}
		if(srcList.isEmpty()) {
			return null;
		}
		//first time innicialized fixed 4 climibing leaderbaord use data
		List<CustomerOpen2PublicUserWrapper> custOpen2PublicUserWrapperList=new ArrayList<>();
		for (int i = 0; i < srcList.size(); i++) {
			CustomerOpen2PublicUserWrapper customerOpen2PublicUserWrapper = new CustomerOpen2PublicUserWrapper();
			customerOpen2PublicUserWrapper.setId(UUID.randomUUID().toString());
			customerOpen2PublicUserWrapper.setName("");
			CustOpen2PublicUserClimbingLeaerBoardUsingStatistic custOpen2PublicUserClimbingLeaerBoardUsingStatistic = srcList.get(i);
			Integer masterGoodFriendShipConcernedCount = custOpen2PublicUserClimbingLeaerBoardUsingStatistic.getMasterGoodFriendShipConcernedCount();
			Integer froCustomerFriendshipUserCount = custOpen2PublicUserClimbingLeaerBoardUsingStatistic.getFroCustomerFriendshipUserCount();
			Integer integer = masterGoodFriendShipConcernedCount+froCustomerFriendshipUserCount;
			customerOpen2PublicUserWrapper.setMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs(integer);
			customerOpen2PublicUserWrapper.setCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId(custOpen2PublicUserClimbingLeaerBoardUsingStatistic.getId());
			custOpen2PublicUserWrapperList.add(customerOpen2PublicUserWrapper);
		}
		// rank page this master is to concerned and normal friendship selected
		Collections.sort(custOpen2PublicUserWrapperList,new Comparator<CustomerOpen2PublicUserWrapper>() {
			@Override
			public int compare(CustomerOpen2PublicUserWrapper o1, CustomerOpen2PublicUserWrapper o2) {
				// TODO Auto-generated method stub
				if(o1.getMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs()>o2.getMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs()) {
					return 1;
				}else if(o1.getMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs()<o2.getMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs()) {
					return -1;
				}
				return 0;
			}
		});
		CustomerOpen2PublicUserWrapper customerOpen2PublicUserWrapper = custOpen2PublicUserWrapperList.get(custOpen2PublicUserWrapperList.size()-1);
		CustomerOpen2PublicUserWrapper customerOpen2PublicUserWrapper2 = custOpen2PublicUserWrapperList.get(custOpen2PublicUserWrapperList.size()-2);
		CustomerOpen2PublicUserWrapper customerOpen2PublicUserWrapper3 = custOpen2PublicUserWrapperList.get(custOpen2PublicUserWrapperList.size()-3);
		CustomerOpen2PublicUserWrapper customerOpen2PublicUserWrapper4 = custOpen2PublicUserWrapperList.get(custOpen2PublicUserWrapperList.size()-4);
		// get this fixed relationship user list referrened to customerOpen2PublicUserWrapper
		String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId = customerOpen2PublicUserWrapper.getCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId();
		String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId2 = customerOpen2PublicUserWrapper2.getCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId();
		String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId3 = customerOpen2PublicUserWrapper3.getCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId();
		String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId4 = customerOpen2PublicUserWrapper4.getCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId();
		srcList.forEach(e->{
			// get this fist 4 elements of climbing leader board statistics
			String id = e.getId();
			if(id.equals(custOpen2PublicUserClimbingLeaerBoardUsingStatisticId)) {
//				e.getCustomerPlatformId();
			}else if(id.equals(custOpen2PublicUserClimbingLeaerBoardUsingStatisticId2)) {
				
			}else if(id.equals(custOpen2PublicUserClimbingLeaerBoardUsingStatisticId3)) {
				
			}else if(id.equals(custOpen2PublicUserClimbingLeaerBoardUsingStatisticId4)) {
				
			}
		});
		return null;
	}
	
	//根据点赞数量和回帖数量统计推荐用户方式接口排序 content recomandation engine dependency
	public static List<OpenToPublicLeaderBoardUser> getAIRecomandationUserList(List<RetGoodAndReplyStatistic> retGoodAndReplyStatisticList) {
		if(retGoodAndReplyStatisticList==null) {
			return null;
		}
		if(retGoodAndReplyStatisticList.isEmpty()) {
			return null;
		}
		List<CustomerRetGoodAndReplyStatistic> custRetGoodAndReplyStatisticList=new ArrayList<CustomerRetGoodAndReplyStatistic>();
		for(RetGoodAndReplyStatistic retGoodAndReplyStatistic : retGoodAndReplyStatisticList) {
			Integer goodTypeTagCount = retGoodAndReplyStatistic.getGoodTypeTagCount();
			Integer replyTypeTagCount = retGoodAndReplyStatistic.getReplyTypeTagCount();
			int goodTypeTagCountPlusReplyCount=goodTypeTagCount+replyTypeTagCount;
			CustomerRetGoodAndReplyStatistic custRetGoodAndReplyStatistic=new CustomerRetGoodAndReplyStatistic();
			custRetGoodAndReplyStatistic.setId(UUID.randomUUID().toString());
			custRetGoodAndReplyStatistic.setName("");
			custRetGoodAndReplyStatistic.setGoodTypeTagCountPlusReplyCount(goodTypeTagCountPlusReplyCount);
			custRetGoodAndReplyStatistic.setRetGoodAndReplyStatisticId("");
			custRetGoodAndReplyStatisticList.add(custRetGoodAndReplyStatistic);
		}
		Collections.sort(custRetGoodAndReplyStatisticList,new Comparator<CustomerRetGoodAndReplyStatistic>() {
			@Override
			public int compare(CustomerRetGoodAndReplyStatistic o1, CustomerRetGoodAndReplyStatistic o2) {
				// TODO Auto-generated method stub
				if(o1.getGoodTypeTagCountPlusReplyCount()>o2.getGoodTypeTagCountPlusReplyCount()) {
					return 1;
				}else if(o1.getGoodTypeTagCountPlusReplyCount()<o2.getGoodTypeTagCountPlusReplyCount()) {
					return -1;
				}
				return 0;
			}
		});
		// fixd leader board items data consume to be a blank
		LeaderBoardZoneInjection leaderBoardInjection=new LeaderBoardZoneInjection();
		leaderBoardInjection.setId(UUID.randomUUID().toString());
		leaderBoardInjection.setName("leaderBoardInjection");
		LeaderBoard leaderBoard=new LeaderBoard();
		leaderBoard.setId(UUID.randomUUID().toString());
		leaderBoard.setName("leaderBoard");
		leaderBoard.setLeaderBoardInjectionId(leaderBoardInjection.getId());
		FixedLeaderBoard fixedLeaderBoard=new FixedLeaderBoard();
		fixedLeaderBoard.setId(UUID.randomUUID().toString());
		fixedLeaderBoard.setName("fixedLeaderBoard");
		fixedLeaderBoard.setLeaderBoardId(leaderBoard.getId());
		// add a customer injection scanne
		CustomerScanne customerScanne=new CustomerScanne();
		customerScanne.setId(UUID.randomUUID().toString());
		customerScanne.setName("customerScanne");
		customerScanne.setLeaderBoardZoneInjectionId(leaderBoardInjection.getId());
		OpenToPublicLeaderBoardUser openToPublicLeaderBoardUser=new OpenToPublicLeaderBoardUser();
		openToPublicLeaderBoardUser.setId(UUID.randomUUID().toString());
		openToPublicLeaderBoardUser.setName("openToPublicLeaderBoardUser");
		// first time get open to public user and innicialize leader board with 4 items data leader board
		// this is using gpt data retraining method to get experienced data leader board
		CustomerRetGoodAndReplyStatistic custRetGoodAndReplyStatistic=custRetGoodAndReplyStatisticList.get(0);
		Integer goodTypeTagCountPlusReplyCount0 = custRetGoodAndReplyStatistic.getGoodTypeTagCountPlusReplyCount();
		CustomerRetGoodAndReplyStatistic custRetGoodAndReplyStatistic1=custRetGoodAndReplyStatisticList.get(1);
		Integer goodTypeTagCountPlusReplyCount1 = custRetGoodAndReplyStatistic1.getGoodTypeTagCountPlusReplyCount();
		CustomerRetGoodAndReplyStatistic custRetGoodAndReplyStatistic2=custRetGoodAndReplyStatisticList.get(2);
		Integer goodTypeTagCountPlusReplyCount2 = custRetGoodAndReplyStatistic2.getGoodTypeTagCountPlusReplyCount();
		CustomerRetGoodAndReplyStatistic custRetGoodAndReplyStatistic3=custRetGoodAndReplyStatisticList.get(3);
		Integer goodTypeTagCountPlusReplyCount3 = custRetGoodAndReplyStatistic3.getGoodTypeTagCountPlusReplyCount();
		//log first versiton 1.0 innicialized
		Log log=new Log();
		log.setId(UUID.randomUUID().toString());
		log.setName("log first versiton 1.0 innicialized");
//		log.setLogRecordContent("logRecodrContent");
//		log.setOpenToPublicLeaderBoardUserLeaaderBoar_MoreDetailId("");
		return null;
	}
}
class CustomerOpen2PublicUserWrapper{
	private String id;
	private String name;
	private Integer masterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs;
	private String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs() {
		return masterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs;
	}
	public void setMasterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs(
			Integer masterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs) {
		this.masterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs = masterConcerntedAndNormalFriendshipSelectedCountCopyPlatfroInputs;
	}
	public String getCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId() {
		return custOpen2PublicUserClimbingLeaerBoardUsingStatisticId;
	}
	public void setCustOpen2PublicUserClimbingLeaerBoardUsingStatisticId(
			String custOpen2PublicUserClimbingLeaerBoardUsingStatisticId) {
		this.custOpen2PublicUserClimbingLeaerBoardUsingStatisticId = custOpen2PublicUserClimbingLeaerBoardUsingStatisticId;
	}
}
class CustomerOpen2PublicUser{
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {  
		this.name = name;
	}
}
// depend on this customer scanne, waiting on down town city block
// ...zone injection injected by city block privilege master representation
class ClimbingLeaderBoard{
	private String id;
	private String name;
	private String customerOpen2PublicUserId;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	} 
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCustomerOpen2PublicUserId() {
		return customerOpen2PublicUserId;
	}
	public void setCustomerOpen2PublicUserId(String customerOpen2PublicUserId) {
		this.customerOpen2PublicUserId = customerOpen2PublicUserId;
	}
}
class CustomerOpen2PublicUserClimbingLeaderBoardLog{
	private String id;
	private String name;
	private String customerOpen2PublicUserId;
	private String climbingLeaderBoardId;
	private String custOpen2PublicUserClimbingLeaderBoardLogId;
	public String getId() {
		return id;
	}
	public void setId(String id) { 
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getCustomerOpen2PublicUserId() {
		return customerOpen2PublicUserId;
	}
	public void setCustomerOpen2PublicUserId(String customerOpen2PublicUserId) {
		this.customerOpen2PublicUserId = customerOpen2PublicUserId;
	}
	public String getClimbingLeaderBoardId() {
		return climbingLeaderBoardId;
	}
	public void setClimbingLeaderBoardId(String climbingLeaderBoardId) {
		this.climbingLeaderBoardId = climbingLeaderBoardId;
	}
	public String getCustOpen2PublicUserClimbingLeaderBoardLogId() {
		return custOpen2PublicUserClimbingLeaderBoardLogId;
	}
	public void setCustOpen2PublicUserClimbingLeaderBoardLogId(String custOpen2PublicUserClimbingLeaderBoardLogId) {
		this.custOpen2PublicUserClimbingLeaderBoardLogId = custOpen2PublicUserClimbingLeaderBoardLogId;
	}
}
class CustOpen2PublicUserClimbingLeaderBoardLog{
	private String id;
	private String name;
	private String logId;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
// customer user is reading this log page and log content referrenced to him
class CustomerUser{
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
class Log{
	private String id;
	private String name;
	private String logContent;
	private String customerUserId;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getLogContent() {
		return logContent;
	}
	public void setLogContent(String logContent) {
		this.logContent = logContent;
	}
}
class CustOpen2PublicUserClimbingLeaerBoardUsingStatistic{
	private String id;
	private String name;
	private Integer masterGoodFriendShipConcernedCount;
	private Integer froCustomerFriendshipUserCount;
	private Integer froCustomerPlatformInjectionFriendshipBonusCount;
	private String  custOpen2PublicUserClimbingLeaderBoardLogId; 
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() { 
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getMasterGoodFriendShipConcernedCount() {
		return masterGoodFriendShipConcernedCount;
	}
	public void setMasterGoodFriendShipConcernedCount(Integer masterGoodFriendShipConcernedCount) {
		this.masterGoodFriendShipConcernedCount = masterGoodFriendShipConcernedCount;
	}
	public Integer getFroCustomerFriendshipUserCount() {
		return froCustomerFriendshipUserCount;
	}
	public void setFroCustomerFriendshipUserCount(Integer froCustomerFriendshipUserCount) {
		this.froCustomerFriendshipUserCount = froCustomerFriendshipUserCount;
	}
}
class CustomerPlatform{
	private String id;
	private String name;
	private Integer custPlatformInjectionFriendshipUserCount;
	private String retConcernedAndRelationshipId;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getCustPlatformInjectionFriendshipUserCount() {
		return custPlatformInjectionFriendshipUserCount;
	}
	public void setCustPlatformInjectionFriendshipUserCount(Integer custPlatformInjectionFriendshipUserCount) {
		this.custPlatformInjectionFriendshipUserCount = custPlatformInjectionFriendshipUserCount;
	}
	public String getRetConcernedAndRelationshipId() {
		return retConcernedAndRelationshipId;
	}
	public void setRetConcernedAndRelationshipId(String retConcernedAndRelationshipId) {
		this.retConcernedAndRelationshipId = retConcernedAndRelationshipId;
	}
} 
class RetConcernedAndRelationShip{
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}
// using this friend relationship , generating out some customer friend relathionship user list
// stratage version 1.0 , using balanced count score page rank, get right primary level 1 user list recomandation

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档