serv-学习管理
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.xyzh.news.controller;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -13,6 +14,7 @@ import org.xyzh.common.core.page.PageParam;
|
||||
import org.xyzh.common.core.page.PageRequest;
|
||||
import org.xyzh.common.dto.resource.TbResource;
|
||||
import org.xyzh.common.dto.user.TbSysUser;
|
||||
import org.xyzh.common.dto.usercenter.TbUserCollection;
|
||||
import org.xyzh.common.utils.TimeUtils;
|
||||
import org.xyzh.common.vo.ResourceVO;
|
||||
import org.xyzh.system.utils.LoginUtil;
|
||||
@@ -137,9 +139,9 @@ public class ResourceController {
|
||||
/**
|
||||
* 增加收藏次数
|
||||
*/
|
||||
@PostMapping("/resource/{resourceID}/collect")
|
||||
public ResultDomain<TbResource> incrementCollectCount(@PathVariable("resourceID") String resourceID) {
|
||||
return resourceService.incrementCollectCount(resourceID);
|
||||
@PostMapping("/resource/collect")
|
||||
public ResultDomain<TbResource> resourceCollect(@RequestBody TbUserCollection collection) {
|
||||
return resourceService.resourceCollect(collection);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -163,4 +163,14 @@ public interface ResourceMapper extends BaseMapper<TbResource> {
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
long countResources(TbResource filter);
|
||||
|
||||
/**
|
||||
* @description 更新资源收藏次数
|
||||
* @param resourceID 资源ID
|
||||
* @param collectionValue 收藏次数
|
||||
* @return int 影响行数
|
||||
* @author yslg
|
||||
* @since 2025-10-15
|
||||
*/
|
||||
int updateResourceCollectCount(@Param("resourceID") String resourceID, @Param("collectionValue") Integer collectionValue);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.xyzh.common.dto.resource.TbResource;
|
||||
import org.xyzh.common.dto.resource.TbResourceTag;
|
||||
import org.xyzh.common.dto.resource.TbTag;
|
||||
import org.xyzh.common.dto.user.TbSysUser;
|
||||
import org.xyzh.common.dto.usercenter.TbUserCollection;
|
||||
import org.xyzh.common.utils.IDUtils;
|
||||
import org.xyzh.common.vo.ResourceVO;
|
||||
import org.xyzh.common.vo.TagVO;
|
||||
@@ -20,6 +21,7 @@ import org.xyzh.news.mapper.ResourceMapper;
|
||||
import org.xyzh.news.mapper.ResourceTagMapper;
|
||||
import org.xyzh.system.utils.LoginUtil;
|
||||
import org.xyzh.api.news.resource.ResourceService;
|
||||
import org.xyzh.api.usercenter.collection.UserCollectionService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
@@ -44,6 +46,9 @@ public class NCResourceServiceImpl implements ResourceService {
|
||||
@Autowired
|
||||
private ResourceTagMapper resourceTagMapper;
|
||||
|
||||
@Autowired
|
||||
private UserCollectionService userCollectionService;
|
||||
|
||||
@Override
|
||||
public ResultDomain<TbResource> getResourceList(TbResource filter) {
|
||||
ResultDomain<TbResource> resultDomain = new ResultDomain<>();
|
||||
@@ -530,36 +535,57 @@ public class NCResourceServiceImpl implements ResourceService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResultDomain<TbResource> incrementCollectCount(String resourceID) {
|
||||
public ResultDomain<TbResource> resourceCollect(TbUserCollection collection) {
|
||||
String resourceID = collection.getCollectionID();
|
||||
Integer collectionValue = collection.getCollectionValue();
|
||||
ResultDomain<TbResource> resultDomain = new ResultDomain<>();
|
||||
TbSysUser user = LoginUtil.getCurrentUser();
|
||||
if (user == null) {
|
||||
resultDomain.fail("请先登录");
|
||||
return resultDomain;
|
||||
}
|
||||
collection.setUserID(user.getID());
|
||||
try {
|
||||
// 参数验证
|
||||
if (!StringUtils.hasText(resourceID)) {
|
||||
resultDomain.fail("资源ID不能为空");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 查询资源
|
||||
TbResource resource = resourceMapper.selectByResourceId(resourceID);
|
||||
if (resource == null || resource.getDeleted()) {
|
||||
resultDomain.fail("资源不存在");
|
||||
if (collectionValue != 1 && collectionValue != -1) {
|
||||
resultDomain.fail("收藏值错误");
|
||||
return resultDomain;
|
||||
}
|
||||
|
||||
// 增加收藏次数
|
||||
Integer currentCount = resource.getCollectCount() != null ? resource.getCollectCount() : 0;
|
||||
resource.setCollectCount(currentCount + 1);
|
||||
resource.setUpdateTime(new Date());
|
||||
|
||||
int result = resourceMapper.updateResource(resource);
|
||||
if (result > 0) {
|
||||
logger.info("增加资源收藏次数成功: {}", resourceID);
|
||||
// 重新查询返回完整数据
|
||||
TbResource updated = resourceMapper.selectById(resource.getID());
|
||||
resultDomain.success("增加收藏次数成功", updated);
|
||||
ResultDomain<Boolean> isCollected = userCollectionService.isCollected(user.getID(), collection.getCollectionType(), resourceID);
|
||||
TbResource resource = new TbResource();
|
||||
resource.setResourceID(resourceID);
|
||||
if (isCollected.isSuccess() && isCollected.getData() && collectionValue == 1) {
|
||||
resultDomain.success("已收藏", resource);
|
||||
return resultDomain;
|
||||
} else {
|
||||
resultDomain.fail("增加收藏次数失败");
|
||||
}
|
||||
else if (isCollected.isSuccess() && isCollected.getData() && collectionValue == -1) {
|
||||
ResultDomain<Boolean> removeCollection = userCollectionService.removeCollection(user.getID(), collection.getCollectionType(), resourceID);
|
||||
if (removeCollection.isSuccess()) {
|
||||
resourceMapper.updateResourceCollectCount(resourceID, -1);
|
||||
resultDomain.success("已取消收藏", resource);
|
||||
return resultDomain;
|
||||
} else {
|
||||
resultDomain.fail("取消收藏失败");
|
||||
return resultDomain;
|
||||
}
|
||||
}else if (isCollected.isSuccess() && !isCollected.getData() && collectionValue == 1) {
|
||||
collection.setID(IDUtils.generateID());
|
||||
collection.setCreateTime(new Date());
|
||||
ResultDomain<TbUserCollection> addCollection = userCollectionService.addCollection(collection);
|
||||
if (addCollection.isSuccess() && addCollection.getData() != null) {
|
||||
resourceMapper.updateResourceCollectCount(resourceID, 1);
|
||||
resultDomain.success("已收藏", resource);
|
||||
return resultDomain;
|
||||
} else {
|
||||
resultDomain.fail("收藏失败");
|
||||
return resultDomain;
|
||||
}
|
||||
}else {
|
||||
resultDomain.success("未收藏", resource);
|
||||
return resultDomain;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -303,4 +303,11 @@
|
||||
<include refid="Where_Clause" />
|
||||
</select>
|
||||
|
||||
<!-- updateResourceCollectCount -->
|
||||
|
||||
<update id="updateResourceCollectCount">
|
||||
UPDATE tb_resource
|
||||
SET collect_count = collect_count + #{collectionValue}
|
||||
WHERE resource_id = #{resourceID}
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user