种草点赞修复
This commit is contained in:
parent
9570d4dad2
commit
8c6fb56c3f
@ -112,7 +112,7 @@ public class AppCircleController {
|
|||||||
@Operation(summary = "点赞/取消点赞")
|
@Operation(summary = "点赞/取消点赞")
|
||||||
@PreAuthenticated
|
@PreAuthenticated
|
||||||
public CommonResult<Boolean> doLike(@RequestParam("id") Long lookId){
|
public CommonResult<Boolean> doLike(@RequestParam("id") Long lookId){
|
||||||
circleService.updateLikeCount(lookId);
|
circleService.updateLikeCount(lookId,getLoginUserId());
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城动态 DO
|
||||||
|
*
|
||||||
|
* @author 管理员
|
||||||
|
*/
|
||||||
|
@TableName("promotion_circle_like")
|
||||||
|
@KeySequence("promotion_circle_like_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CircleLikeDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 用户编号
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 种草id
|
||||||
|
*/
|
||||||
|
private Long circleId;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.promotion.dal.mysql.circlelike;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CirclePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circle.CircleDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城动态 Mapper
|
||||||
|
*
|
||||||
|
* @author 管理员
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface CircleLikeMapper extends BaseMapperX<CircleLikeDO> {
|
||||||
|
|
||||||
|
}
|
@ -33,7 +33,7 @@ public interface CircleService {
|
|||||||
void addLookCount(Long circleId);
|
void addLookCount(Long circleId);
|
||||||
|
|
||||||
//点赞/取消点赞
|
//点赞/取消点赞
|
||||||
void updateLikeCount(Long circleId);
|
void updateLikeCount(Long circleId,Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除商城动态
|
* 删除商城动态
|
||||||
@ -58,4 +58,4 @@ public interface CircleService {
|
|||||||
*/
|
*/
|
||||||
PageResult<CircleDO> getCirclePage(CirclePageReqVO pageReqVO);
|
PageResult<CircleDO> getCirclePage(CirclePageReqVO pageReqVO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.promotion.service.circle;
|
package cn.iocoder.yudao.module.promotion.service.circle;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.service.circlelike.CircleLikeService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -29,6 +31,9 @@ public class CircleServiceImpl implements CircleService {
|
|||||||
@Resource
|
@Resource
|
||||||
private CircleMapper circleMapper;
|
private CircleMapper circleMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CircleLikeService circleLikeService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createCircle(CircleSaveReqVO createReqVO) {
|
public Long createCircle(CircleSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -55,9 +60,20 @@ public class CircleServiceImpl implements CircleService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateLikeCount(Long circleId) {
|
public void updateLikeCount(Long circleId,Long userId) {
|
||||||
CircleDO circleDO = circleMapper.selectOne("id", circleId);
|
CircleDO circleDO = circleMapper.selectOne("id", circleId);
|
||||||
circleDO.setLookCount(circleDO.getLikeCount() + 1);
|
CircleLikeDO circleLikeDO = circleLikeService.getCircleLike(circleId,userId);
|
||||||
|
if (circleLikeDO != null){
|
||||||
|
circleLikeService.deleteCircleLike(circleLikeDO.getId());
|
||||||
|
circleDO.setLikeCount(circleDO.getLikeCount() - 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
circleDO.setLikeCount(circleDO.getLikeCount() + 1);
|
||||||
|
circleLikeDO = new CircleLikeDO();
|
||||||
|
circleLikeDO.setCircleId(circleId);
|
||||||
|
circleLikeDO.setUserId(userId);
|
||||||
|
circleLikeService.createCircleLike(circleLikeDO);
|
||||||
|
}
|
||||||
circleMapper.updateById(circleDO);
|
circleMapper.updateById(circleDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,4 +101,4 @@ public class CircleServiceImpl implements CircleService {
|
|||||||
return circleMapper.selectPage(pageReqVO);
|
return circleMapper.selectPage(pageReqVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
package cn.iocoder.yudao.module.promotion.service.circlelike;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CirclePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CircleSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circle.CircleDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城动态 Service 接口
|
||||||
|
*
|
||||||
|
* @author 管理员
|
||||||
|
*/
|
||||||
|
public interface CircleLikeService {
|
||||||
|
|
||||||
|
|
||||||
|
CircleLikeDO getCircleLike(Long circleId, Long userId);
|
||||||
|
|
||||||
|
void deleteCircleLike(Long id);
|
||||||
|
|
||||||
|
void createCircleLike(CircleLikeDO circleLikeDO);
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package cn.iocoder.yudao.module.promotion.service.circlelike;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CirclePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.controller.admin.circle.vo.CircleSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circle.CircleDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.circlelike.CircleLikeDO;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.mysql.circle.CircleMapper;
|
||||||
|
import cn.iocoder.yudao.module.promotion.dal.mysql.circlelike.CircleLikeMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.CIRCLE_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商城动态 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 管理员
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class CircleLikeServiceImpl implements CircleLikeService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CircleLikeMapper circleLikeMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CircleLikeDO getCircleLike(Long circleId, Long userId) {
|
||||||
|
CircleLikeDO circleLikeDO = circleLikeMapper.selectOne(new LambdaQueryWrapper<CircleLikeDO>()
|
||||||
|
.eq(CircleLikeDO::getCircleId,circleId)
|
||||||
|
.eq(CircleLikeDO::getUserId,userId)
|
||||||
|
.eq(BaseDO::getDeleted,false));
|
||||||
|
return circleLikeDO;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteCircleLike(Long id) {
|
||||||
|
circleLikeMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createCircleLike(CircleLikeDO circleLikeDO) {
|
||||||
|
circleLikeMapper.insert(circleLikeDO);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user