From 4e2938eee3173a05c529e71f8d1a5884c3c7e7fc Mon Sep 17 00:00:00 2001 From: wangxulei <727869402@qq.com> Date: Thu, 12 Dec 2024 17:38:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BD=9C=E8=80=85=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../author/controller/AuthorController.java | 88 ++++ .../business/author/domain/AuthorDto.java | 116 +++++ .../business/author/domain/AuthorVo.java | 112 +++++ .../admin/business/author/entity/Author.java | 144 ++++++ .../business/author/mapper/AuthorMapper.java | 28 ++ .../author/mapper/xml/AuthorMapper.xml | 52 ++ .../author/service/AuthorService.java | 26 + .../service/impl/AuthorServiceImpl.java | 36 ++ .../java/com/dd/admin/BusinessGenerator.java | 4 +- web/src/api/business/author/author.js | 41 ++ web/src/views/business/author/addAuthor.vue | 211 ++++++++ web/src/views/business/author/authorList.vue | 453 ++++++++++++++++++ web/src/views/business/author/editAuthor.vue | 212 ++++++++ 13 files changed, 1521 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/dd/admin/business/author/controller/AuthorController.java create mode 100644 src/main/java/com/dd/admin/business/author/domain/AuthorDto.java create mode 100644 src/main/java/com/dd/admin/business/author/domain/AuthorVo.java create mode 100644 src/main/java/com/dd/admin/business/author/entity/Author.java create mode 100644 src/main/java/com/dd/admin/business/author/mapper/AuthorMapper.java create mode 100644 src/main/java/com/dd/admin/business/author/mapper/xml/AuthorMapper.xml create mode 100644 src/main/java/com/dd/admin/business/author/service/AuthorService.java create mode 100644 src/main/java/com/dd/admin/business/author/service/impl/AuthorServiceImpl.java create mode 100644 web/src/api/business/author/author.js create mode 100644 web/src/views/business/author/addAuthor.vue create mode 100644 web/src/views/business/author/authorList.vue create mode 100644 web/src/views/business/author/editAuthor.vue diff --git a/src/main/java/com/dd/admin/business/author/controller/AuthorController.java b/src/main/java/com/dd/admin/business/author/controller/AuthorController.java new file mode 100644 index 0000000..d5d1af2 --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/controller/AuthorController.java @@ -0,0 +1,88 @@ +package com.dd.admin.business.author.controller; + +import cn.hutool.core.bean.BeanUtil; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.dd.admin.common.model.UpdateGroup; +import com.dd.admin.common.model.result.ResultBean; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import javax.validation.constraints.NotBlank; +import com.dd.admin.business.author.entity.Author; +import com.dd.admin.business.author.domain.AuthorVo; +import com.dd.admin.business.author.domain.AuthorDto; +import com.dd.admin.business.author.service.AuthorService; + +import java.util.List; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 作者(博主) 前端控制器 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Api(tags = "作者(博主)") +@RestController +public class AuthorController { + + @Autowired + AuthorService authorService; + + @ApiOperation(value = "作者(博主)-分页列表") + @ApiOperationSupport(order = 1) + @GetMapping("/admin/author/page") + public ResultBean> page(AuthorDto authorDto) { + IPage pageInfo = authorService.selectAuthorPage(authorDto); + return ResultBean.success(pageInfo); + } + + @ApiOperation(value = "作者(博主)-列表") + @ApiOperationSupport(order = 2) + @GetMapping("/admin/author/list") + public ResultBean> list(AuthorDto authorDto) { + List list = authorService.selectAuthorList(authorDto); + return ResultBean.success(list); + } + + @ApiOperation(value = "作者(博主)-添加") + @ApiOperationSupport(order = 3) + @PostMapping("/admin/author/add") + public ResultBean add(@RequestBody @Validated AuthorDto authorDto) { + Author author = BeanUtil.copyProperties(authorDto, Author.class); + authorService.save(author); + return ResultBean.success(author); + } + + @ApiOperation(value = "作者(博主)-查询") + @ApiOperationSupport(order = 4) + @GetMapping("/admin/author/{authorId}") + public ResultBean get(@PathVariable @NotBlank String authorId) { + Author author = authorService.getById(authorId); + AuthorVo authorVo = BeanUtil.copyProperties(author,AuthorVo.class); + return ResultBean.success(authorVo); + } + + @ApiOperation(value = "作者(博主)-修改") + @ApiOperationSupport(order = 5) + @PostMapping("/admin/author/update") + public ResultBean update(@RequestBody @Validated(UpdateGroup.class) AuthorDto authorDto) { + Author author = BeanUtil.copyProperties(authorDto, Author.class); + authorService.updateById(author); + return ResultBean.success(author); + } + + @ApiOperation(value = "作者(博主)-删除") + @ApiOperationSupport(order = 6) + @GetMapping("/admin/author/delete/{authorId}") + public ResultBean delete(@PathVariable @NotBlank String authorId) { + Boolean b = authorService.removeById(authorId); + return ResultBean.success(b); + } +} diff --git a/src/main/java/com/dd/admin/business/author/domain/AuthorDto.java b/src/main/java/com/dd/admin/business/author/domain/AuthorDto.java new file mode 100644 index 0000000..67b262b --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/domain/AuthorDto.java @@ -0,0 +1,116 @@ +package com.dd.admin.business.author.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.NotBlank; +import com.dd.admin.common.model.UpdateGroup; + + +/** + *

+ * 作者(博主)返回对象 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Data +@ApiModel(value="作者(博主)接收对象") +public class AuthorDto { + + + @ApiModelProperty(value = "作者id") + @NotBlank(message = "作者(博主)id不能为空",groups = UpdateGroup.class) + private String authorId; + + @ApiModelProperty(value = "作者号") + private String authorNo; + + @ApiModelProperty(value = "作者姓名") + private String authorName; + + @ApiModelProperty(value = "头像id") + private String avatarId; + + @ApiModelProperty(value = "头像地址") + private String avatarUrl; + + @ApiModelProperty(value = "简介") + private String description; + + @ApiModelProperty(value = "性别") + private String sex; + + @ApiModelProperty(value = "生日") + private Date birth; + + @ApiModelProperty(value = "职业") + private String job; + + @ApiModelProperty(value = "地区") + private String area; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "背景图") + private String backGroundId; + + @ApiModelProperty(value = "背景图地址") + private String backGroundUrl; + + @ApiModelProperty(value = "关注数") + private Long follow; + + @ApiModelProperty(value = "粉丝数") + private Long fans; + + @ApiModelProperty(value = "点赞数") + private Long upCount; + + @ApiModelProperty(value = "收藏数") + private Long starCount; + + @ApiModelProperty(value = "0正常") + private Integer authorStatus; + + @ApiModelProperty(value = "乐观锁字段") + private Long version; + + @ApiModelProperty(value = "0正常 1删除") + private Integer deleted; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "ip地址") + private String ipAddress; + + @ApiModelProperty(value = "真实ip地址") + private String ipRealAddress; + + @ApiModelProperty(value = "真实姓名") + private String realName; + + @ApiModelProperty(value = "身份证号") + private String idCard; + + @ApiModelProperty(value = "手机号") + private String phoneNumber; + + +} diff --git a/src/main/java/com/dd/admin/business/author/domain/AuthorVo.java b/src/main/java/com/dd/admin/business/author/domain/AuthorVo.java new file mode 100644 index 0000000..a204663 --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/domain/AuthorVo.java @@ -0,0 +1,112 @@ +package com.dd.admin.business.author.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 作者(博主)返回对象 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Data +@ApiModel(value="作者(博主)返回对象") +public class AuthorVo { + + + @ApiModelProperty(value = "作者id") + private String authorId; + + @ApiModelProperty(value = "作者号") + private String authorNo; + + @ApiModelProperty(value = "作者姓名") + private String authorName; + + @ApiModelProperty(value = "头像id") + private String avatarId; + + @ApiModelProperty(value = "头像地址") + private String avatarUrl; + + @ApiModelProperty(value = "简介") + private String description; + + @ApiModelProperty(value = "性别") + private String sex; + + @ApiModelProperty(value = "生日") + private Date birth; + + @ApiModelProperty(value = "职业") + private String job; + + @ApiModelProperty(value = "地区") + private String area; + + @ApiModelProperty(value = "学校") + private String school; + + @ApiModelProperty(value = "背景图") + private String backGroundId; + + @ApiModelProperty(value = "背景图地址") + private String backGroundUrl; + + @ApiModelProperty(value = "关注数") + private Long follow; + + @ApiModelProperty(value = "粉丝数") + private Long fans; + + @ApiModelProperty(value = "点赞数") + private Long upCount; + + @ApiModelProperty(value = "收藏数") + private Long starCount; + + @ApiModelProperty(value = "0正常") + private Integer authorStatus; + + @ApiModelProperty(value = "乐观锁字段") + private Long version; + + @ApiModelProperty(value = "0正常 1删除") + private Integer deleted; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "ip地址") + private String ipAddress; + + @ApiModelProperty(value = "真实ip地址") + private String ipRealAddress; + + @ApiModelProperty(value = "真实姓名") + private String realName; + + @ApiModelProperty(value = "身份证号") + private String idCard; + + @ApiModelProperty(value = "手机号") + private String phoneNumber; + + +} diff --git a/src/main/java/com/dd/admin/business/author/entity/Author.java b/src/main/java/com/dd/admin/business/author/entity/Author.java new file mode 100644 index 0000000..7b2bfe9 --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/entity/Author.java @@ -0,0 +1,144 @@ +package com.dd.admin.business.author.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.Version; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 作者(博主) + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("business_author") +@ApiModel(value="Author对象", description="作者(博主)") +public class Author implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "作者id") + @TableId(value = "AUTHOR_ID", type = IdType.ASSIGN_UUID) + private String authorId; + + @ApiModelProperty(value = "作者号") + @TableField("AUTHOR_NO") + private String authorNo; + + @ApiModelProperty(value = "作者姓名") + @TableField("AUTHOR_NAME") + private String authorName; + + @ApiModelProperty(value = "头像id") + @TableField("AVATAR_ID") + private String avatarId; + + @ApiModelProperty(value = "头像地址") + @TableField("AVATAR_URL") + private String avatarUrl; + + @ApiModelProperty(value = "简介") + @TableField("DESCRIPTION") + private String description; + + @ApiModelProperty(value = "性别") + @TableField("SEX") + private String sex; + + @ApiModelProperty(value = "生日") + @TableField("BIRTH") + private Date birth; + + @ApiModelProperty(value = "职业") + @TableField("JOB") + private String job; + + @ApiModelProperty(value = "地区") + @TableField("AREA") + private String area; + + @ApiModelProperty(value = "学校") + @TableField("SCHOOL") + private String school; + + @ApiModelProperty(value = "背景图") + @TableField("BACK_GROUND_ID") + private String backGroundId; + + @ApiModelProperty(value = "背景图地址") + @TableField("BACK_GROUND_URL") + private String backGroundUrl; + + @ApiModelProperty(value = "关注数") + @TableField("FOLLOW") + private Long follow; + + @ApiModelProperty(value = "粉丝数") + @TableField("FANS") + private Long fans; + + @ApiModelProperty(value = "点赞数") + @TableField("UP_COUNT") + private Long upCount; + + @ApiModelProperty(value = "收藏数") + @TableField("STAR_COUNT") + private Long starCount; + + @ApiModelProperty(value = "0正常") + @TableField("AUTHOR_STATUS") + private Integer authorStatus; + + @ApiModelProperty(value = "乐观锁字段") + @TableField("VERSION") + @Version + private Long version; + + @ApiModelProperty(value = "0正常 1删除") + @TableField("DELETED") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "创建时间") + @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT) + private Date createTime; + + @ApiModelProperty(value = "修改时间") + @TableField(value = "UPDATE_TIME", fill = FieldFill.UPDATE) + private Date updateTime; + + @ApiModelProperty(value = "ip地址") + @TableField("IP_ADDRESS") + private String ipAddress; + + @ApiModelProperty(value = "真实ip地址") + @TableField("IP_REAL_ADDRESS") + private String ipRealAddress; + + @ApiModelProperty(value = "真实姓名") + @TableField("REAL_NAME") + private String realName; + + @ApiModelProperty(value = "身份证号") + @TableField("ID_CARD") + private String idCard; + + @ApiModelProperty(value = "手机号") + @TableField("PHONE_NUMBER") + private String phoneNumber; + + +} diff --git a/src/main/java/com/dd/admin/business/author/mapper/AuthorMapper.java b/src/main/java/com/dd/admin/business/author/mapper/AuthorMapper.java new file mode 100644 index 0000000..168ef3e --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/mapper/AuthorMapper.java @@ -0,0 +1,28 @@ +package com.dd.admin.business.author.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dd.admin.business.author.entity.Author; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dd.admin.business.author.domain.AuthorVo; +import com.dd.admin.business.author.domain.AuthorDto; + +import java.util.List; + +/** + *

+ * 作者(博主) Mapper 接口 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Mapper +public interface AuthorMapper extends BaseMapper { + + IPage selectAuthorPage(Page page, @Param("authorDto") AuthorDto authorDto); + + List selectAuthorList(@Param("authorDto") AuthorDto authorDto); +} diff --git a/src/main/java/com/dd/admin/business/author/mapper/xml/AuthorMapper.xml b/src/main/java/com/dd/admin/business/author/mapper/xml/AuthorMapper.xml new file mode 100644 index 0000000..b73db56 --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/mapper/xml/AuthorMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AUTHOR_ID, AUTHOR_NO, AUTHOR_NAME, AVATAR_ID, AVATAR_URL, DESCRIPTION, SEX, BIRTH, JOB, AREA, SCHOOL, BACK_GROUND_ID, BACK_GROUND_URL, FOLLOW, FANS, UP_COUNT, STAR_COUNT, AUTHOR_STATUS, VERSION, DELETED, CREATE_TIME, UPDATE_TIME, IP_ADDRESS, IP_REAL_ADDRESS, REAL_NAME, ID_CARD, PHONE_NUMBER + + + + + + diff --git a/src/main/java/com/dd/admin/business/author/service/AuthorService.java b/src/main/java/com/dd/admin/business/author/service/AuthorService.java new file mode 100644 index 0000000..dcd68ed --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/service/AuthorService.java @@ -0,0 +1,26 @@ +package com.dd.admin.business.author.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.dd.admin.business.author.entity.Author; +import com.baomidou.mybatisplus.extension.service.IService; +import com.dd.admin.business.author.domain.AuthorVo; +import com.dd.admin.business.author.domain.AuthorDto; +import java.util.List; + +/** + *

+ * 作者(博主) 服务类 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +public interface AuthorService extends IService { + + //作者(博主)-分页列表 + IPage selectAuthorPage(AuthorDto authorDto); + + //作者(博主)-列表 + List selectAuthorList(AuthorDto authorDto); + +} diff --git a/src/main/java/com/dd/admin/business/author/service/impl/AuthorServiceImpl.java b/src/main/java/com/dd/admin/business/author/service/impl/AuthorServiceImpl.java new file mode 100644 index 0000000..1bf2644 --- /dev/null +++ b/src/main/java/com/dd/admin/business/author/service/impl/AuthorServiceImpl.java @@ -0,0 +1,36 @@ +package com.dd.admin.business.author.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dd.admin.common.model.PageFactory; +import com.dd.admin.business.author.entity.Author; +import com.dd.admin.business.author.mapper.AuthorMapper; +import com.dd.admin.business.author.service.AuthorService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import com.dd.admin.business.author.domain.AuthorVo; +import com.dd.admin.business.author.domain.AuthorDto; +import java.util.List; + +/** + *

+ * 作者(博主) 服务实现类 + *

+ * + * @author 727869402@qq.com + * @since 2024-12-12 + */ +@Service +public class AuthorServiceImpl extends ServiceImpl implements AuthorService { + + @Override + public IPage selectAuthorPage(AuthorDto authorDto) { + Page page = PageFactory.defaultPage(); + return baseMapper.selectAuthorPage(page,authorDto); + } + + @Override + public List selectAuthorList(AuthorDto authorDto) { + return baseMapper.selectAuthorList(authorDto); + } +} diff --git a/src/test/java/com/dd/admin/BusinessGenerator.java b/src/test/java/com/dd/admin/BusinessGenerator.java index 51f5da0..dfec192 100644 --- a/src/test/java/com/dd/admin/BusinessGenerator.java +++ b/src/test/java/com/dd/admin/BusinessGenerator.java @@ -75,9 +75,9 @@ public class BusinessGenerator { // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl("jdbc:mysql://127.0.0.1:3306/ddxhs?useSSL=false&autoReconnect=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"); + dsc.setUrl("jdbc:mysql://8.146.211.120:3306/ddxhs?useSSL=false&autoReconnect=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"); dsc.setUsername("root"); - dsc.setPassword("admin"); + dsc.setPassword("wxlwxl12"); // dsc.setSchemaName("public"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); diff --git a/web/src/api/business/author/author.js b/web/src/api/business/author/author.js new file mode 100644 index 0000000..4657802 --- /dev/null +++ b/web/src/api/business/author/author.js @@ -0,0 +1,41 @@ +import request from '@/utils/request' + +export function getAuthorPage(params) { + return request({ + url: '/admin/author/page', + method: 'get', + params + }) +} + +export function getAuthorList(params) { + return request({ + url: '/admin/author/list', + method: 'get', + params + }) +} + +export function addAuthor(data) { + return request({ + url: '/admin/author/add', + method: 'post', + data: data + }) +} + +export function editAuthor(data) { + return request({ + url: '/admin/author/update', + method: 'post', + data: data + }) +} + +export function deleteAuthor(authorId) { + return request({ + url: '/admin/author/delete/' + authorId, + method: 'get' + }) +} + diff --git a/web/src/views/business/author/addAuthor.vue b/web/src/views/business/author/addAuthor.vue new file mode 100644 index 0000000..58296d2 --- /dev/null +++ b/web/src/views/business/author/addAuthor.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/web/src/views/business/author/authorList.vue b/web/src/views/business/author/authorList.vue new file mode 100644 index 0000000..1ec1b81 --- /dev/null +++ b/web/src/views/business/author/authorList.vue @@ -0,0 +1,453 @@ + + + + + diff --git a/web/src/views/business/author/editAuthor.vue b/web/src/views/business/author/editAuthor.vue new file mode 100644 index 0000000..8af79d5 --- /dev/null +++ b/web/src/views/business/author/editAuthor.vue @@ -0,0 +1,212 @@ + + + + +