mirror of https://gitee.com/stylefeng/roses
【8.0.4】【fav模块】初始化基础类
parent
4ff4ff6fcd
commit
3912db568f
|
@ -0,0 +1,60 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.entity;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 用户收藏信息实例类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
@TableName("sys_user_favorite")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SysUserFavorite extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "favorite_id", type = IdType.ASSIGN_ID)
|
||||
@ChineseDescription("主键id")
|
||||
private Long favoriteId;
|
||||
|
||||
/**
|
||||
* 收藏业务的类型,存业务编码
|
||||
*/
|
||||
@TableField("fav_type")
|
||||
@ChineseDescription("收藏业务的类型,存业务编码")
|
||||
private String favType;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
@ChineseDescription("用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 具体业务id
|
||||
*/
|
||||
@TableField("business_id")
|
||||
@ChineseDescription("具体业务id")
|
||||
private Long businessId;
|
||||
|
||||
/**
|
||||
* 收藏时间
|
||||
*/
|
||||
@TableField("fav_time")
|
||||
@ChineseDescription("收藏时间")
|
||||
private Date favTime;
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.enums;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 用户收藏信息异常相关枚举
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
@Getter
|
||||
public enum SysUserFavoriteExceptionEnum implements AbstractExceptionEnum {
|
||||
|
||||
/**
|
||||
* 查询结果不存在
|
||||
*/
|
||||
SYS_USER_FAVORITE_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
*/
|
||||
private final String errorCode;
|
||||
|
||||
/**
|
||||
* 提示用户信息
|
||||
*/
|
||||
private final String userTip;
|
||||
|
||||
SysUserFavoriteExceptionEnum(String errorCode, String userTip) {
|
||||
this.errorCode = errorCode;
|
||||
this.userTip = userTip;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.mapper;
|
||||
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.entity.SysUserFavorite;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.pojo.request.SysUserFavoriteRequest;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.pojo.response.SysUserFavoriteVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户收藏信息 Mapper 接口
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
public interface SysUserFavoriteMapper extends BaseMapper<SysUserFavorite> {
|
||||
|
||||
/**
|
||||
* 获取自定义查询列表
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
List<SysUserFavoriteVo> customFindList(@Param("page") Page page, @Param("param")SysUserFavoriteRequest request);
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="cn.stylefeng.roses.kernel.favorite.modular.mapper.SysUserFavoriteMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="cn.stylefeng.roses.kernel.favorite.modular.entity.SysUserFavorite">
|
||||
<id column="favorite_id" property="favoriteId" />
|
||||
<result column="fav_type" property="favType" />
|
||||
<result column="user_id" property="userId" />
|
||||
<result column="business_id" property="businessId" />
|
||||
<result column="fav_time" property="favTime" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="create_user" property="createUser" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="update_user" property="updateUser" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
favorite_id,fav_type,user_id,business_id,fav_time,create_time,create_user,update_time,update_user
|
||||
</sql>
|
||||
|
||||
<resultMap id="customResultMap" type="cn.stylefeng.roses.kernel.favorite.modular.pojo.response.SysUserFavoriteVo" extends="BaseResultMap">
|
||||
</resultMap>
|
||||
|
||||
<select id="customFindList" resultMap="customResultMap">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
sys_user_favorite tbl
|
||||
WHERE
|
||||
<where>
|
||||
<if test="param.favoriteId != null and param.favoriteId != ''">
|
||||
and tbl.favorite_id like concat('%',#{param.favoriteId},'%')
|
||||
</if>
|
||||
<if test="param.favType != null and param.favType != ''">
|
||||
and tbl.fav_type like concat('%',#{param.favType},'%')
|
||||
</if>
|
||||
<if test="param.userId != null and param.userId != ''">
|
||||
and tbl.user_id like concat('%',#{param.userId},'%')
|
||||
</if>
|
||||
<if test="param.businessId != null and param.businessId != ''">
|
||||
and tbl.business_id like concat('%',#{param.businessId},'%')
|
||||
</if>
|
||||
<if test="param.favTime != null and param.favTime != ''">
|
||||
and tbl.fav_time like concat('%',#{param.favTime},'%')
|
||||
</if>
|
||||
<if test="param.createTime != null and param.createTime != ''">
|
||||
and tbl.create_time like concat('%',#{param.createTime},'%')
|
||||
</if>
|
||||
<if test="param.createUser != null and param.createUser != ''">
|
||||
and tbl.create_user like concat('%',#{param.createUser},'%')
|
||||
</if>
|
||||
<if test="param.updateTime != null and param.updateTime != ''">
|
||||
and tbl.update_time like concat('%',#{param.updateTime},'%')
|
||||
</if>
|
||||
<if test="param.updateUser != null and param.updateUser != ''">
|
||||
and tbl.update_user like concat('%',#{param.updateUser},'%')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.controller;
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.entity;
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.enums;
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.mapper;
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.pojo;
|
|
@ -1 +0,0 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.modular.service;
|
|
@ -0,0 +1,64 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.pojo.request;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户收藏信息封装类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysUserFavoriteRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
|
||||
@ChineseDescription("主键id")
|
||||
private Long favoriteId;
|
||||
|
||||
/**
|
||||
* 收藏业务的类型,存业务编码
|
||||
*/
|
||||
@NotBlank(message = "收藏业务的类型,存业务编码不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("收藏业务的类型,存业务编码")
|
||||
private String favType;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 具体业务id
|
||||
*/
|
||||
@NotNull(message = "具体业务id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("具体业务id")
|
||||
private Long businessId;
|
||||
|
||||
/**
|
||||
* 收藏时间
|
||||
*/
|
||||
@ChineseDescription("收藏时间")
|
||||
private String favTime;
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除用的id集合
|
||||
*/
|
||||
@NotNull(message = "批量删除id集合不能为空", groups = batchDelete.class)
|
||||
@ChineseDescription("批量删除用的id集合")
|
||||
private List<Long> batchDeleteIdList;
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.pojo.response;
|
||||
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.entity.SysUserFavorite;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 用户收藏信息返回值封装
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SysUserFavoriteVo extends SysUserFavorite {
|
||||
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.entity.SysUserFavorite;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.pojo.request.SysUserFavoriteRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户收藏信息服务类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
public interface SysUserFavoriteService extends IService<SysUserFavorite> {
|
||||
|
||||
/**
|
||||
* 新增用户收藏信息
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
void add(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 删除用户收藏信息
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
void del(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 批量删除用户收藏信息
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
void batchDelete(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 编辑用户收藏信息
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
void edit(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 查询详情用户收藏信息
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
SysUserFavorite detail(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 获取用户收藏信息列表
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @return List<SysUserFavorite> 返回结果
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
List<SysUserFavorite> findList(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
/**
|
||||
* 获取用户收藏信息分页列表
|
||||
*
|
||||
* @param sysUserFavoriteRequest 请求参数
|
||||
* @return PageResult<SysUserFavorite> 返回结果
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
PageResult<SysUserFavorite> findPage(SysUserFavoriteRequest sysUserFavoriteRequest);
|
||||
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
package cn.stylefeng.roses.kernel.favorite.modular.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.entity.SysUserFavorite;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.enums.SysUserFavoriteExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.mapper.SysUserFavoriteMapper;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.pojo.request.SysUserFavoriteRequest;
|
||||
import cn.stylefeng.roses.kernel.favorite.modular.service.SysUserFavoriteService;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户收藏信息业务实现层
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
@Service
|
||||
public class SysUserFavoriteServiceImpl extends ServiceImpl<SysUserFavoriteMapper, SysUserFavorite> implements SysUserFavoriteService {
|
||||
|
||||
@Override
|
||||
public void add(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
SysUserFavorite sysUserFavorite = new SysUserFavorite();
|
||||
BeanUtil.copyProperties(sysUserFavoriteRequest, sysUserFavorite);
|
||||
this.save(sysUserFavorite);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void del(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
SysUserFavorite sysUserFavorite = this.querySysUserFavorite(sysUserFavoriteRequest);
|
||||
this.removeById(sysUserFavorite.getFavoriteId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void batchDelete(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
this.removeByIds(sysUserFavoriteRequest.getBatchDeleteIdList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
SysUserFavorite sysUserFavorite = this.querySysUserFavorite(sysUserFavoriteRequest);
|
||||
BeanUtil.copyProperties(sysUserFavoriteRequest, sysUserFavorite);
|
||||
this.updateById(sysUserFavorite);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserFavorite detail(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
return this.querySysUserFavorite(sysUserFavoriteRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<SysUserFavorite> findPage(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
LambdaQueryWrapper<SysUserFavorite> wrapper = createWrapper(sysUserFavoriteRequest);
|
||||
Page<SysUserFavorite> pageList = this.page(PageFactory.defaultPage(), wrapper);
|
||||
return PageResultFactory.createPageResult(pageList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserFavorite> findList(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
LambdaQueryWrapper<SysUserFavorite> wrapper = this.createWrapper(sysUserFavoriteRequest);
|
||||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
private SysUserFavorite querySysUserFavorite(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
SysUserFavorite sysUserFavorite = this.getById(sysUserFavoriteRequest.getFavoriteId());
|
||||
if (ObjectUtil.isEmpty(sysUserFavorite)) {
|
||||
throw new ServiceException(SysUserFavoriteExceptionEnum.SYS_USER_FAVORITE_NOT_EXISTED);
|
||||
}
|
||||
return sysUserFavorite;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建查询wrapper
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/11/21 22:09
|
||||
*/
|
||||
private LambdaQueryWrapper<SysUserFavorite> createWrapper(SysUserFavoriteRequest sysUserFavoriteRequest) {
|
||||
LambdaQueryWrapper<SysUserFavorite> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
Long favoriteId = sysUserFavoriteRequest.getFavoriteId();
|
||||
String favType = sysUserFavoriteRequest.getFavType();
|
||||
Long userId = sysUserFavoriteRequest.getUserId();
|
||||
Long businessId = sysUserFavoriteRequest.getBusinessId();
|
||||
String favTime = sysUserFavoriteRequest.getFavTime();
|
||||
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(favoriteId), SysUserFavorite::getFavoriteId, favoriteId);
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(favType), SysUserFavorite::getFavType, favType);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userId), SysUserFavorite::getUserId, userId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(businessId), SysUserFavorite::getBusinessId, businessId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(favTime), SysUserFavorite::getFavTime, favTime);
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue