feat:用户配置
This commit is contained in:
1 parent
334c9223c6
commit
1c4d6b64ba
7 files changed
+256
No files matched your search
@@ -163,6 +163,26 @@ CREATE TABLE `member_recent_tag`
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '朋友圈用户tag';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for member_recent_cfg
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `member_recent_cfg`;
|
||||
CREATE TABLE `member_recent_cfg`
|
||||
(
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户朋友圈相关配置id',
|
||||
`member_id` bigint NOT NULL COMMENT '人员id',
|
||||
`home_hide` bit(1) NOT NULL DEFAULT b'0' COMMENT '首页隐身',
|
||||
`privacy_secure` bit(1) NOT NULL DEFAULT b'0' COMMENT '隐私保护',
|
||||
`short_note` bit(1) NOT NULL DEFAULT b'0' COMMENT '短信通知',
|
||||
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户朋友圈相关配置';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for member_open_type
|
||||
-- ----------------------------
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package cn.iocoder.yudao.module.member.controller.app.user;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.recentcfg.MemberRecentCfgReqVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentCfgDO;
|
||||
import cn.iocoder.yudao.module.member.service.user.MemberRecentCfgService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
@Tag(name = "用户 APP - 用户朋友圈配置")
|
||||
@RestController
|
||||
@RequestMapping("/member/recent-cfg")
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class AppMemberRecentCfgController {
|
||||
|
||||
@Resource
|
||||
private MemberRecentCfgService recentCfgService;
|
||||
|
||||
@PostMapping("/create-or-update")
|
||||
@Operation(summary = "创建或更新配置")
|
||||
public CommonResult<MemberRecentCfgDO> getUserInfo(@RequestBody MemberRecentCfgReqVo dto) {
|
||||
dto.setMemberId(getLoginUserId());
|
||||
return success(recentCfgService.createOrUpdate(dto));
|
||||
}
|
||||
|
||||
@GetMapping("/get-or-create")
|
||||
@Operation(summary = "查询或者创建配置")
|
||||
public CommonResult<MemberRecentCfgDO> getUserInfo() {
|
||||
return success(recentCfgService.getOrCreate(getLoginUserId()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.member.controller.app.user.vo.recentcfg;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Schema(description = "创建或更新config Response VO")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MemberRecentCfgReqVo {
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private Long memberId;
|
||||
|
||||
@NotNull(message = "首页隐身不能为空")
|
||||
@Schema(description = "首页隐身")
|
||||
private Boolean homeHide;
|
||||
|
||||
@NotNull(message = "短信通知不能为空")
|
||||
@Schema(description = "隐私保护")
|
||||
private Boolean privacySecure;
|
||||
|
||||
@NotNull(message = "短信通知不能为空")
|
||||
@Schema(description = "短信通知")
|
||||
private Boolean shortNote;
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package cn.iocoder.yudao.module.member.dal.dataobject.user;
|
||||
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 用户朋友圈相关配置 DO
|
||||
*
|
||||
* @author 聊天交友
|
||||
*/
|
||||
@TableName("member_recent_cfg")
|
||||
@KeySequence("member_recent_cfg_seq")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MemberRecentCfgDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 用户朋友圈相关配置id
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 人员id
|
||||
*/
|
||||
private Long memberId;
|
||||
|
||||
/**
|
||||
* 首页隐身
|
||||
*/
|
||||
private Boolean homeHide;
|
||||
|
||||
/**
|
||||
* 隐私保护
|
||||
*/
|
||||
private Boolean privacySecure;
|
||||
|
||||
/**
|
||||
* 短信通知
|
||||
*/
|
||||
private Boolean shortNote;
|
||||
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package cn.iocoder.yudao.module.member.dal.mysql.user;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentCfgDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 用户朋友圈相关配置 Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface RecentCfgMapper extends BaseMapperX<MemberRecentCfgDO> {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.member.service.user;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.recentcfg.MemberRecentCfgReqVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentCfgDO;
|
||||
|
||||
/**
|
||||
* 用户朋友圈相关配置 Service 接口
|
||||
*/
|
||||
public interface MemberRecentCfgService {
|
||||
|
||||
/**
|
||||
* 创建或新增配置
|
||||
*/
|
||||
MemberRecentCfgDO createOrUpdate(MemberRecentCfgReqVo dto);
|
||||
|
||||
/**
|
||||
* 查询或者创建配置
|
||||
*/
|
||||
MemberRecentCfgDO getOrCreate(Long memberId);
|
||||
|
||||
/**
|
||||
* 删除配置
|
||||
*/
|
||||
int del(Long menberId);
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package cn.iocoder.yudao.module.member.service.user;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.recentcfg.MemberRecentCfgReqVo;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberRecentCfgDO;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.user.RecentCfgMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
|
||||
/**
|
||||
* 用户朋友圈相关配置 Service 实现类
|
||||
*
|
||||
* @author 聊天交友
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MemberRecentCfgServiceImpl implements MemberRecentCfgService {
|
||||
|
||||
@Resource
|
||||
private RecentCfgMapper recentCfgMapper;
|
||||
|
||||
/**
|
||||
* 创建或新增配置
|
||||
*/
|
||||
@Override
|
||||
public MemberRecentCfgDO createOrUpdate(MemberRecentCfgReqVo dto) {
|
||||
MemberRecentCfgDO detail = recentCfgMapper.selectOne(new LambdaQueryWrapperX<MemberRecentCfgDO>()
|
||||
.eq(MemberRecentCfgDO::getMemberId, dto.getMemberId())
|
||||
);
|
||||
MemberRecentCfgDO entity = BeanUtil.toBean(dto, MemberRecentCfgDO.class);
|
||||
if (ObjectUtil.isEmpty(detail)) {
|
||||
recentCfgMapper.insert(entity);
|
||||
} else {
|
||||
entity.setId(detail.getId());
|
||||
recentCfgMapper.updateById(entity);
|
||||
}
|
||||
return entity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询或者创建配置
|
||||
*/
|
||||
@Override
|
||||
public MemberRecentCfgDO getOrCreate(Long memberId) {
|
||||
MemberRecentCfgDO detail = recentCfgMapper.selectOne(new LambdaQueryWrapperX<MemberRecentCfgDO>()
|
||||
.eq(MemberRecentCfgDO::getMemberId, memberId)
|
||||
);
|
||||
if (ObjectUtil.isNotEmpty(detail)) {
|
||||
return detail;
|
||||
}
|
||||
MemberRecentCfgDO insertObj = MemberRecentCfgDO.builder()
|
||||
.memberId(memberId)
|
||||
.homeHide(false)
|
||||
.privacySecure(false)
|
||||
.shortNote(false)
|
||||
.build();
|
||||
recentCfgMapper.insert(insertObj);
|
||||
return insertObj;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除配置
|
||||
*/
|
||||
@Override
|
||||
public int del(Long menberId) {
|
||||
return recentCfgMapper.deleteById(menberId);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user