main
王宇航 2024-05-15 17:06:57 +08:00
parent 0a860465fa
commit 18f0ad47fc
14 changed files with 488 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@ -0,0 +1,69 @@
package com.mdd.admin.controller.dongtai;
import com.mdd.admin.aop.Log;
import com.mdd.admin.service.IAppTagService;
import com.mdd.admin.validate.commons.IdValidate;
import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.admin.validate.dttag.AppTagCreateValidate;
import com.mdd.admin.validate.dttag.AppTagSearchValidate;
import com.mdd.admin.validate.dttag.AppTagUpdateValidate;
import com.mdd.admin.vo.dttag.AppTagDetailVo;
import com.mdd.admin.vo.dttag.AppTagListedVo;
import com.mdd.common.core.AjaxResult;
import com.mdd.common.core.PageResult;
import com.mdd.common.validator.annotation.IDMust;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("api/tag")
@Api(tags = "动态标签管理")
public class AppTagController {
@Resource
IAppTagService iAppTagService;
@GetMapping("/list")
@ApiOperation(value="动态标签列表")
public AjaxResult<PageResult<AppTagListedVo>> list(@Validated PageValidate pageValidate,
@Validated AppTagSearchValidate searchValidate) {
PageResult<AppTagListedVo> list = iAppTagService.list(pageValidate, searchValidate);
return AjaxResult.success(list);
}
@GetMapping("/detail")
@ApiOperation(value="动态标签详情")
public AjaxResult<AppTagDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
AppTagDetailVo detail = iAppTagService.detail(id);
return AjaxResult.success(detail);
}
@Log(title = "动态标签新增")
@PostMapping("/add")
@ApiOperation(value="动态标签新增")
public AjaxResult<Object> add(@Validated @RequestBody AppTagCreateValidate createValidate) {
iAppTagService.add(createValidate);
return AjaxResult.success();
}
@Log(title = "动态标签编辑")
@PostMapping("/edit")
@ApiOperation(value="动态标签编辑")
public AjaxResult<Object> edit(@Validated @RequestBody AppTagUpdateValidate updateValidate) {
iAppTagService.edit(updateValidate);
return AjaxResult.success();
}
@Log(title = "动态标签删除")
@PostMapping("/del")
@ApiOperation(value="动态标签删除")
public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
iAppTagService.del(idValidate.getId());
return AjaxResult.success();
}
}

View File

@ -0,0 +1,61 @@
package com.mdd.admin.service;
import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.admin.validate.dttag.AppTagCreateValidate;
import com.mdd.admin.validate.dttag.AppTagSearchValidate;
import com.mdd.admin.validate.dttag.AppTagUpdateValidate;
import com.mdd.admin.vo.dttag.AppTagDetailVo;
import com.mdd.admin.vo.dttag.AppTagListedVo;
import com.mdd.common.core.PageResult;
/**
*
* @author LikeAdmin
*/
public interface IAppTagService {
/**
*
*
* @author LikeAdmin
* @param pageValidate
* @param searchValidate
* @return PageResult<AppTagListedVo>
*/
PageResult<AppTagListedVo> list(PageValidate pageValidate, AppTagSearchValidate searchValidate);
/**
*
*
* @author LikeAdmin
* @param id ID
* @return AppTagDetailVo
*/
AppTagDetailVo detail(Integer id);
/**
*
*
* @author LikeAdmin
* @param createValidate
*/
void add(AppTagCreateValidate createValidate);
/**
*
*
* @author LikeAdmin
* @param updateValidate
*/
void edit(AppTagUpdateValidate updateValidate);
/**
*
*
* @author LikeAdmin
* @param id ID
*/
void del(Integer id);
}

View File

@ -0,0 +1,155 @@
package com.mdd.admin.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.admin.service.IAppTagService;
import com.mdd.admin.validate.dttag.AppTagCreateValidate;
import com.mdd.admin.validate.dttag.AppTagSearchValidate;
import com.mdd.admin.validate.dttag.AppTagUpdateValidate;
import com.mdd.admin.vo.dttag.AppTagDetailVo;
import com.mdd.admin.vo.dttag.AppTagListedVo;
import com.mdd.common.config.GlobalConfig;
import com.mdd.common.core.PageResult;
import com.mdd.common.entity.dttag.AppTag;
import com.mdd.common.mapper.dttag.AppTagMapper;
import com.mdd.common.util.ListUtils;
import com.mdd.common.util.TimeUtils;
import com.mdd.common.util.UrlUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.*;
/**
*
* @author LikeAdmin
*/
@Service
public class AppTagServiceImpl implements IAppTagService {
@Resource
AppTagMapper appTagMapper;
/**
*
*
* @author LikeAdmin
* @param pageValidate
* @param searchValidate
* @return PageResult<AppTagListedVo>
*/
@Override
public PageResult<AppTagListedVo> list(PageValidate pageValidate, AppTagSearchValidate searchValidate) {
Integer page = pageValidate.getPageNo();
Integer limit = pageValidate.getPageSize();
QueryWrapper<AppTag> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
appTagMapper.setSearch(queryWrapper, searchValidate, new String[]{
"like:name:str",
"=:parentId@parent_id:int",
"=:type:int",
});
IPage<AppTag> iPage = appTagMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<AppTagListedVo> list = new LinkedList<>();
for(AppTag item : iPage.getRecords()) {
AppTagListedVo vo = new AppTagListedVo();
BeanUtils.copyProperties(item, vo);
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
vo.setUpdateTime(TimeUtils.timestampToDate(item.getUpdateTime()));
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author LikeAdmin
* @param id
* @return AppTag
*/
@Override
public AppTagDetailVo detail(Integer id) {
AppTag model = appTagMapper.selectOne(
new QueryWrapper<AppTag>()
.eq("id", id)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
AppTagDetailVo vo = new AppTagDetailVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author LikeAdmin
* @param createValidate
*/
@Override
public void add(AppTagCreateValidate createValidate) {
AppTag model = new AppTag();
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(createValidate.getName());
model.setParentId(createValidate.getParentId());
model.setType(createValidate.getType());
appTagMapper.insert(model);
}
/**
*
*
* @author LikeAdmin
* @param updateValidate
*/
@Override
public void edit(AppTagUpdateValidate updateValidate) {
AppTag model = appTagMapper.selectOne(
new QueryWrapper<AppTag>()
.eq("id", updateValidate.getId())
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(updateValidate.getId());
model.setUpdateTime(System.currentTimeMillis() / 1000);
model.setName(updateValidate.getName());
model.setParentId(updateValidate.getParentId());
model.setType(updateValidate.getType());
appTagMapper.updateById(model);
}
/**
*
*
* @author LikeAdmin
* @param id ID
*/
@Override
public void del(Integer id) {
AppTag model = appTagMapper.selectOne(
new QueryWrapper<AppTag>()
.eq("id", id)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
appTagMapper.delete(new QueryWrapper<AppTag>().eq("id", id));
}
}

View File

@ -0,0 +1,27 @@
package com.mdd.admin.validate.dttag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import javax.validation.constraints.*;
@Data
@ApiModel("动态标签创建参数")
public class AppTagCreateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "标签名称")
private String name;
@NotNull(message = "parentId参数缺失")
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,23 @@
package com.mdd.admin.validate.dttag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("动态标签搜素参数")
public class AppTagSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "标签名称")
private String name;
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,36 @@
package com.mdd.admin.validate.dttag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import javax.validation.constraints.*;
import com.mdd.common.validator.annotation.IDMust;
/**
*
* @author LikeAdmin
*/
@Data
@ApiModel("动态标签更新参数")
public class AppTagUpdateValidate implements Serializable {
private static final long serialVersionUID = 1L;
@IDMust(message = "id参数必传且需大于0")
@ApiModelProperty(value = "主键")
private Integer id;
@NotNull(message = "name参数缺失")
@ApiModelProperty(value = "标签名称")
private String name;
@NotNull(message = "parentId参数缺失")
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@NotNull(message = "type参数缺失")
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,28 @@
package com.mdd.admin.vo.dttag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("动态标签详情Vo")
public class AppTagDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "标签名称")
private String name;
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,34 @@
package com.mdd.admin.vo.dttag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("动态标签列表Vo")
public class AppTagListedVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "创建时间")
private String createTime;
@ApiModelProperty(value = "更新时间")
private String updateTime;
@ApiModelProperty(value = "标签名称")
private String name;
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,39 @@
package com.mdd.common.entity.dttag;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel("动态标签实体")
public class AppTag implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "创建时间")
private Long createTime;
@ApiModelProperty(value = "更新时间")
private Long updateTime;
@ApiModelProperty(value = "删除时间")
private Long deleteTime;
@ApiModelProperty(value = "标签名称")
private String name;
@ApiModelProperty(value = "父级id顶级为0")
private Integer parentId;
@ApiModelProperty(value = "标签类型1分类2标签")
private Integer type;
}

View File

@ -0,0 +1,13 @@
package com.mdd.common.mapper.dttag;
import com.mdd.common.core.basics.IBaseMapper;
import com.mdd.common.entity.dttag.AppTag;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* @author LikeAdmin
*/
@Mapper
public interface AppTagMapper extends IBaseMapper<AppTag> {
}

View File

@ -34,9 +34,9 @@ public class AliyunStorage {
* @return String
*/
public OSS ossClient() {
String endpoint = "https://oss-cn-shenzhen.aliyuncs.com";
String accessKeyId = this.config.get("accessKey");
String accessKeySecret = this.config.get("secretKey");
String endpoint = "https://oss-cn-shanghai.aliyuncs.com";
String accessKeyId = this.config.get("LTAI5tM1LeE2pkiS3qEFQkfb");
String accessKeySecret = this.config.get("fEZZyFvWkETS8Clm73f7qmY9ohcTpc");
return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
}