增加故事权限,故事列表查询增加字段
This commit is contained in:
parent
7f3505ab2e
commit
957462b60b
|
@ -8,10 +8,12 @@ import com.timeline.story.vo.StoryItemAddVo;
|
|||
import com.timeline.story.vo.StoryItemVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cloud.openfeign.SpringQueryMap;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/story/item")
|
||||
|
@ -53,9 +55,9 @@ public class StoryItemController {
|
|||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<List<StoryItem>> getItemsByMasterItem(@RequestParam String storyInstanceId) {
|
||||
log.info("查询 StoryItem 列表,storyInstanceId: {}", storyInstanceId);
|
||||
List<StoryItem> items = storyItemService.getItemsByMasterItem(storyInstanceId);
|
||||
public ResponseEntity<Map> getItemsByMasterItem(@SpringQueryMap StoryItemVo storyItemVo) {
|
||||
log.info("查询 StoryItem 列表,storyInstanceId: {}, current: {}, pageSize:{}", storyItemVo.getStoryInstanceId(), storyItemVo.getCurrent(), storyItemVo.getPageSize());
|
||||
Map items = storyItemService.getItemsByMasterItem(storyItemVo);
|
||||
return ResponseEntity.success(items);
|
||||
}
|
||||
@GetMapping("/images/{itemId}")
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
package com.timeline.story.controller;
|
||||
|
||||
import com.timeline.common.response.ResponseEntity;
|
||||
import com.timeline.story.entity.StoryPermission;
|
||||
import com.timeline.story.service.StoryPermissionService;
|
||||
import com.timeline.story.vo.StoryPermissionVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/story/permission")
|
||||
@Slf4j
|
||||
public class StoryPermissionController {
|
||||
|
||||
@Autowired
|
||||
private StoryPermissionService storyPermissionService;
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<String> createPermission(@RequestBody StoryPermissionVo permissionVo) {
|
||||
log.info("创建权限: {}", permissionVo);
|
||||
storyPermissionService.createPermission(permissionVo);
|
||||
return ResponseEntity.success("权限创建成功");
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public ResponseEntity<String> updatePermission(@RequestBody StoryPermissionVo permissionVo) {
|
||||
log.info("更新权限: {}", permissionVo);
|
||||
storyPermissionService.updatePermission(permissionVo);
|
||||
return ResponseEntity.success("权限更新成功");
|
||||
}
|
||||
|
||||
@DeleteMapping("/{permissionId}")
|
||||
public ResponseEntity<String> deletePermission(@PathVariable String permissionId) {
|
||||
log.info("删除权限: {}", permissionId);
|
||||
storyPermissionService.deletePermission(permissionId);
|
||||
return ResponseEntity.success("权限删除成功");
|
||||
}
|
||||
|
||||
@GetMapping("/{permissionId}")
|
||||
public ResponseEntity<StoryPermission> getPermissionById(@PathVariable String permissionId) {
|
||||
log.info("获取权限详情: {}", permissionId);
|
||||
StoryPermission permission = storyPermissionService.getPermissionById(permissionId);
|
||||
return ResponseEntity.success(permission);
|
||||
}
|
||||
|
||||
@GetMapping("/story/{storyInstanceId}")
|
||||
public ResponseEntity<List<StoryPermission>> getPermissionsByStoryId(@PathVariable String storyInstanceId) {
|
||||
log.info("获取故事情限列表: {}", storyInstanceId);
|
||||
List<StoryPermission> permissions = storyPermissionService.getPermissionsByStoryId(storyInstanceId);
|
||||
return ResponseEntity.success(permissions);
|
||||
}
|
||||
|
||||
@GetMapping("/user/{userId}")
|
||||
public ResponseEntity<List<StoryPermission>> getPermissionsByUserId(@PathVariable String userId) {
|
||||
log.info("获取用户权限列表: {}", userId);
|
||||
List<StoryPermission> permissions = storyPermissionService.getPermissionsByUserId(userId);
|
||||
return ResponseEntity.success(permissions);
|
||||
}
|
||||
|
||||
@GetMapping("/check")
|
||||
public ResponseEntity<Boolean> checkUserPermission(
|
||||
@RequestParam String storyInstanceId,
|
||||
@RequestParam String userId,
|
||||
@RequestParam Integer requiredPermissionType) {
|
||||
log.info("检查用户权限: storyInstanceId={}, userId={}, requiredPermissionType={}",
|
||||
storyInstanceId, userId, requiredPermissionType);
|
||||
boolean hasPermission = storyPermissionService.checkUserPermission(storyInstanceId, userId, requiredPermissionType);
|
||||
return ResponseEntity.success(hasPermission);
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import com.timeline.story.entity.StoryItem;
|
|||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Mapper
|
||||
public interface StoryItemMapper {
|
||||
|
@ -13,6 +14,6 @@ public interface StoryItemMapper {
|
|||
StoryItem selectById(String itemId);
|
||||
List<StoryItem> selectByMasterItem(String masterItemId);
|
||||
List<String> selectImagesByItemId(String itemId);
|
||||
List<StoryItem> selectStoryItemByStoryInstanceId(String storyInstanceId);
|
||||
List<StoryItem> selectStoryItemByStoryInstanceId(Map map);
|
||||
int countByStoryId(String storyInstanceId);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.timeline.story.dao;
|
||||
|
||||
import com.timeline.story.entity.StoryPermission;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface StoryPermissionMapper {
|
||||
void insert(StoryPermission permission);
|
||||
void update(StoryPermission permission);
|
||||
void deleteByPermissionId(String permissionId);
|
||||
StoryPermission selectByPermissionId(String permissionId);
|
||||
List<StoryPermission> selectByStoryInstanceId(String storyInstanceId);
|
||||
List<StoryPermission> selectByUserId(String userId);
|
||||
StoryPermission selectByStoryAndUser(String storyInstanceId, String userId);
|
||||
List<StoryPermission> selectByStoryAndPermissionType(String storyInstanceId, Integer permissionType);
|
||||
}
|
|
@ -19,4 +19,9 @@ public class Story {
|
|||
private String ownerId;
|
||||
private String status;
|
||||
private String logo;
|
||||
// 新增字段:创建人名称和修改人名称
|
||||
private String ownerName;
|
||||
private String updateName;
|
||||
// 新增字段:故事项数量
|
||||
private Integer itemCount;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package com.timeline.story.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class StoryPermission {
|
||||
private Integer id;
|
||||
private String permissionId;
|
||||
private String storyInstanceId;
|
||||
private String userId;
|
||||
private Integer permissionType; // 1-创建者,2-仅查看,3-可新增,4-可管理
|
||||
private Integer isDeleted;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
|
@ -7,6 +7,7 @@ import com.timeline.story.vo.StoryItemWithCoverVo;
|
|||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface StoryItemService {
|
||||
void createStoryItem(StoryItemAddVo storyItemVo, List<MultipartFile> images);
|
||||
|
@ -14,7 +15,7 @@ public interface StoryItemService {
|
|||
void updateItem(String itemId, String description, String location);
|
||||
void deleteItem(String itemId);
|
||||
StoryItem getItemById(String itemId);
|
||||
List<StoryItem> getItemsByMasterItem(String masterItemId);
|
||||
Map getItemsByMasterItem(StoryItemVo storyItemVo);
|
||||
List<String> getStoryItemImages(String storyItemId);
|
||||
|
||||
Integer getStoryItemCount(String instanceId);
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.timeline.story.service;
|
||||
|
||||
import com.timeline.story.entity.StoryPermission;
|
||||
import com.timeline.story.vo.StoryPermissionVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface StoryPermissionService {
|
||||
void createPermission(StoryPermissionVo permissionVo);
|
||||
void updatePermission(StoryPermissionVo permissionVo);
|
||||
void deletePermission(String permissionId);
|
||||
StoryPermission getPermissionById(String permissionId);
|
||||
List<StoryPermission> getPermissionsByStoryId(String storyInstanceId);
|
||||
List<StoryPermission> getPermissionsByUserId(String userId);
|
||||
StoryPermission getPermissionByStoryAndUser(String storyInstanceId, String userId);
|
||||
boolean checkUserPermission(String storyInstanceId, String userId, Integer requiredPermissionType);
|
||||
List<StoryPermission> getPermissionsByStoryAndType(String storyInstanceId, Integer permissionType);
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package com.timeline.story.service.impl;
|
||||
|
||||
import com.timeline.common.constants.CommonConstants;
|
||||
import com.timeline.common.utils.PageUtils;
|
||||
import com.timeline.story.dao.CommonRelationMapper;
|
||||
import com.timeline.common.dto.CommonRelationDTO;
|
||||
import com.timeline.common.exception.CustomException;
|
||||
|
@ -21,7 +22,9 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
|
@ -126,8 +129,12 @@ public class StoryItemServiceImpl implements StoryItemService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<StoryItem> getItemsByMasterItem(String storyInstanceId) {
|
||||
return storyItemMapper.selectStoryItemByStoryInstanceId(storyInstanceId);
|
||||
public Map getItemsByMasterItem(StoryItemVo storyItemVo) {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("storyInstanceId", storyItemVo.getStoryInstanceId());
|
||||
Map resultMap = PageUtils.pageQuery(storyItemVo.getCurrent(), storyItemVo.getPageSize(), StoryItemMapper.class, "selectStoryItemByStoryInstanceId",
|
||||
map, "list");
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
package com.timeline.story.service.impl;
|
||||
|
||||
import com.timeline.common.constants.CommonConstants;
|
||||
import com.timeline.common.exception.CustomException;
|
||||
import com.timeline.common.response.ResponseEnum;
|
||||
import com.timeline.common.utils.IdUtils;
|
||||
import com.timeline.story.dao.StoryPermissionMapper;
|
||||
import com.timeline.story.entity.StoryPermission;
|
||||
import com.timeline.story.service.StoryPermissionService;
|
||||
import com.timeline.story.vo.StoryPermissionVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class StoryPermissionServiceImpl implements StoryPermissionService {
|
||||
|
||||
@Autowired
|
||||
private StoryPermissionMapper storyPermissionMapper;
|
||||
|
||||
@Override
|
||||
public void createPermission(StoryPermissionVo permissionVo) {
|
||||
try {
|
||||
StoryPermission permission = new StoryPermission();
|
||||
BeanUtils.copyProperties(permissionVo, permission);
|
||||
permission.setPermissionId(IdUtils.randomUuidUpper());
|
||||
permission.setCreateTime(LocalDateTime.now());
|
||||
permission.setUpdateTime(LocalDateTime.now());
|
||||
permission.setIsDeleted(CommonConstants.NOT_DELETED);
|
||||
storyPermissionMapper.insert(permission);
|
||||
} catch (Exception e) {
|
||||
log.error("创建权限失败", e);
|
||||
throw new CustomException(ResponseEnum.INTERNAL_SERVER_ERROR, "创建权限失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePermission(StoryPermissionVo permissionVo) {
|
||||
try {
|
||||
StoryPermission permission = storyPermissionMapper.selectByPermissionId(permissionVo.getPermissionId());
|
||||
if (permission == null) {
|
||||
throw new CustomException(ResponseEnum.NOT_FOUND, "权限记录不存在");
|
||||
}
|
||||
BeanUtils.copyProperties(permissionVo, permission);
|
||||
permission.setUpdateTime(LocalDateTime.now());
|
||||
storyPermissionMapper.update(permission);
|
||||
} catch (CustomException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
log.error("更新权限失败", e);
|
||||
throw new CustomException(ResponseEnum.INTERNAL_SERVER_ERROR, "更新权限失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deletePermission(String permissionId) {
|
||||
try {
|
||||
StoryPermission permission = storyPermissionMapper.selectByPermissionId(permissionId);
|
||||
if (permission == null) {
|
||||
throw new CustomException(ResponseEnum.NOT_FOUND, "权限记录不存在");
|
||||
}
|
||||
storyPermissionMapper.deleteByPermissionId(permissionId);
|
||||
} catch (CustomException e) {
|
||||
throw e;
|
||||
} catch (Exception e) {
|
||||
log.error("删除权限失败", e);
|
||||
throw new CustomException(ResponseEnum.INTERNAL_SERVER_ERROR, "删除权限失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryPermission getPermissionById(String permissionId) {
|
||||
return storyPermissionMapper.selectByPermissionId(permissionId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StoryPermission> getPermissionsByStoryId(String storyInstanceId) {
|
||||
return storyPermissionMapper.selectByStoryInstanceId(storyInstanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StoryPermission> getPermissionsByUserId(String userId) {
|
||||
return storyPermissionMapper.selectByUserId(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoryPermission getPermissionByStoryAndUser(String storyInstanceId, String userId) {
|
||||
return storyPermissionMapper.selectByStoryAndUser(storyInstanceId, userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean checkUserPermission(String storyInstanceId, String userId, Integer requiredPermissionType) {
|
||||
StoryPermission permission = storyPermissionMapper.selectByStoryAndUser(storyInstanceId, userId);
|
||||
if (permission == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 权限类型数字越大权限越高
|
||||
return permission.getPermissionType() >= requiredPermissionType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StoryPermission> getPermissionsByStoryAndType(String storyInstanceId, Integer permissionType) {
|
||||
return storyPermissionMapper.selectByStoryAndPermissionType(storyInstanceId, permissionType);
|
||||
}
|
||||
}
|
|
@ -4,7 +4,9 @@ import com.timeline.common.exception.CustomException;
|
|||
import com.timeline.common.response.ResponseEnum;
|
||||
import com.timeline.story.entity.Story;
|
||||
import com.timeline.story.dao.StoryMapper;
|
||||
import com.timeline.story.service.StoryPermissionService;
|
||||
import com.timeline.story.service.StoryService;
|
||||
import com.timeline.story.vo.StoryPermissionVo;
|
||||
import com.timeline.story.vo.StoryVo;
|
||||
import com.timeline.common.utils.IdUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -21,6 +23,8 @@ public class StoryServiceImpl implements StoryService {
|
|||
@Autowired
|
||||
private StoryMapper storyMapper;
|
||||
|
||||
@Autowired
|
||||
private StoryPermissionService storyPermissionService;
|
||||
@Override
|
||||
public void createStory(StoryVo storyVo) {
|
||||
try {
|
||||
|
@ -35,6 +39,12 @@ public class StoryServiceImpl implements StoryService {
|
|||
story.setLogo(storyVo.getLogo());
|
||||
story.setIsDelete(0);
|
||||
storyMapper.insert(story);
|
||||
// 自动添加创建者权限
|
||||
StoryPermissionVo permissionVo = new StoryPermissionVo();
|
||||
permissionVo.setStoryInstanceId(story.getInstanceId());
|
||||
permissionVo.setUserId(storyVo.getOwnerId());
|
||||
permissionVo.setPermissionType(1); // 创建者权限
|
||||
storyPermissionService.createPermission(permissionVo);
|
||||
} catch (Exception e) {
|
||||
log.error("创建故事失败", e);
|
||||
throw new CustomException(500, "创建故事失败: " + e.toString());
|
||||
|
@ -54,6 +64,11 @@ public class StoryServiceImpl implements StoryService {
|
|||
story.setStatus(storyVo.getStatus());
|
||||
story.setUpdateTime(LocalDateTime.now());
|
||||
story.setLogo(storyVo.getLogo());
|
||||
|
||||
// 如果传入了 updateId,则更新 updateId todo: 使用线程获取用户ID
|
||||
if (storyVo.getOwnerId() != null && !storyVo.getOwnerId().isEmpty()) {
|
||||
story.setUpdateId(storyVo.getOwnerId());
|
||||
}
|
||||
storyMapper.update(story);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package com.timeline.story.vo;
|
||||
|
||||
import com.timeline.common.vo.CommonVo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
|
||||
public class StoryItemVo {
|
||||
public class StoryItemVo extends CommonVo {
|
||||
private String instanceId;
|
||||
private String masterItemId;
|
||||
private String title;
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package com.timeline.story.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class StoryPermissionVo {
|
||||
private String permissionId;
|
||||
private String storyInstanceId;
|
||||
private String userId;
|
||||
private Integer permissionType; // 1-创建者,2-仅查看,3-可新增,4-可管理
|
||||
}
|
|
@ -37,7 +37,7 @@
|
|||
</select>
|
||||
<select id="selectStoryItemByStoryInstanceId" resultType="com.timeline.story.entity.StoryItem">
|
||||
SELECT * FROM story_item WHERE story_instance_id = #{storyInstanceId} AND is_delete = 0
|
||||
ORDER BY story_item_time ASC;
|
||||
ORDER BY story_item_time DESC
|
||||
</select>
|
||||
|
||||
<select id="countByStoryId" resultType="int">
|
||||
|
|
|
@ -25,11 +25,29 @@
|
|||
</delete>
|
||||
|
||||
<select id="selectByInstanceId" resultType="com.timeline.story.entity.Story">
|
||||
SELECT * FROM story WHERE instance_id = #{instanceId}
|
||||
SELECT
|
||||
s.*,
|
||||
u1.user_name as owner_name,
|
||||
u2.user_name as update_name,
|
||||
(SELECT COUNT(*) FROM story_item si WHERE si.story_instance_id = s.instance_id AND si.is_delete = 0) as item_count
|
||||
|
||||
FROM story s
|
||||
|
||||
LEFT JOIN user u1 ON s.owner_id = u1.user_id AND u1.is_deleted = 0
|
||||
LEFT JOIN user u2 ON s.update_id = u2.user_id AND u2.is_deleted = 0
|
||||
WHERE s.instance_id = #{instanceId}
|
||||
</select>
|
||||
|
||||
<select id="selectByOwnerId" resultType="com.timeline.story.entity.Story">
|
||||
SELECT * FROM story WHERE owner_id = #{ownerId} AND is_delete = 0
|
||||
SELECT s.*,
|
||||
u1.user_name as owner_name,
|
||||
u2.user_name as update_name,
|
||||
(SELECT COUNT(*) FROM story_item si WHERE si.story_instance_id = s.instance_id AND si.is_delete = 0) as item_count
|
||||
FROM story s
|
||||
LEFT JOIN user u1
|
||||
ON s.owner_id = u1.user_id AND u1.is_deleted = 0
|
||||
LEFT JOIN user u2 ON s.update_id = u2.user_id AND u2.is_deleted = 0
|
||||
WHERE s.owner_id = #{ownerId} AND s.is_delete = 0
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<?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="com.timeline.story.dao.StoryPermissionMapper">
|
||||
|
||||
<insert id="insert">
|
||||
INSERT INTO story_permission (permission_id, story_instance_id, user_id, permission_type)
|
||||
VALUES (#{permissionId}, #{storyInstanceId}, #{userId}, #{permissionType})
|
||||
</insert>
|
||||
|
||||
<update id="update">
|
||||
UPDATE story_permission
|
||||
SET permission_type = #{permissionType},
|
||||
update_time = NOW()
|
||||
WHERE permission_id = #{permissionId} AND is_deleted = 0
|
||||
</update>
|
||||
|
||||
<update id="deleteByPermissionId">
|
||||
UPDATE story_permission
|
||||
SET is_deleted = 1
|
||||
WHERE permission_id = #{permissionId}
|
||||
</update>
|
||||
|
||||
<select id="selectByPermissionId" resultType="com.timeline.story.entity.StoryPermission">
|
||||
SELECT * FROM story_permission WHERE permission_id = #{permissionId} AND is_deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="selectByStoryInstanceId" resultType="com.timeline.story.entity.StoryPermission">
|
||||
SELECT * FROM story_permission WHERE story_instance_id = #{storyInstanceId} AND is_deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="selectByUserId" resultType="com.timeline.story.entity.StoryPermission">
|
||||
SELECT * FROM story_permission WHERE user_id = #{userId} AND is_deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="selectByStoryAndUser" resultType="com.timeline.story.entity.StoryPermission">
|
||||
SELECT * FROM story_permission
|
||||
WHERE story_instance_id = #{storyInstanceId} AND user_id = #{userId} AND is_deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="selectByStoryAndPermissionType" resultType="com.timeline.story.entity.StoryPermission">
|
||||
SELECT * FROM story_permission
|
||||
WHERE story_instance_id = #{storyInstanceId} AND permission_type = #{permissionType} AND is_deleted = 0
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue