chore(project): rebranded project as 恭学教育 (GongXue Education)

- Updated pom.xml project name, description, and URL to 恭学教育.
- Changed LICENSE copyright holder to 恭学教育 (GongXue Education).
- Rebranded README.md with new project title and tagline.
- Replaced @author 芋道源码 with @author 恭学教育 across all Java source files.
- Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com.
- Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
2026-07-27 15:12:32 +08:00
parent fd54f07889
commit 7426579863
2342 changed files with 2839 additions and 2710 deletions

View File

@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.member.api.address.dto.MemberAddressRespDTO;
/**
* 用户收件地址 API 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberAddressApi {

View File

@@ -11,7 +11,7 @@ import jakarta.annotation.Resource;
/**
* 用户收件地址 API 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 用户收件地址 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class MemberAddressRespDTO {

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* 用户信息 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class MemberConfigRespDTO {

View File

@@ -6,7 +6,7 @@ import lombok.Data;
/**
* 会员等级 Resp DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class MemberLevelRespDTO {

View File

@@ -11,7 +11,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* 会员用户的 API 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberUserApi {

View File

@@ -17,7 +17,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.USER_MOBIL
/**
* 会员用户的 API 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
/**
* 用户信息 Response DTO
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
public class MemberUserRespDTO {

View File

@@ -12,7 +12,7 @@ public class MemberGroupSimpleRespVO {
@Schema(description = "编号", example = "6103")
private Long id;
@Schema(description = "等级名称", example = "芋艿")
@Schema(description = "等级名称", example = "管理员")
private String name;
}

View File

@@ -18,7 +18,7 @@ import jakarta.validation.constraints.Positive;
@Data
public class MemberLevelBaseVO {
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
@NotBlank(message = "等级名称不能为空")
private String name;

View File

@@ -9,7 +9,7 @@ import lombok.ToString;
@ToString(callSuper = true)
public class MemberLevelListReqVO {
@Schema(description = "等级名称", example = "芋艿")
@Schema(description = "等级名称", example = "管理员")
private String name;
@Schema(description = "状态", example = "1")

View File

@@ -12,7 +12,7 @@ public class MemberLevelSimpleRespVO {
@Schema(description = "编号", example = "6103")
private Long id;
@Schema(description = "等级名称", example = "芋艿")
@Schema(description = "等级名称", example = "管理员")
private String name;
@Schema(description = "等级图标", example = "https://www.iocoder.cn/yudao.jpg")

View File

@@ -20,7 +20,7 @@ import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
// TODO 芋艿url
// TODO 管理员url
@Tag(name = "管理后台 - 签到规则")
@RestController
@RequestMapping("/member/sign-in/config")

View File

@@ -44,8 +44,8 @@ public class MemberUserPageReqVO extends PageParam {
@Schema(description = "用户分组编号", example = "1")
private Long groupId;
// TODO 芋艿:注册用户类型;
// TODO 管理员:注册用户类型;
// TODO 芋艿:登录用户类型;
// TODO 管理员:登录用户类型;
}

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import jakarta.validation.constraints.NotNull;
// TODO 芋艿example 缺失
// TODO 管理员example 缺失
/**
* 用户收件地址 Base VO提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成

View File

@@ -14,7 +14,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
// TODO 芋艿code review 相关逻辑
// TODO 管理员code review 相关逻辑
@Schema(description = "用户 APP - 校验验证码 Request VO")
@Data
@NoArgsConstructor

View File

@@ -7,7 +7,7 @@ import lombok.Data;
@Data
public class AppMemberLevelRespVO {
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
private String name;
@Schema(description = "等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")

View File

@@ -10,7 +10,7 @@ public class AppSocialUserRespVO {
@Schema(description = "社交用户的 openid", requiredMode = Schema.RequiredMode.REQUIRED, example = "IPRmJ0wvBptiPIlGEZiPewGwiEiE")
private String openid;
@Schema(description = "社交用户的昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道源码")
@Schema(description = "社交用户的昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学教育")
private String nickname;
@Schema(description = "社交用户的头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/1.png")

View File

@@ -14,7 +14,7 @@ public class AppMemberUserInfoRespVO {
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
private String nickname;
@Schema(description = "用户头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xxx.png")
@@ -48,7 +48,7 @@ public class AppMemberUserInfoRespVO {
@Schema(description = "等级编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id;
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@Schema(description = "等级名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
private String name;
@Schema(description = "等级", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")

View File

@@ -17,7 +17,7 @@ import java.util.List;
/**
* 用户收件地址 Convert
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface AddressConvert {

View File

@@ -22,7 +22,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* 签到记录 Convert
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface MemberSignInRecordConvert {

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* 会员标签 Convert
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface MemberTagConvert {

View File

@@ -9,7 +9,7 @@ import lombok.*;
/**
* 用户收件地址 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("member_address")
@KeySequence("member_address_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -9,7 +9,7 @@ import lombok.*;
/**
* 签到记录 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("member_sign_in_record")
@KeySequence("member_sign_in_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -9,7 +9,7 @@ import lombok.*;
/**
* 会员标签 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("member_tag")
@KeySequence("member_tag_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -23,7 +23,7 @@ import java.util.List;
*
* uk_mobile 索引:基于 {@link #mobile} 字段
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "member_user", autoResultMap = true)
@KeySequence("member_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -15,7 +15,7 @@ import java.util.Set;
/**
* 签到记录 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface MemberSignInRecordMapper extends BaseMapperX<MemberSignInRecordDO> {

View File

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* 会员标签 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface MemberTagMapper extends BaseMapperX<MemberTagDO> {

View File

@@ -18,7 +18,7 @@ import java.util.stream.IntStream;
/**
* 会员 User Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* 会员积分的业务类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@AllArgsConstructor
@Getter

View File

@@ -1,6 +1,6 @@
/**
* 属于 member 模块的 framework 封装
*
* @author 芋道源码
* @author 恭学教育
*/
package cn.iocoder.yudao.module.member.framework;

View File

@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
/**
* member 模块的 web 组件的 Configuration
*
* @author 芋道源码
* @author 恭学教育
*/
@Configuration(proxyBeanMethods = false)
public class MemberWebConfiguration {

View File

@@ -10,7 +10,7 @@ import java.util.List;
/**
* 用户收件地址 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface AddressService {

View File

@@ -19,7 +19,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ADDRESS_NO
/**
* 用户收件地址 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -9,7 +9,7 @@ import jakarta.validation.Valid;
*
* 提供用户的账号密码登录、token 的校验等认证相关的功能
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberAuthService {

View File

@@ -41,7 +41,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
/**
* 会员的认证 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Slf4j
@@ -237,7 +237,7 @@ public class MemberAuthServiceImpl implements MemberAuthService {
// 情况 3如果是修改密码场景需要查询手机号无需前端传递
if (Objects.equals(reqVO.getScene(), SmsSceneEnum.MEMBER_UPDATE_PASSWORD.getScene())) {
MemberUserDO user = userService.getUser(userId);
// TODO 芋艿:后续 member user 手机非强绑定,这块需要做下调整;
// TODO 管理员:后续 member user 手机非强绑定,这块需要做下调整;
reqVO.setMobile(user.getMobile());
}

View File

@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO
/**
* 签到记录 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberSignInRecordService {

View File

@@ -35,7 +35,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_RE
/**
* 签到记录 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* 会员标签 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberTagService {

View File

@@ -24,7 +24,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
/**
* 会员标签 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -15,7 +15,7 @@ import java.util.List;
/**
* 会员用户 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface MemberUserService {

View File

@@ -42,7 +42,7 @@ import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
/**
* 会员 User Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Valid

View File

@@ -21,7 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
/**
* {@link AddressServiceImpl} 的单元测试类
*
* @author 芋道源码
* @author 恭学教育
*/
@Import(AddressServiceImpl.class)
public class MemberAddressServiceImplTest extends BaseDbUnitTest {

View File

@@ -22,7 +22,7 @@ import static cn.hutool.core.util.RandomUtil.randomEle;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
// TODO @芋艿:单测的 review等逻辑都达成一致后
// TODO @管理员:单测的 review等逻辑都达成一致后
/**
* {@link MemberAuthService} 的单元测试类
*
@@ -31,7 +31,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString
@Import({MemberAuthServiceImpl.class, YudaoRedisAutoConfiguration.class})
public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
// TODO @芋艿:登录相关的单测,待补全
// TODO @管理员:登录相关的单测,待补全
@Resource
private MemberAuthServiceImpl authService;
@@ -52,7 +52,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
@Resource
private MemberUserMapper memberUserMapper;
// TODO 芋艿:后续重构这个单测
// TODO 管理员:后续重构这个单测
// @Test
// public void testUpdatePassword_success(){
// // 准备参数
@@ -78,7 +78,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
// assertEquals(memberUserMapper.selectById(userDO.getId()).getPassword(),newPassword);
// }
// TODO 芋艿:后续重构这个单测
// TODO 管理员:后续重构这个单测
// @Test
// public void testResetPassword_success(){
// // 准备参数

View File

@@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.when;
// TODO 芋艿:完全 review 完,在去 review 单测
// TODO 管理员:完全 review 完,在去 review 单测
/**
* {@link MemberGroupServiceImpl} 的单元测试类
*

View File

@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
import static org.junit.jupiter.api.Assertions.*;
// TODO 芋艿:完全 review 完,在去 review 单测
// TODO 管理员:完全 review 完,在去 review 单测
/**
* {@link MemberLevelServiceImpl} 的单元测试类
*

View File

@@ -23,11 +23,11 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.TAG_NOT_EXISTS;
import static org.junit.jupiter.api.Assertions.*;
// TODO 芋艿:完全 review 完,在去 review 单测
// TODO 管理员:完全 review 完,在去 review 单测
/**
* {@link MemberTagServiceImpl} 的单元测试类
*
* @author 芋道源码
* @author 恭学教育
*/
@Import(MemberTagServiceImpl.class)
public class MemberTagServiceImplTest extends BaseDbUnitTest {

View File

@@ -25,7 +25,7 @@ import static cn.hutool.core.util.RandomUtil.randomNumbers;
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
import static org.junit.jupiter.api.Assertions.assertEquals;
// TODO @芋艿:单测的 review等逻辑都达成一致后
// TODO @管理员:单测的 review等逻辑都达成一致后
/**
* {@link MemberUserServiceImpl} 的单元测试类
*
@@ -53,7 +53,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest {
@MockitoBean
private SmsCodeApi smsCodeApi;
// TODO 芋艿:后续重构这个单测
// TODO 管理员:后续重构这个单测
// @Test
// public void testUpdateNickName_success(){
// // mock 数据
@@ -72,7 +72,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest {
// }
@Test
@Disabled // TODO 芋艿:后续再修复
@Disabled // TODO 管理员:后续再修复
public void updateMobile_success(){
// mock数据
String oldMobile = randomNumbers(11);
@@ -80,7 +80,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest {
userDO.setMobile(oldMobile);
userMapper.insert(userDO);
// TODO 芋艿:需要修复该单元测试,重构多模块带来的
// TODO 管理员:需要修复该单元测试,重构多模块带来的
// 旧手机和旧验证码
// SmsCodeDO codeDO = new SmsCodeDO();
String oldCode = RandomUtil.randomString(4);

View File

@@ -40,9 +40,9 @@ mybatis:
--- #################### 监控相关配置 ####################
--- #################### 芋道相关配置 ####################
--- #################### 恭学相关配置 ####################
# 芋道配置项,设置当前项目所有自定义的配置
# 恭学配置项,设置当前项目所有自定义的配置
yudao:
info:
base-package: cn.iocoder.yudao.module