Merge remote-tracking branch 'origin/preview' into preview

master
ChenYan 2025-01-21 19:34:50 +08:00
commit 019ff6943f
21 changed files with 387 additions and 151 deletions

View File

@ -2,13 +2,16 @@ package com.mcwl.web.controller.communityCenter;
import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.communityCenter.domain.dto.QuestionDetailRes; import com.mcwl.communityCenter.domain.dto.QuestionDetailRes;
import com.mcwl.communityCenter.domain.dto.QuestionPageRes; import com.mcwl.communityCenter.domain.dto.QuestionPageRes;
import com.mcwl.communityCenter.domain.dto.QuestionReplyRes; import com.mcwl.communityCenter.domain.dto.QuestionReplyRes;
import com.mcwl.communityCenter.domain.dto.QuestionRes; import com.mcwl.communityCenter.domain.dto.QuestionRes;
import com.mcwl.communityCenter.domain.vo.QuestionVo; import com.mcwl.communityCenter.domain.vo.QuestionVo;
import com.mcwl.communityCenter.service.QuestionService; import com.mcwl.communityCenter.service.QuestionService;
import com.mcwl.system.service.ISysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -30,6 +33,8 @@ public class QuestionController {
private final QuestionService questionService; private final QuestionService questionService;
private final ISysUserService sysUserService;
/** /**
* *
*/ */
@ -37,6 +42,28 @@ public class QuestionController {
@ApiOperation(value = "提问") @ApiOperation(value = "提问")
public AjaxResult addQuestion(@RequestBody @Valid QuestionRes questionRes) { public AjaxResult addQuestion(@RequestBody @Valid QuestionRes questionRes) {
// 提问类型
Integer type = questionRes.getType();
// 付费金额
Double amount = questionRes.getAmount();
// 类型为1时付费金额不能为空
if (Objects.equals(type, 1) && Objects.isNull(amount)) {
return AjaxResult.error("付费金额不能为空");
}
// 付费类型为1时判断钱包余额是否充足
if (Objects.equals(type, 1)) {
Long userId = SecurityUtils.getUserId();
SysUser sysUser = sysUserService.selectUserById(userId);
Double wallet = sysUser.getWallet();
if (wallet < amount) {
return AjaxResult.error("钱包余额不足");
}
} else {
questionRes.setAmount(0.0);
}
return questionService.addQuestion(questionRes); return questionService.addQuestion(questionRes);
@ -76,16 +103,16 @@ public class QuestionController {
return AjaxResult.success(questionVo); return AjaxResult.success(questionVo);
} }
/** // /**
* // * 回复
*/ // */
@PostMapping("reply") // @PostMapping("reply")
@ApiOperation(value = "回复") // @ApiOperation(value = "回复")
public AjaxResult reply(@RequestBody @Valid QuestionReplyRes questionReplyRes) { // public AjaxResult reply(@RequestBody @Valid QuestionReplyRes questionReplyRes) {
//
return questionService.reply(questionReplyRes); // return questionService.reply(questionReplyRes);
//
} // }
} }

View File

@ -115,6 +115,11 @@ public class SysUser extends BaseEntity
*/ */
private Double freePoints; private Double freePoints;
/**
* -
*/
private Double wallet;
public SysUser() public SysUser()
{ {
@ -364,6 +369,14 @@ public class SysUser extends BaseEntity
this.freePoints = freePoints; this.freePoints = freePoints;
} }
public Double getWallet() {
return wallet;
}
public void setWallet(Double wallet) {
this.wallet = wallet;
}
@Override @Override
public String toString() { public String toString() {
return "SysUser{" + return "SysUser{" +

View File

@ -27,7 +27,12 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
@Override @Override
public void updateFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject); try {
String username = SecurityUtils.getUsername();
this.setFieldValByName("updateBy", username, metaObject);
} catch (Exception e) {
this.setFieldValByName("updateBy", "", metaObject);
}
this.setFieldValByName("updateTime", new Date(), metaObject); this.setFieldValByName("updateTime", new Date(), metaObject);
} }
} }

View File

@ -11,6 +11,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
/** /**
@ -23,64 +24,67 @@ import java.util.Date;
public class Question extends BaseEntity { public class Question extends BaseEntity {
@TableId @TableId
@ApiModelProperty(value = "id")
private Long id; private Long id;
/** /**
* id - id * id - id
*/ */
@ApiModelProperty(value = "用户id - 租户id")
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
private Long tenantId; private Long tenantId;
/** /**
* id * id
*/ */
@ApiModelProperty(value = "社区id")
private Long communityId; private Long communityId;
/** /**
* id * id
*/ */
@ApiModelProperty(value = "提问用户id")
private Long questionUserId; private Long questionUserId;
/** /**
* *
*/ */
@ApiModelProperty(value = "提问内容")
private String content; private String content;
/** /**
* *
*/ */
@ApiModelProperty(value = "提问图片")
private String questionUrl; private String questionUrl;
/** // /**
* // * 回复内容
*/ // */
@ApiModelProperty(value = "答复内容") // @ApiModelProperty(value = "答复内容")
private String reply; // private String reply;
//
/** // /**
* // * 回复时间
*/ // */
@ApiModelProperty(value = "答复时间") // @ApiModelProperty(value = "答复时间")
private Date replyTime; // private Date replyTime;
/** /**
* *
*/ */
@ApiModelProperty(value = "是否匿名")
private Integer isAnonymous; private Integer isAnonymous;
// /**
// * 状态
// */
// @ApiModelProperty(value = "状态")
// private Integer status;
/** /**
* * 0 1
*/ */
@ApiModelProperty(value = "状态") private Integer type;
private Integer status;
/**
*
*/
private Double amount;

View File

@ -0,0 +1,50 @@
package com.mcwl.communityCenter.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_question_comment")
public class QuestionComment extends BaseEntity {
@TableId
private String id;
/**
* id
*/
private String tenantId;
/**
* id
*/
private String communityId;
/**
* id
*/
private String questionId;
/**
* id
*/
private String userId;
/**
*
*/
private String content;
/**
*
*/
private String isAccept;
}

View File

@ -22,7 +22,7 @@ public class QuestionPageRes extends PageDomain {
@ApiModelProperty(value = "社区id", required = true) @ApiModelProperty(value = "社区id", required = true)
private Long communityId; private Long communityId;
@ApiModelProperty(value = "状态") // @ApiModelProperty(value = "状态")
private Integer status; // private Integer status;
} }

View File

@ -1,6 +1,7 @@
package com.mcwl.communityCenter.domain.dto; package com.mcwl.communityCenter.domain.dto;
import com.fasterxml.jackson.annotation.JsonView;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -44,9 +45,24 @@ public class QuestionRes {
/** /**
* 0 1 * 0 1
*/ */
//swagger给上默认值
@ApiModelProperty(value = "是否匿名", position = 5) @ApiModelProperty(value = "是否匿名", position = 5)
@NotNull(message = "是否匿名不能为空")
private Integer isAnonymous = 0; private Integer isAnonymous = 0;
/**
* 0 1
*/
@ApiModelProperty(value = "提问类型 0免费 1付费", required = true, position = 6)
@NotNull(message = "提问类型不能为空")
private Integer type;
/**
*
*/
@ApiModelProperty(value = "付费金额,当提问类型为1时必填")
private Double amount;
} }

View File

@ -9,7 +9,7 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
/** /**
* *
*/ */
@Data @Data
@TableName("cc_community") @TableName("cc_community")

View File

@ -59,23 +59,23 @@ public class QuestionVo {
@ApiModelProperty(value = "提问时间") @ApiModelProperty(value = "提问时间")
private Date createTime; private Date createTime;
/** // /**
* id // * 答复用户id
*/ // */
@ApiModelProperty(value = "答复用户id") // @ApiModelProperty(value = "答复用户id")
private Long replyUserId; // private Long replyUserId;
//
/** // /**
* // * 回复内容
*/ // */
@ApiModelProperty(value = "回复内容") // @ApiModelProperty(value = "回复内容")
private String reply; // private String reply;
//
/** // /**
* // * 回复时间
*/ // */
@ApiModelProperty(value = "回复时间") // @ApiModelProperty(value = "回复时间")
private Date replyTime; // private Date replyTime;
/** /**
* *
@ -83,6 +83,16 @@ public class QuestionVo {
@ApiModelProperty(value = "是否匿名") @ApiModelProperty(value = "是否匿名")
private Integer isAnonymous; private Integer isAnonymous;
/**
* 0 1
*/
private Integer type;
/**
*
*/
private Double amount;

View File

@ -19,9 +19,7 @@ public interface QuestionMapper extends BaseMapper<Question> {
Long tenantId, Long tenantId,
@NotNull(message = "社区不能为空") @NotNull(message = "社区不能为空")
@Param("communityId") @Param("communityId")
Long communityId, Long communityId);
@Param("status")
Integer status);
@InterceptorIgnore(tenantLine = "true") @InterceptorIgnore(tenantLine = "true")
Question selectByIdAndTenantIdAndCommunityId(@Param("id") Question selectByIdAndTenantIdAndCommunityId(@Param("id")
@ -38,7 +36,5 @@ public interface QuestionMapper extends BaseMapper<Question> {
Long tenantId, Long tenantId,
@NotNull(message = "社区不能为空") @NotNull(message = "社区不能为空")
@Param("communityId") @Param("communityId")
Long communityId, Long communityId);
@Param("status")
Integer status);
} }

View File

@ -26,11 +26,11 @@ public interface QuestionService extends IService<Question> {
QuestionVo getDetail(QuestionDetailRes questionDetailRes); QuestionVo getDetail(QuestionDetailRes questionDetailRes);
/** // /**
* // * 回复问题
* @param questionReplyRes // * @param questionReplyRes 回复信息
*/ // */
AjaxResult reply(QuestionReplyRes questionReplyRes); // AjaxResult reply(QuestionReplyRes questionReplyRes);
TableDataInfo listImage(@Valid QuestionPageRes questionPageRes); TableDataInfo listImage(@Valid QuestionPageRes questionPageRes);
} }

View File

@ -70,30 +70,30 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
return AjaxResult.error("租户或社区不存在"); return AjaxResult.error("租户或社区不存在");
} }
if (Objects.equals(tenantId, userId)) { // if (Objects.equals(tenantId, userId)) {
return AjaxResult.error("您不能提问自己的问题"); // return AjaxResult.error("您不能提问自己的问题");
} // }
//提问人userId是否在社区中 //提问人userId是否在社区中
Invite invite = inviteMapper.selectByTenantIdAndCommunityIdAndInviteeUserId(tenantId, communityId, userId); // Invite invite = inviteMapper.selectByTenantIdAndCommunityIdAndInviteeUserId(tenantId, communityId, userId);
if (Objects.isNull(invite)) { // if (Objects.isNull(invite)) {
return AjaxResult.error("您不是该社区成员,不能提问"); // return AjaxResult.error("您不是该社区成员,不能提问");
} // }
Question question = new Question(); Question question = new Question();
BeanUtil.copyProperties(questionRes, question); BeanUtil.copyProperties(questionRes, question);
question.setQuestionUserId(userId); question.setQuestionUserId(userId);
question.setStatus(StatusConstant.STATUS_UNREPLIED); // question.setStatus(StatusConstant.STATUS_UNREPLIED);
baseMapper.insert(question); baseMapper.insert(question);
CommunityAdvice communityAdvice = new CommunityAdvice(); // CommunityAdvice communityAdvice = new CommunityAdvice();
communityAdvice.setTenantId(tenantId); // communityAdvice.setTenantId(tenantId);
communityAdvice.setCommunityId(communityId); // communityAdvice.setCommunityId(communityId);
communityAdvice.setUserId(tenantId); // communityAdvice.setUserId(tenantId);
communityAdvice.setTitle("您有新的问题"); // communityAdvice.setTitle("您有新的问题");
communityAdvice.setContent(questionRes.getContent()); // communityAdvice.setContent(questionRes.getContent());
communityAdviceMapper.insert(communityAdvice); // communityAdviceMapper.insert(communityAdvice);
return AjaxResult.success(); return AjaxResult.success();
@ -105,7 +105,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
Page<Question> page = initPage(questionPageRes); Page<Question> page = initPage(questionPageRes);
baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId(), questionPageRes.getStatus()); // baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId(), questionPageRes.getStatus());
baseMapper.list(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId());
// 获取分页数据 // 获取分页数据
List<Question> questionList = page.getRecords(); List<Question> questionList = page.getRecords();
@ -153,43 +154,44 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
return questionVo; return questionVo;
} }
/** // /**
* // * 回复问题
* // *
* @param questionReplyRes // * @param questionReplyRes 回复信息
*/ // */
@Override // @Override
public AjaxResult reply(QuestionReplyRes questionReplyRes) { // public AjaxResult reply(QuestionReplyRes questionReplyRes) {
//
Long communityId = questionReplyRes.getCommunityId(); // Long communityId = questionReplyRes.getCommunityId();
Long questionId = questionReplyRes.getQuestionId(); // Long questionId = questionReplyRes.getQuestionId();
LambdaQueryWrapper<Question> lqw = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<Question> lqw = new LambdaQueryWrapper<>();
lqw.eq(Question::getId, questionId) // lqw.eq(Question::getId, questionId)
.eq(Question::getCommunityId, communityId) // .eq(Question::getCommunityId, communityId)
.eq(Question::getStatus, StatusConstant.STATUS_UNREPLIED); // .eq(Question::getStatus, StatusConstant.STATUS_UNREPLIED);
//
// 查询问题信息 // // 查询问题信息
Question question = baseMapper.selectOne(lqw); // Question question = baseMapper.selectOne(lqw);
//
if (Objects.isNull(question)) { // if (Objects.isNull(question)) {
return AjaxResult.error("问题不存在或已被回复"); // return AjaxResult.error("问题不存在或已被回复");
} // }
//
question.setReply(questionReplyRes.getReply()); // question.setReply(questionReplyRes.getReply());
question.setStatus(StatusConstant.STATUS_REPLIED); // question.setStatus(StatusConstant.STATUS_REPLIED);
question.setReplyTime(new Date()); // question.setReplyTime(new Date());
//
baseMapper.updateById(question); // baseMapper.updateById(question);
return AjaxResult.success(); // return AjaxResult.success();
//
} // }
@Override @Override
public TableDataInfo listImage(QuestionPageRes questionPageRes) { public TableDataInfo listImage(QuestionPageRes questionPageRes) {
Page<Question> page = initPage(questionPageRes); Page<Question> page = initPage(questionPageRes);
baseMapper.listImage(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId(), questionPageRes.getStatus()); // baseMapper.listImage(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId(), questionPageRes.getStatus());
baseMapper.listImage(page, questionPageRes.getTenantId(), questionPageRes.getCommunityId());
// 获取分页数据 // 获取分页数据
List<Question> questionList = page.getRecords(); List<Question> questionList = page.getRecords();

View File

@ -6,17 +6,31 @@
<select id="list" resultType="com.mcwl.communityCenter.domain.Question"> <select id="list" resultType="com.mcwl.communityCenter.domain.Question">
select id, tenant_id, community_id, question_user_id, content,question_url, reply,reply_time,is_anonymous,status select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
type
from cc_question from cc_question
where del_flag = '0' where del_flag = '0'
and tenant_id = #{tenantId} and tenant_id = #{tenantId}
and community_id = #{communityId} and community_id = #{communityId}
<if test="status != null"> order by amount desc, create_time desc
and status= #{status}
</if>
</select> </select>
<select id="selectByIdAndTenantIdAndCommunityId" resultType="com.mcwl.communityCenter.domain.Question"> <select id="selectByIdAndTenantIdAndCommunityId" resultType="com.mcwl.communityCenter.domain.Question">
select id, tenant_id, community_id, question_user_id, content,question_url, reply,reply_time,is_anonymous,status select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
type
from cc_question from cc_question
where id = #{id} where id = #{id}
and tenant_id = #{tenantId} and tenant_id = #{tenantId}
@ -24,14 +38,20 @@
and del_flag = '0' and del_flag = '0'
</select> </select>
<select id="listImage" resultType="com.mcwl.communityCenter.domain.Question"> <select id="listImage" resultType="com.mcwl.communityCenter.domain.Question">
select id, tenant_id, community_id, question_user_id, content,question_url, reply,reply_time,is_anonymous,status select id,
tenant_id,
community_id,
question_user_id,
content,
question_url,
is_anonymous,
amount,
type
from cc_question from cc_question
where del_flag = '0' where del_flag = '0'
and tenant_id = #{tenantId} and tenant_id = #{tenantId}
and community_id = #{communityId} and community_id = #{communityId}
<if test="status != null">
and status= #{status}
</if>
and question_url is not null and question_url is not null
order by amount desc, create_time desc
</select> </select>
</mapper> </mapper>

View File

@ -24,12 +24,7 @@ import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;
/** /**
* @AuthorChenYan *
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelCommentLikeServiceImpl
* @Description TODO
* @Date2025/1/12 12:01
*/ */
@Service @Service
public class ModelCommentLikeServiceImpl extends ServiceImpl<ModelCommentLikeMapper,ModelCommentLike> implements ModelCommentLikeService { public class ModelCommentLikeServiceImpl extends ServiceImpl<ModelCommentLikeMapper,ModelCommentLike> implements ModelCommentLikeService {

View File

@ -25,12 +25,7 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
* @AuthorChenYan *
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelCommentServiceImpl
* @Description TODO
* @Date2025/1/12 12:03
*/ */
@Service @Service
public class ModelCommentServiceImpl extends ServiceImpl<ModelCommentMapper, ModelComment> implements ModelCommentService { public class ModelCommentServiceImpl extends ServiceImpl<ModelCommentMapper, ModelComment> implements ModelCommentService {

View File

@ -19,6 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.Date; import java.util.Date;
import java.util.Objects; import java.util.Objects;
/**
*
*/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ModelImageCommentLikeServiceImpl extends ServiceImpl<ModelImageCommentLikeMapper, ModelImageCommentLike> implements ModelImageCommentLikeService { public class ModelImageCommentLikeServiceImpl extends ServiceImpl<ModelImageCommentLikeMapper, ModelImageCommentLike> implements ModelImageCommentLikeService {

View File

@ -22,6 +22,9 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
/**
*
*/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ModelImageCommentServiceImpl extends ServiceImpl<ModelImageCommentMapper, ModelImageComment> implements ModelImageCommentService { public class ModelImageCommentServiceImpl extends ServiceImpl<ModelImageCommentMapper, ModelImageComment> implements ModelImageCommentService {

View File

@ -18,6 +18,9 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
/**
*
*/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ModelImageLikeServiceImpl extends ServiceImpl<ModelImageLikeMapper, ModelImageLike> implements ModelImageLikeService { public class ModelImageLikeServiceImpl extends ServiceImpl<ModelImageLikeMapper, ModelImageLike> implements ModelImageLikeService {

View File

@ -1,6 +1,8 @@
package com.mcwl.resource.service.impl; package com.mcwl.resource.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -11,6 +13,7 @@ import com.mcwl.common.core.domain.entity.SysUser;
import com.mcwl.common.core.page.TableDataInfo; import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.common.utils.StringUtils; import com.mcwl.common.utils.StringUtils;
import com.mcwl.common.utils.baidu.BaiduCensor;
import com.mcwl.resource.domain.ModelImage; import com.mcwl.resource.domain.ModelImage;
import com.mcwl.resource.domain.dto.ModelImagePageRes; import com.mcwl.resource.domain.dto.ModelImagePageRes;
import com.mcwl.resource.domain.dto.ModelImageRes; import com.mcwl.resource.domain.dto.ModelImageRes;
@ -22,12 +25,17 @@ import com.mcwl.system.init.DictInit;
import com.mcwl.system.service.ISysDictDataService; import com.mcwl.system.service.ISysDictDataService;
import com.mcwl.system.service.ISysUserService; import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class ModelImageServiceImpl extends ServiceImpl<ModelImageMapper, ModelImage> implements ModelImageService { public class ModelImageServiceImpl extends ServiceImpl<ModelImageMapper, ModelImage> implements ModelImageService {
@ -40,6 +48,8 @@ public class ModelImageServiceImpl extends ServiceImpl<ModelImageMapper, ModelIm
private final ISysDictDataService sysDictDataService; private final ISysDictDataService sysDictDataService;
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@Override @Override
@ -50,6 +60,7 @@ public class ModelImageServiceImpl extends ServiceImpl<ModelImageMapper, ModelIm
ModelImage modelImage = new ModelImage(); ModelImage modelImage = new ModelImage();
BeanUtil.copyProperties(modelImageRes, modelImage); BeanUtil.copyProperties(modelImageRes, modelImage);
modelImageMapper.updateById(modelImage); modelImageMapper.updateById(modelImage);
audit(modelImage);
} }
@Override @Override
@ -61,11 +72,98 @@ public class ModelImageServiceImpl extends ServiceImpl<ModelImageMapper, ModelIm
modelImage.setStatus(3); modelImage.setStatus(3);
modelImageMapper.insert(modelImage); modelImageMapper.insert(modelImage);
audit(modelImage);
} }
private void audit(ModelImage modelImage) {
// 执行审核操作
threadPoolTaskExecutor.execute(() -> {
if (modelImage != null) {
if (modelImage.getTitle() != null) {
//审核名称
String s = BaiduCensor.TextCensor(modelImage.getTitle() + "," + modelImage.getTags() + ","
+ modelImage.getDescription());
// 解析 JSON 字符串
JSONObject jsonObject = JSONObject.parseObject(s);
// 获取 'conclusion' 字段的值
String conclusion = jsonObject.getString("conclusion");
if (conclusion.equals("不合规")) {
//更改状态,添加原因 -> 结束任务
// 获取 'data' 数组
JSONArray dataArray = jsonObject.getJSONArray("data");
// 存储所有的失败原因
List<String> failureReasons = new ArrayList<>();
// 遍历 'data' 数组中的每个元素
for (Object itemObj : dataArray) {
JSONObject item = (JSONObject) itemObj;
String msg = item.getString("msg");
failureReasons.add(msg);
}
// 使用逗号拼接所有的失败原因
String concatenatedReasons = String.join(", ", failureReasons);
modelImage.setAuditText(concatenatedReasons);
//修改状态以及失败原因
modelImage.setStatus(4);
log.info("执行111");
modelImageMapper.updateById(modelImage);
log.info("图片审核未通过");
//结束任务
return;
}
//修改为合格
modelImage.setAuditText("");
modelImage.setStatus(1);
baseMapper.updateById(modelImage);
}
}
if (modelImage.getImagePaths() == null) {
return;
}
//审核图片
String[] split = modelImage.getImagePaths().split(",");
for (String path : split) {
String s2 = BaiduCensor.ImageCnesor(path);
JSONObject jsonObject2 = JSONObject.parseObject(s2);
if (jsonObject2.getString("conclusion").equals("不合规")) {
//修改状态->跳出循环 判断下一个版本
// 获取 'data' 数组
JSONArray dataArray2 = jsonObject2.getJSONArray("data");
// 存储所有的失败原因
List<String> failureReasons = new ArrayList<>();
// 遍历 'data' 数组中的每个元素
for (Object itemObj : dataArray2) {
JSONObject item = (JSONObject) itemObj;
String msg = item.getString("msg");
failureReasons.add(msg);
}
// 使用逗号拼接所有的失败原因
String concatenatedReasons = String.join(", ", failureReasons);
modelImage.setAuditText(concatenatedReasons);
modelImage.setStatus(4);
baseMapper.updateById(modelImage);
log.info("图片审核未通过");
return;
}
}
//修改版本成功审核状态
modelImage.setAuditText("");
modelImage.setStatus(1);
baseMapper.updateById(modelImage);
log.info("全部通过审核");
});
}
/** /**

View File

@ -15,12 +15,7 @@ import java.util.Date;
import java.util.Objects; import java.util.Objects;
/** /**
* @AuthorChenYan *
* @ProjectMcWl
* @Packagecom.mcwl.resource.service.impl
* @FilenameModelLikeServiceImpl
* @Description TODO
* @Date2025/1/12 12:05
*/ */
@Service @Service
public class ModelLikeServiceImpl extends ServiceImpl<ModelLikeMapper, ModelLike> implements ModelLikeService { public class ModelLikeServiceImpl extends ServiceImpl<ModelLikeMapper, ModelLike> implements ModelLikeService {

View File

@ -14,6 +14,7 @@
<result property="sex" column="sex" /> <result property="sex" column="sex" />
<result property="avatar" column="avatar" /> <result property="avatar" column="avatar" />
<result property="password" column="password" /> <result property="password" column="password" />
<result property="wallet" column="wallet" />
<result property="status" column="status" /> <result property="status" column="status" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" /> <result property="loginIp" column="login_ip" />
@ -49,7 +50,7 @@
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.inviter_user_id, u.free_points, select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex,u.wallet, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.inviter_user_id, u.free_points,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
@ -59,7 +60,7 @@
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.wallet u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
@ -88,7 +89,7 @@
</select> </select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber,u.wallet u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@ -105,7 +106,7 @@
</select> </select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber,u.wallet u.status, u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id