Merge branch 'feature/resource' of https://gitea.qinmian.online/CY/mcwl-ai into preview

feature/my-invitation
ChenYan 2025-01-12 15:59:42 +08:00
commit ca41c38141
21 changed files with 749 additions and 80 deletions

View File

@ -1,77 +0,0 @@
//package com.mcwl.web.controller.comment;
//
//
//import com.mcwl.comment.domain.ProductCommentConditionEntity;
//import com.mcwl.comment.domain.ProductCommentEntity;
//import com.mcwl.comment.service.impl.CommentServiceImpl;
//import com.mcwl.common.utils.ResponsePageEntity;
//import com.mcwl.resource.domain.MallProduct;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import javax.validation.constraints.NotNull;
//import java.util.List;
//
///**
// * @AuthorChenYan
// * @ProjectMcWl
// * @Packagecom.mcwl.web.controller.comment
// * @FilenameCommentController
// * @Description TODO
// * @Date2025/1/4 18:56
// */
//@RestController
//@RequestMapping("/comment")
//public class CommentController {
//
// @Autowired
// private CommentServiceImpl commentService;
//
// /**
// * 通过id查询商品评论信息
// *
// * @param id 系统ID
// * @return 商品评论信息
// */
// @GetMapping("/findById")
// public MallProduct findById(Long id) {
// return commentService.findById(id);
// }
//
//
//
// /**
// * 添加商品评论
// *
// * @param productCommentEntity 商品评论实体
// * @return 影响行数
// */
// @PostMapping("/insert")
// public int insert(@RequestBody ProductCommentEntity productCommentEntity) {
// return commentService.insert(productCommentEntity);
// }
//
// /**
// * 修改商品评论
// *
// * @param productCommentEntity 商品评论实体
// * @return 影响行数
// */
// @PostMapping("/update")
// public int update(@RequestBody ProductCommentEntity productCommentEntity) {
// return commentService.update(productCommentEntity);
// }
//
// /**
// * 批量删除商品评论
// *
// * @param ids 商品评论ID集合
// * @return 影响行数
// */
// @PostMapping("/deleteByIds")
// public int deleteByIds(@RequestBody @NotNull List<Long> ids) {
// return commentService.deleteByIds(ids);
// }
//
//
//}

View File

@ -0,0 +1,42 @@
package com.mcwl.web.controller.pay;
import com.alibaba.fastjson.JSONObject;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import com.alipay.easysdk.payment.facetoface.models.AlipayTradePrecreateResponse;
import com.mcwl.pay.domain.OrderTrade;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
*
*/
@Component
public class AliPayIntegration {
@Autowired
private Config config;
/**
*
*
* @param tradeEntity
* @return url
* @throws Exception
*/
public String pay(OrderTrade tradeEntity) throws Exception {
Factory.setOptions(config);
//调用支付宝的接口
AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace()
.preCreate(tradeEntity.getUserName(),
tradeEntity.getCode(),
tradeEntity.getPaymentAmount().toString());
// AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace().preCreate("订单主题Mac笔记本", "LS123qwe123", "19999");
//参照官方文档响应示例,解析返回结果
String httpBodyStr = payResponse.getHttpBody();
JSONObject jsonObject = JSONObject.parseObject(httpBodyStr);
return jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString();
}
}

View File

@ -0,0 +1,179 @@
package com.mcwl.web.controller.pay;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.payment.common.models.AlipayTradeQueryResponse;
import com.mcwl.common.JSONUtils;
import com.mcwl.common.annotation.Anonymous;
import com.mcwl.common.core.controller.BaseController;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.domain.IdsParam;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.service.OrderTradeService;
import lombok.extern.slf4j.Slf4j;
import com.alipay.easysdk.kernel.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.web.controller.pay
* @FilenameOrderTradeController
* @Description
* @Date2025/1/3 14:46
*/
@Slf4j
@RestController
@RequestMapping("/web/pay")
@Validated
public class OrderTradeController extends BaseController {
@Autowired
private Config config;
@Autowired
private OrderTradeService orderTradeService;
@Autowired
private AliPayIntegration aliPayIntegration;
/**
*
*/
@GetMapping("/list")
public TableDataInfo list(OrderTrade orderTrade)
{
startPage();
List<OrderTrade> list = orderTradeService.selectMallProductList(orderTrade);
return getDataTable(list);
}
/**
*
*/
@PostMapping("/add")
public AjaxResult add(@RequestBody OrderTrade orderTrade)
{
// 获取当前用户
Long userId = SecurityUtils.getUserId();
if (userId == null) {
return AjaxResult.warn("用户未登录");
}
orderTrade.setUserId(userId);
orderTrade.setCreateBy(getUsername());
return toAjax(orderTradeService.insertMallProduct(orderTrade));
}
/**
*
*/
@PostMapping("/upda")
public AjaxResult upda(@RequestBody OrderTrade orderTrade)
{
// 获取当前用户
Long userId = SecurityUtils.getUserId();
if (userId == null) {
return AjaxResult.warn("用户未登录");
}
orderTrade.setUserId(userId);
orderTrade.setUpdateBy(getUsername());
return toAjax(orderTradeService.updateMallProduct(orderTrade));
}
/**
*
*/
@PostMapping
public AjaxResult remove(@RequestBody IdsParam ids)
{
orderTradeService.deleteMallProductByIds(ids);
return success();
}
/**
*
*
* @param tradeEntity
* @param response
* @throws Exception
*/
@Anonymous
@PostMapping("/doPay")
public void doPay(@RequestBody OrderTrade tradeEntity, HttpServletResponse response) throws Exception {
String qrUrl = aliPayIntegration.pay(tradeEntity);
QrCodeUtil.generate(qrUrl, 300, 300, "png", response.getOutputStream());
}
@GetMapping("/queryTradeStatus")
public Object queryTradeStatus(@RequestParam String outTradeNo) throws Exception {
Factory.setOptions(config);
AlipayTradeQueryResponse query = Factory.Payment.Common().query(outTradeNo);
Map<String, Object> map = JSONUtils.jsonToMap(query.getHttpBody());
// 返回交易结果, 是否交易成功需要根据该对象中的 trade_status 来确定
// trade_status 的枚举值如下, 请见 https://opendocs.alipay.com/apis/api_1/alipay.trade.query
// WAIT_BUYER_PAY交易创建等待买家付款
// TRADE_CLOSED未付款交易超时关闭或支付完成后全额退款
// TRADE_SUCCESS交易支付成功
// TRADE_FINISHED交易结束不可退款
// 当 trade_status 等于 TRADE_SUCCESS 或 TRADE_FINISHED 时, 表示支付成功
return map.get("alipay_trade_query_response");
}
/**
*
* @param request
* @return
* @throws Exception
*/
@Anonymous
@PostMapping("/notify") // 注意这里必须是POST接口
public String payNotify(HttpServletRequest request) throws Exception {
log.info("已经进入回调接口");
if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) {
System.out.println("=========支付宝异步回调========");
Map<String, String> params = new HashMap<>();
Map<String, String[]> requestParams = request.getParameterMap();
for (String name : requestParams.keySet()) {
params.put(name, request.getParameter(name));
// System.out.println(name + " = " + request.getParameter(name));
}
String tradeNo = params.get("out_trade_no");
String gmtPayment = params.get("gmt_payment");
String alipayTradeNo = params.get("trade_no");
// 支付宝验签
if (Factory.Payment.Common().verifyNotify(params)) {
// 验签通过
System.out.println("交易名称: " + params.get("subject"));
System.out.println("交易状态: " + params.get("trade_status"));
System.out.println("支付宝交易凭证号: " + params.get("trade_no"));
System.out.println("商户订单号: " + params.get("out_trade_no"));
System.out.println("交易金额: " + params.get("total_amount"));
System.out.println("买家在支付宝唯一id: " + params.get("buyer_id"));
System.out.println("买家付款时间: " + params.get("gmt_payment"));
System.out.println("买家付款金额: " + params.get("buyer_pay_amount"));
// 更新订单状态
}
}
return "success";
}
}

View File

@ -0,0 +1,64 @@
package com.mcwl.web.controller.resource;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.resource.domain.ModelComment;
import com.mcwl.resource.service.ModelCommentLikeService;
import com.mcwl.resource.service.ModelCommentService;
import com.mcwl.resource.service.ModelLikeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.web.controller.resource
* @FilenameModelCommentcontroller
* @Description TODO
* @Date2025/1/12 11:36
*/
@RequestMapping("/ModelComment")
@RestController
public class ModelCommentController {
@Autowired
private ModelLikeService modelLikeService;
@Autowired
private ModelCommentService modelCommentService;
@Autowired
private ModelCommentLikeService modelCommentLikeService;
/**
* /
*/
@GetMapping("/imageLike/{imageId}")
public AjaxResult like(@PathVariable Long imageId) {
modelLikeService.like(imageId);
return AjaxResult.success();
}
/**
*
*/
@PostMapping("/comment")
public AjaxResult comment(@RequestBody ModelComment modelComment) {
modelCommentService.comment(modelComment);
return AjaxResult.success();
}
/**
* /
*/
@GetMapping("/commentLike/{commentId}")
public AjaxResult commentLike(@PathVariable Long commentId) {
modelCommentLikeService.like(commentId);
return AjaxResult.error();
}
}

View File

@ -0,0 +1,48 @@
package com.mcwl.resource.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
*
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("model_comment")
public class ModelComment extends BaseEntity {
@TableId
private Long id;
/**
* id
*/
private Long userId;
/**
* id
*/
private Long modelId;
/**
*
*/
private String content;
/**
* id
*/
private Long parentId;
/**
*
*/
private Integer likeNum;
}

View File

@ -0,0 +1,34 @@
package com.mcwl.resource.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
*
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("model_comment_like")
public class ModelCommentLike extends BaseEntity {
@TableId
private Long id;
/**
* id
*/
private Long userId;
/**
* id
*/
private Long modelCommentId;
}

View File

@ -0,0 +1,31 @@
package com.mcwl.resource.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.*;
/**
*
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName("model_like")
public class ModelLike extends BaseEntity {
@TableId
private Long id;
/**
* id
*/
private Long userId;
/**
* id
*/
private Long modelId;
}

View File

@ -0,0 +1,20 @@
package com.mcwl.resource.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.resource.domain.ModelCommentLike;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.mapper
* @FilenameModelCommentLikeMapper
* @Description TODO
* @Date2025/1/12 12:02
*/
@Mapper
public interface ModelCommentLikeMapper extends BaseMapper<ModelCommentLike> {
ModelCommentLike getLikeComment(@Param("userId") Long userId, @Param("commentId") Long commentId);
}

View File

@ -0,0 +1,17 @@
package com.mcwl.resource.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.resource.domain.ModelComment;
import org.apache.ibatis.annotations.Mapper;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.mapper
* @FilenameModelCommentMapper
* @Description TODO
* @Date2025/1/12 12:04
*/
@Mapper
public interface ModelCommentMapper extends BaseMapper<ModelComment> {
}

View File

@ -0,0 +1,20 @@
package com.mcwl.resource.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.resource.domain.ModelLike;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.mapper
* @FilenameModelLikeMapper
* @Description TODO
* @Date2025/1/12 12:05
*/
@Mapper
public interface ModelLikeMapper extends BaseMapper<ModelLike> {
ModelLike getLike(@Param("userId") Long userId, @Param("modelId") Long modelId);
}

View File

@ -0,0 +1,17 @@
package com.mcwl.resource.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.resource.domain.ModelCommentLike;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service
* @FilenameModelCommentLikeService
* @Description TODO
* @Date2025/1/12 11:58
*/
public interface ModelCommentLikeService extends IService<ModelCommentLike> {
void like(Long commentId);
}

View File

@ -0,0 +1,17 @@
package com.mcwl.resource.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.resource.domain.ModelComment;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service
* @FilenameModelCommentService
* @Description TODO
* @Date2025/1/12 11:58
*/
public interface ModelCommentService extends IService<ModelComment> {
void comment(ModelComment modelComment);
}

View File

@ -0,0 +1,19 @@
package com.mcwl.resource.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.resource.domain.ModelLike;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service
* @FilenameModelLikeService
* @Description TODO
* @Date2025/1/12 11:57
*/
public interface ModelLikeService extends IService<ModelLike> {
void like(Long imageId);
}

View File

@ -18,7 +18,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl

View File

@ -0,0 +1,78 @@
package com.mcwl.resource.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.exception.ServiceException;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.resource.domain.ModelComment;
import com.mcwl.resource.domain.ModelCommentLike;
import com.mcwl.resource.domain.ModelImageComment;
import com.mcwl.resource.domain.ModelImageCommentLike;
import com.mcwl.resource.mapper.ModelCommentLikeMapper;
import com.mcwl.resource.mapper.ModelCommentMapper;
import com.mcwl.resource.mapper.ModelImageCommentMapper;
import com.mcwl.resource.service.ModelCommentLikeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelCommentLikeServiceImpl
* @Description TODO
* @Date2025/1/12 12:01
*/
@Service
public class ModelCommentLikeServiceImpl extends ServiceImpl<ModelCommentLikeMapper,ModelCommentLike> implements ModelCommentLikeService {
@Autowired
private ModelCommentMapper modelCommentMapper;
@Override
@Transactional
public void like(Long commentId) {
ModelComment modelComment = modelCommentMapper.selectById(commentId);
if (Objects.isNull(modelComment)) {
throw new ServiceException("该评论不存在");
}
Long userId = SecurityUtils.getUserId();
ModelCommentLike modelCommentLike = baseMapper.getLikeComment(userId, commentId);
if (Objects.nonNull(modelCommentLike)) {
if (Objects.equals(modelCommentLike.getDelFlag(), "0")) {
modelCommentLike.setDelFlag("1");
modelComment.setLikeNum(modelComment.getLikeNum() - 1);
} else {
modelCommentLike.setDelFlag("0");
modelComment.setLikeNum(modelComment.getLikeNum() + 1);
}
// 更新点赞记录
baseMapper.updateById(modelCommentLike);
// 更新图片评论点赞数
modelCommentMapper.updateById(modelComment);
return;
}
// 添加点赞记录
modelCommentLike = new ModelCommentLike();
modelCommentLike.setUserId(userId);
modelCommentLike.setModelCommentId(commentId);
modelCommentLike.setCreateBy(SecurityUtils.getUsername());
modelCommentLike.setUpdateBy(SecurityUtils.getUsername());
modelCommentLike.setUpdateTime(new Date());
baseMapper.insert(modelCommentLike);
// 更新模型点赞数
modelComment.setLikeNum(modelComment.getLikeNum() + 1);
modelCommentMapper.updateById(modelComment);
}
}

View File

@ -0,0 +1,51 @@
package com.mcwl.resource.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.resource.domain.ModelComment;
import com.mcwl.resource.domain.ModelImageComment;
import com.mcwl.resource.domain.dto.ModelImageCommentRes;
import com.mcwl.resource.mapper.ModelCommentMapper;
import com.mcwl.resource.mapper.ModelImageCommentMapper;
import com.mcwl.resource.mapper.ModelImageMapper;
import com.mcwl.resource.service.ModelCommentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelCommentServiceImpl
* @Description TODO
* @Date2025/1/12 12:03
*/
@Service
public class ModelCommentServiceImpl extends ServiceImpl<ModelCommentMapper, ModelComment> implements ModelCommentService {
@Autowired
private ModelCommentMapper modelCommentMapper;
@Autowired
private ModelImageMapper modelImageMapper;
@Override
public void comment(ModelComment modelComment) {
Long parentId = modelComment.getParentId();
ModelComment mic = modelCommentMapper.selectById(parentId);
if (Objects.nonNull(parentId) && Objects.isNull(mic)) {
return;
}
modelComment.setUserId(SecurityUtils.getUserId());
modelComment.setCreateBy(SecurityUtils.getUsername());
modelComment.setUpdateBy(SecurityUtils.getUsername());
modelComment.setUpdateTime(new Date());
modelCommentMapper.insert(modelComment);
}
}

View File

@ -0,0 +1,71 @@
package com.mcwl.resource.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.exception.ServiceException;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.resource.domain.*;
import com.mcwl.resource.domain.vo.MallProductVo;
import com.mcwl.resource.mapper.MallProductMapper;
import com.mcwl.resource.mapper.ModelLikeMapper;
import com.mcwl.resource.service.ModelLikeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import springfox.documentation.swagger2.mappers.ModelMapper;
import java.util.Date;
import java.util.Objects;
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelLikeServiceImpl
* @Description TODO
* @Date2025/1/12 12:05
*/
@Service
public class ModelLikeServiceImpl extends ServiceImpl<ModelLikeMapper, ModelLike> implements ModelLikeService {
@Autowired
private MallProductMapper mallProductMapper;
@Override
@Transactional
public void like(Long modelId) {
ModelProduct model = mallProductMapper.selectById(modelId);
if (Objects.isNull(model)) {
throw new ServiceException("该模型不存在或已下架");
}
Long userId = SecurityUtils.getUserId();
ModelLike modelLike = baseMapper.getLike(userId, modelId);
if (Objects.nonNull(modelLike)) {
if (Objects.equals(modelLike.getDelFlag(), "0")) {
modelLike.setDelFlag("1");
model.setNumbers(model.getNumbers() - 1);
} else {
modelLike.setDelFlag("0");
model.setNumbers(model.getNumbers() + 1);
}
// 更新点赞记录
baseMapper.updateById(modelLike);
// 更新图片点赞数
mallProductMapper.updateById(model);
return;
}
// 添加点赞记录
modelLike = new ModelLike();
modelLike.setUserId(userId);
modelLike.setModelId(modelId);
modelLike.setCreateBy(SecurityUtils.getUsername());
modelLike.setUpdateBy(SecurityUtils.getUsername());
modelLike.setUpdateTime(new Date());
baseMapper.insert(modelLike);
// 更新图片点赞数
model.setNumbers(model.getNumbers() + 1);
mallProductMapper.updateById(model);
}
}

View File

@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl

View File

@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.resource.service

View File

@ -0,0 +1,19 @@
<?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.mcwl.resource.mapper.ModelCommentLikeMapper">
<select id="getLikeComment" resultType="com.mcwl.resource.domain.ModelCommentLike">
select id,
user_id,
model_comment_id,
create_by,
create_time,
update_by,
update_time,
del_flag,
remark where user_id = #{userId} and model_comment_id = #{commentId}
</select>
</mapper>

View File

@ -0,0 +1,19 @@
<?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.mcwl.resource.mapper.ModelLikeMapper">
<select id="getLike" resultType="com.mcwl.resource.domain.ModelLike">
select id,
user_id,
model_id,
create_by,
create_time,
update_by,
update_time,
del_flag,
remark where user_id = #{userId} and model_id = #{modelId}
</select>
</mapper>