办学质量监测教学评价系统
ageer
2025-04-10 2b8a92c7d69aa144ab7effda5a77b341464682a5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package org.ruoyi.chat.service.chat;
 
import cn.dev33.satoken.stp.StpUtil;
import lombok.RequiredArgsConstructor;
import org.ruoyi.chat.enums.DisplayType;
import org.ruoyi.chat.enums.UserGradeType;
import org.ruoyi.common.satoken.utils.LoginHelper;
import org.ruoyi.domain.bo.ChatModelBo;
import org.ruoyi.domain.bo.ChatPackagePlanBo;
import org.ruoyi.domain.vo.ChatModelVo;
import org.ruoyi.domain.vo.ChatPackagePlanVo;
import org.ruoyi.service.IChatModelService;
import org.ruoyi.service.IChatPackagePlanService;
import org.ruoyi.system.domain.vo.SysUserVo;
import org.ruoyi.system.service.ISysUserService;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
/**
 * 描述:用户模型信息
 *
 * @author ageerle@163.com
 * date 2025/4/10
 */
 
@Service
@RequiredArgsConstructor
public class UserModelService {
 
    private final IChatModelService chatModelService;
 
    private final ISysUserService userService;
 
    private final IChatPackagePlanService packagePlanService;
 
    public List<ChatModelVo> modelList(ChatModelBo bo) {
        bo.setModelShow(DisplayType.VISIBLE.getCode());
        List<ChatModelVo> chatModelList = chatModelService.queryList(bo);
        ChatPackagePlanBo sysPackagePlanBo = new ChatPackagePlanBo();
        if (StpUtil.isLogin()) {
            Long userId = LoginHelper.getLoginUser().getUserId();
            SysUserVo sysUserVo = userService.selectUserById(userId);
            if (UserGradeType.UNPAID.getCode().equals(sysUserVo.getUserGrade())){
                sysPackagePlanBo.setName("Free");
                ChatPackagePlanVo chatPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0);
                List<String> array = new ArrayList<>(Arrays.asList(chatPackagePlanVo.getPlanDetail().split(",")));
                chatModelList.removeIf(model -> !array.contains(model.getModelName()));
            }
        }else {
            sysPackagePlanBo.setName("Visitor");
            ChatPackagePlanVo sysPackagePlanVo = packagePlanService.queryList(sysPackagePlanBo).get(0);
            List<String> array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(",")));
            chatModelList.removeIf(model -> !array.contains(model.getModelName()));
        }
        return new ArrayList<>(chatModelList);
    }
 
}