每日总结2016.10.20

本文作者反思了在时间管理上的不足之处,包括未能有效区分紧急与重要任务、项目规划不清等问题,并提出了改善措施,如使用土豆番茄工作法、合理安排健身时间等。

先贴上今日任务安排脑图:



总结反省:

1.不能时时刻刻有时间管理的意识,这表现在今天土豆番茄中频繁放弃番茄这一行为里,在软件中番茄列表中也可以看出今天的番茄数只有一个,而且并不是重要任务;

2.对项目第二阶段与第三阶段之间的衔接不够清晰,换句话而言,项目思维不清晰;

3.大部分时间仍然花在了不必要的事情上,这说明对急事与重要事的分界不够清楚。


希望在明天:

1.严格管理个人时间,遵循土豆番茄软件中的时间安排;

2.每天花点闲暇时间去冥想,不仅能静心,也能提高注意力;

3.健身可分为上午时段与下午时段,两个时段分别花费15分钟,如此,一天健身时间会达到30分钟;

4.不要给自己安排太多事情,能确保完成最好,不在多而在完成;

5.根据周计划来安排重要的事情。

<think>好的,我现在需要帮助用户创建一个旅游推荐的数据库,并按要求完成数据表的SQL Server代码。首先,我需要理解用户的需求。用户希望建立一个包含景点信息的数据表,并根据多个条件筛选景点,最后按满足条件的数量排序,显示前10个景点的描述。 首先,确定数据表的结构。用户提到的筛选条件包括年龄区间、同行人员类型、停留天数、季节、景点类型、热闹程度、预算、门票倾向和出行方式。每个条件有不同的选项,比如年龄区间有四个选项,同行人员类型有四个选项等。因此,景点表中需要为每个条件设置对应的段,表示该景点适合哪些选项。 接下来,考虑数据表的设计。每个景点应该有一个唯一的ID作为主键,然后包括景点名称、描述,以及各个条件的适用情况。例如,适合的年龄区间可能有多个,但为了简化,可能每个段存储一个选项,或者使用多对多的关系表。不过用户可能希望每个景点对应多个选项,比如一个景点可能适合1-3天的停留,也适合4-7天。但根据问题描述,用户的选择是单选,比如用户选择1-3天,所以景点表中的段可能只需要存储该景点最适合的一个选项,或者用位掩码表示多个适用选项。但为了简化,可能每个条件段存储一个值,表示该景点在该条件下的适用选项。或者更灵活的话,每个条件可能有多个适用选项,这时候需要关联表。但根据用户的问题,可能每个景点在每个条件中适合多个选项,例如一个景点可能适合独自旅行,也适合朋友结伴。因此,正确的做法是为每个条件创建关联表,比如景点适合的年龄区间表,存储景点ID和年龄区间选项。但这样结构会更复杂,需要多个关联表。 不过用户可能希望简化结构,直接在每个景点表中用多个段表示各个条件的适用情况,比如用逗号分隔的符串存储多个适用选项。例如,age_range段存储'1,2'表示适合25岁以下和25-40岁。但这样在查询时处理会比较麻烦,特别是当需要匹配用户选择的条件时。因此,更规范化的做法是使用关联表。 但考虑到用户要求出SQL Server代码,可能希望尽可能简洁,所以可能需要折中方案。例如,为每个条件创建一个段,存储该景点在该条件下适用的选项,可能以逗号分隔的符串形式存储,或者使用JSON格式。但这样在查询时需要使用LIKE或JSON函数来匹配,可能影响性能,但对于小规模数据来说是可以接受的。 不过,更规范化的方式是为每个条件创建关联表。例如,景点表(spots)有spot_id作为主键,然后有spot_name和description。然后每个条件如年龄区间、同行人员类型等,各自建立关联表,如spot_age_range(spot_id, age_range_id),spot_companion_type(spot_id, companion_type_id)等等。这样,每个条件对应一个关联表,存储景点适用的选项。 不过,这样在查询时需要多个JOIN或子查询,可能会比较复杂。但这样设计更符合数据库范式,避免数据冗余,并且方便扩展。 但根据用户的问题,他们希望将满足条件的景点按照满足条件的个数从大到小排序,输出前10个。因此,需要计算每个景点满足用户选择条件的数量。例如,用户选择了年龄区间1,同行人员类型2,停留天数1,季节3,景点类型1,热闹程度1,预算2,门票倾向1,出行方式1。那么,每个景点需要检查在这些条件中有多少项符合用户的选择,然后按符合的数量降序排列。 如果每个条件使用关联表,那么查询时需要为每个条件LEFT JOIN关联表,并检查用户的选择是否在关联表中,然后统计匹配的数量。例如,使用COUNT(CASE WHEN age_range_id = 用户选择的年龄区间 THEN 1 END) + COUNT(...) 这样的方式来计算总分。 不过,这样的查询可能会比较复杂,尤其是当有多个条件时。因此,可能需要在景点表中添加每个条件的适用选项段,例如,使用逗号分隔的符串存储适用的选项,然后在查询时使用CHARINDEX或LIKE来判断用户的选择是否在该段中。例如,如果age_range段存储'1,2,3',用户选择的是1,则检查'1'是否在age_range的列表中。 但需要注意的是,这种设计在查询时可能存在性能问题,尤其是当数据量较大时,因为符串操作通常较慢。但对于小型数据库来说,这可能是一个可行的解决方案。 现在,根据用户的问题,他们希望建立数据表,并将景点的描述装入,最后输出满足条件的景点按满足条件个数排序,并输出描述。因此,我需要先创建景点表,然后创建各个条件的关联表,或者将条件段直接放在景点表中。 考虑到用户可能希望简化结构,可能将每个条件的适用选项以逗号分隔的符串存储在景点表的各个段中。例如,age_range段存储适用的年龄区间选项,如'1,2',表示该景点适合25岁以下和25-40岁的人群。 然后,当用户提供各个条件的选择时,例如年龄区间选1,同行人员类型选2,停留天数选1,季节选3,景点类型选1,热闹程度选1,预算选2,门票倾向选1,出行方式选1,那么对于每个景点,计算这些条件中有多少项包含用户的选择。例如,如果景点的age_range包含用户选择的年龄区间,则加1分,同行人员类型包含用户的选择,则加1分,依此类推。然后按总分降序排列,取前10名。 基于此,数据表的设计可能如下: 景点表(TouristSpots): - SpotID INT PRIMARY KEY IDENTITY(1,1), - SpotName NVARCHAR(100), - Description NVARCHAR(MAX), - AgeRange NVARCHAR(50), -- 存储适用的年龄区间,如'1,2' - CompanionType NVARCHAR(50), -- 存储适用的同行类型,如'2,3' - StayDays NVARCHAR(50), -- 适用的停留天数,如'1,2' - Season NVARCHAR(50), -- 适用的季节,如'3,4' - SpotType NVARCHAR(50), -- 景点类型,如'1' - CrowdLevel NVARCHAR(50), -- 热闹程度,如'1,3' - Budget NVARCHAR(50), -- 预算,如'2' - TicketPreference NVARCHAR(50), -- 门票倾向,如'1,3' - Transportation NVARCHAR(50) -- 出行方式,如'1,2' 这样设计的话,每个条件段存储该景点适用的选项,用逗号分隔。然后,在查询时,使用CHARINDEX来判断用户的选择是否在该段中。 例如,用户选择的年龄区间是1,那么在查询时,检查AgeRange段是否包含'1',可以用CHARINDEX(',' + @Age + ',', ',' + AgeRange + ',') > 0,或者更简单的方式,但需要注意边界情况,比如选项在开头或结尾的情况。 不过,这种方法可能存在一些问题,例如,如果段存储的是'1,12',而用户选择的是1,那么可能会错误匹配到12中的1。因此,更好的方法是在存储时每个选项用逗号分隔,并在查询时使用分隔符包裹,例如,将AgeRange存储为',1,2,3,',然后查询时使用CHARINDEX(',' + @Age + ',', AgeRange) > 0。但这样需要确保存储时每个值都以逗号开头和结尾。 或者,使用SQL Server的STRING_SPLIT函数将段拆分为多个值,然后检查是否存在匹配项。但STRING_SPLIT在SQL Server 2016及以上版本可用。 综合考虑,可能采用每个条件段存储逗号分隔的符串,并在查询时使用CHARINDEX(',' + @Age + ',', ',' + AgeRange + ',') > 0的方式来判断是否存在匹配。 接下来,创建数据表的SQL代码: CREATE TABLE TouristSpots ( SpotID INT PRIMARY KEY IDENTITY(1,1), SpotName NVARCHAR(100) NOT NULL, Description NVARCHAR(MAX) NOT NULL, AgeRange NVARCHAR(50) NOT NULL, -- 存储如 '1,2,3' CompanionType NVARCHAR(50) NOT NULL, -- 存储如 '2,3' StayDays NVARCHAR(50) NOT NULL, -- 存储如 '1,2' Season NVARCHAR(50) NOT NULL, -- 存储如 '3,4' SpotType NVARCHAR(50) NOT NULL, -- 存储如 '1' CrowdLevel NVARCHAR(50) NOT NULL, -- 存储如 '1,3' Budget NVARCHAR(50) NOT NULL, -- 存储如 '2' TicketPreference NVARCHAR(50) NOT NULL, -- 存储如 '1,3' Transportation NVARCHAR(50) NOT NULL -- 存储如 '1,2' ); 然后,插入示例数据: INSERT INTO TouristSpots (SpotName, Description, AgeRange, CompanionType, StayDays, Season, SpotType, CrowdLevel, Budget, TicketPreference, Transportation) VALUES ('黄鹤楼', '江南三大名楼之一,历史文化底蕴深厚', '2,3,4', '2,3,4', '1,2', '1,3,4', '1', '1', '2', '1', '1,3'), ('东湖风景区', '自然风光优美,适合骑行和散步', '1,2,3,4', '1,2,3,4', '1,2,3', '1,2,3,4', '2', '1,2,3', '1,2', '2,3', '1,3'), ('户部巷', '著名的小吃街,体验武汉地道美食', '1,2,3', '2,3', '1', '1,2,3,4', '3', '1', '1,2', '2', '3'); 接下来,查询部分。用户需要输入各个条件的选择,例如: DECLARE @Age INT = 1; -- 用户选择的年龄区间 DECLARE @Companion INT = 2; -- 同行人员类型 DECLARE @StayDays INT = 1; -- 停留天数 DECLARE @Season INT = 3; -- 季节 DECLARE @SpotType INT = 1; -- 景点类型 DECLARE @CrowdLevel INT = 1; -- 热闹程度 DECLARE @Budget INT = 2; -- 预算 DECLARE @Ticket INT = 1; -- 门票倾向 DECLARE @Transport INT = 1; -- 出行方式 然后,计算每个景点满足这些条件的数量: SELECT SpotName, Description, (CASE WHEN CHARINDEX(',' + CAST(@Age AS VARCHAR) + ',', ',' + AgeRange + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Companion AS VARCHAR) + ',', ',' + CompanionType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@StayDays AS VARCHAR) + ',', ',' + StayDays + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Season AS VARCHAR) + ',', ',' + Season + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@SpotType AS VARCHAR) + ',', ',' + SpotType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@CrowdLevel AS VARCHAR) + ',', ',' + CrowdLevel + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Budget AS VARCHAR) + ',', ',' + Budget + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Ticket AS VARCHAR) + ',', ',' + TicketPreference + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Transport AS VARCHAR) + ',', ',' + Transportation + ',') > 0 THEN 1 ELSE 0 END) AS MatchScore FROM TouristSpots ORDER BY MatchScore DESC, SpotName OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; 这里使用CHARINDEX来检查用户选择的选项是否存在于景点的对应段中。通过在选项前后添加逗号,并搜索',x,'的形式,可以避免部分匹配的问题,例如,避免将'1'匹配到'11'的情况。 需要注意的是,如果某个条件用户没有特定倾向,例如热闹程度选3(没有特定倾向),那么在计算时应不计入该条件,或者视为任何情况都匹配。因此,可能需要调整查询逻辑,根据用户是否选择特定倾向来决定是否计入该条件。但根据用户的问题,可能每个条件都必须选择一个选项,因此上述查询假设所有条件都有选择。 如果需要处理用户没有特定倾向的情况,例如热闹程度选3,则在该条件的判断中,无论景点的CrowdLevel是什么,都视为匹配,因此加1分。此时,需要在查询中增加条件判断。例如: 对于热闹程度条件: CASE WHEN @CrowdLevel = 3 THEN 1 -- 用户没有特定倾向,所有景点都得分 WHEN CHARINDEX(...) > 0 THEN 1 ELSE 0 END 这需要在每个条件判断中加入对用户选择的处理。例如,如果用户选择的是3(没有特定倾向),则该条件自动得分。 因此,修改后的查询可能如下: SELECT SpotName, Description, (CASE WHEN @Age = 0 OR CHARINDEX(',' + CAST(@Age AS VARCHAR) + ',', ',' + AgeRange + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @Companion = 0 OR CHARINDEX(',' + CAST(@Companion AS VARCHAR) + ',', ',' + CompanionType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @StayDays = 0 OR CHARINDEX(',' + CAST(@StayDays AS VARCHAR) + ',', ',' + StayDays + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @Season = 0 OR CHARINDEX(',' + CAST(@Season AS VARCHAR) + ',', ',' + Season + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @SpotType = 0 OR CHARINDEX(',' + CAST(@SpotType AS VARCHAR) + ',', ',' + SpotType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @CrowdLevel = 3 THEN 1 ELSE CASE WHEN CHARINDEX(',' + CAST(@CrowdLevel AS VARCHAR) + ',', ',' + CrowdLevel + ',') > 0 THEN 1 ELSE 0 END END + CASE WHEN @Budget = 0 OR CHARINDEX(',' + CAST(@Budget AS VARCHAR) + ',', ',' + Budget + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @Ticket = 3 THEN 1 ELSE CASE WHEN CHARINDEX(',' + CAST(@Ticket AS VARCHAR) + ',', ',' + TicketPreference + ',') > 0 THEN 1 ELSE 0 END END + CASE WHEN @Transport = 0 OR CHARINDEX(',' + CAST(@Transport AS VARCHAR) + ',', ',' + Transportation + ',') > 0 THEN 1 ELSE 0 END) AS MatchScore FROM TouristSpots ORDER BY MatchScore DESC, SpotName OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; 但根据用户的问题描述,每个条件都是必选的,例如热闹程度的选项3是“没有特定倾向”,这时候应该认为无论景点在该条件如何设置,用户都接受,因此该条件始终得分。因此,在计算时,如果用户选择的是3,则该条件自动加1分,否则检查景点是否符合用户的选择。 因此,在热闹程度的条件处理中,当用户选择3时,该条件得1分,否则检查是否匹配。 同样的,门票倾向的选项3是“没有特定倾向”,处理方式相同。 因此,修改后的查询需要针对每个条件进行判断: 例如,对于热闹程度: CASE WHEN @CrowdLevel = 3 THEN 1 -- 用户没有特定倾向,得1分 WHEN CHARINDEX(',' + CAST(@CrowdLevel AS VARCHAR) + ',', ',' + CrowdLevel + ',') > 0 THEN 1 ELSE 0 END 同样的,门票倾向: CASE WHEN @Ticket = 3 THEN 1 -- 用户没有特定倾向,得1分 WHEN CHARINDEX(',' + CAST(@Ticket AS VARCHAR) + ',', ',' + TicketPreference + ',') > 0 THEN 1 ELSE 0 END 其他条件如年龄区间等,用户必须选择一个选项,因此不需要处理“没有特定倾向”的情况,除了热闹程度和门票倾向这两个条件。 因此,最终的查询需要根据每个条件是否有“没有特定倾向”的选项来处理。 综上所述,完整的SQL代码包括创建表、插入示例数据,以及查询语句。 现在,编具体的SQL代码: 1. 创建数据表: CREATE TABLE TouristSpots ( SpotID INT PRIMARY KEY IDENTITY(1,1), SpotName NVARCHAR(100) NOT NULL, Description NVARCHAR(MAX) NOT NULL, AgeRange NVARCHAR(50) NOT NULL, CompanionType NVARCHAR(50) NOT NULL, StayDays NVARCHAR(50) NOT NULL, Season NVARCHAR(50) NOT NULL, SpotType NVARCHAR(50) NOT NULL, CrowdLevel NVARCHAR(50) NOT NULL, Budget NVARCHAR(50) NOT NULL, TicketPreference NVARCHAR(50) NOT NULL, Transportation NVARCHAR(50) NOT NULL ); 2. 插入示例数据: INSERT INTO TouristSpots (SpotName, Description, AgeRange, CompanionType, StayDays, Season, SpotType, CrowdLevel, Budget, TicketPreference, Transportation) VALUES ('黄鹤楼', '江南三大名楼之一,历史文化底蕴深厚', '2,3,4', '2,3,4', '1,2', '1,3,4', '1', '1', '2', '1', '1,3'), ('东湖风景区', '自然风光优美,适合骑行和散步', '1,2,3,4', '1,2,3,4', '1,2,3', '1,2,3,4', '2', '1,2,3', '1,2', '2,3', '1,3'), ('户部巷', '著名的小吃街,体验武汉地道美食', '1,2,3', '2,3', '1', '1,2,3,4', '3', '1', '1,2', '2', '3'); 3. 查询满足条件的景点: DECLARE @Age INT = 1; -- 用户选择的年龄区间 DECLARE @Companion INT = 2; -- 同行人员类型 DECLARE @StayDays INT = 1; -- 停留天数 DECLARE @Season INT = 3; -- 季节 DECLARE @SpotType INT = 1; -- 景点类型 DECLARE @CrowdLevel INT = 1; -- 热闹程度 DECLARE @Budget INT = 2; -- 预算 DECLARE @Ticket INT = 1; -- 门票倾向 DECLARE @Transport INT = 1; -- 出行方式 SELECT SpotName, Description, ( CASE WHEN CHARINDEX(',' + CAST(@Age AS VARCHAR) + ',', ',' + AgeRange + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Companion AS VARCHAR) + ',', ',' + CompanionType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@StayDays AS VARCHAR) + ',', ',' + StayDays + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@Season AS VARCHAR) + ',', ',' + Season + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN CHARINDEX(',' + CAST(@SpotType AS VARCHAR) + ',', ',' + SpotType + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @CrowdLevel = 3 THEN 1 ELSE CASE WHEN CHARINDEX(',' + CAST(@CrowdLevel AS VARCHAR) + ',', ',' + CrowdLevel + ',') > 0 THEN 1 ELSE 0 END END + CASE WHEN CHARINDEX(',' + CAST(@Budget AS VARCHAR) + ',', ',' + Budget + ',') > 0 THEN 1 ELSE 0 END + CASE WHEN @Ticket = 3 THEN 1 ELSE CASE WHEN CHARINDEX(',' + CAST(@Ticket AS VARCHAR) + ',', ',' + TicketPreference + ',') > 0 THEN 1 ELSE 0 END END + CASE WHEN CHARINDEX(',' + CAST(@Transport AS VARCHAR) + ',', ',' + Transportation + ',') > 0 THEN 1 ELSE 0 END ) AS MatchScore FROM TouristSpots ORDER BY MatchScore DESC, SpotName OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY; 这样,查询结果会按匹配的条件数量从高到低排序,取前10个,并显示景点名称和描述。 需要注意的是,CHARINDEX函数在SQL Server中不区分大小,且如果找不到子符串会返回0。因此,使用这种方法可以正确判断用户的选择是否在景点的适用选项中。 此外,插入示例数据时,需要确保每个段的值格式正确,例如使用逗号分隔的符串,且不包含空格。 最后,用户可能希望将结果中的MatchScore也显示出来,但根据问题描述,只需要输出景点的描述,因此可以调整SELECT语句,只选择SpotName和Description,但为了排序需要计算MatchScore,可以在ORDER BY中使用计算段,或者在SELECT中包括它但不显示。 不过,根据问题描述,最终需要输出景点的描述,并按满足条件的个数排序,因此上述查询是正确的。 总结,整个解决方案包括创建数据表、插入数据,以及根据用户输入的条件计算匹配度并排序输出。</think><< 以下是旅游推荐系统的数据库实现方案: 1. 创建景点信息表: ```sql CREATE TABLE TouristSpots ( SpotID INT PRIMARY KEY IDENTITY(1,1), SpotName NVARCHAR(100) NOT NULL, Description NVARCHAR(MAX) NOT NULL, AgeRange NVARCHAR(50) NOT NULL, CompanionType NVARCHAR(50) NOT NULL, StayDays NVARCHAR(50) NOT NULL, Season NVARCHAR(50) NOT NULL, SpotType NVARCHAR(50) NOT NULL, CrowdLevel NVARCHAR(50) NOT NULL, Budget NVARCHAR(50) NOT NULL, TicketPreference NVARCHAR(50) NOT NULL, Transportation NVARCHAR(50) NOT NULL ); ``` 2. 插入示例数据: ```sql INSERT INTO TouristSpots VALUES ('黄鹤楼', '江南三大名楼之一,历史文化底蕴深厚', '2,3,4', '2,3,4', '1,2', '1,3,4', '1', '1', '2', '1', '1,3'), ('东湖', '中国最大城中湖,自然风光优美', '1,2,3,4', '1,2,3,4', '1,2,3', '1,2,3,4', '2', '1,3', '1,2', '2,3', '1,3'), ('户部巷', '百年老巷武汉小吃第一街', '1,2,3', '2,3', '1', '1,2,3,4', '3', '1', '1', '2', '3'); ``` 3. 查询推荐逻辑: ```sql DECLARE @Age INT = 1, @Companion INT = 2, @StayDays INT = 1, @Season INT = 3, @SpotType INT = 1, @CrowdLevel INT = 1, @Budget INT = 2, @Ticket INT = 1, @Transport INT = 1; SELECT TOP 10 SpotName, Description, (SIGN(CHARINDEX(@Age,AgeRange)) + SIGN(CHARINDEX(@Companion,CompanionType)) + SIGN(CHARINDEX(@StayDays,StayDays)) + SIGN(CHARINDEX(@Season,Season)) + SIGN(CHARINDEX(@SpotType,SpotType)) + CASE WHEN @CrowdLevel=3 THEN 1 ELSE SIGN(CHARINDEX(@CrowdLevel,CrowdLevel)) END + SIGN(CHARINDEX(@Budget,Budget)) + CASE WHEN @Ticket=3 THEN 1 ELSE SIGN(CHARINDEX(@Ticket,TicketPreference)) END + SIGN(CHARINDEX(@Transport,Transportation))) AS MatchScore FROM TouristSpots ORDER BY MatchScore DESC; ``` 实现原理: 1. 段设计采用逗号分隔的符串存储多个适用条件 2. 使用CHARINDEX函数进行模式匹配 3. 特殊处理"没有特定倾向"的条件(如热闹程度3、门票倾向3) 4. 通过计算匹配条件数量实现智能排序 5. 结果按匹配度降序排列取前10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值