Compare commits

...

8 Commits

Author SHA1 Message Date
Diyu0904 6ae9eca9b6 Merge branch 'feature/admin' into preview
# Conflicts:
#	mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayIntegration.java
#	mcwl-admin/src/main/java/com/mcwl/web/controller/resource/ModelVersionController.java
2025-01-16 18:58:49 +08:00
yang 9dcf061dcb Merge remote-tracking branch 'origin/feature/community-center' into feature/community-center 2025-01-16 17:26:23 +08:00
yang 02d8dc45dd feat:社区 2025-01-16 17:26:12 +08:00
ChenYan 83b07054a1 feat:feat(resource): 添加模型版本高清修复功能 2025-01-15 19:00:30 +08:00
yang 7efb7973ef feat:多租户 2025-01-15 18:49:40 +08:00
yang 58839f1f12 Merge branch 'feature/community-center' of https://gitea.qinmian.online/CY/mcwl-ai into preview 2025-01-15 16:54:05 +08:00
yang 1398011ee5 feat:调整 2025-01-15 16:53:36 +08:00
yang fa542d1569 feat:社区中心 2025-01-15 16:51:08 +08:00
47 changed files with 1014 additions and 8 deletions

View File

@ -89,6 +89,12 @@
<artifactId>mcwl-myInvitation</artifactId>
<version>3.8.8</version>
</dependency>
<dependency>
<groupId>com.mcwl</groupId>
<artifactId>mcwl-communityCenter</artifactId>
<version>3.8.8</version>
</dependency>
<!-- 公共模块-->
<dependency>
<groupId>com.mcwl</groupId>

View File

@ -0,0 +1,62 @@
package com.mcwl.web.controller.communityCenter;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.service.CommunityService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
*/
@RestController
@RequestMapping("community")
@RequiredArgsConstructor
public class CommunityController {
private final CommunityService communityService;
/**
*
* @return
*/
@GetMapping("list")
public List<Community> getCommunityList(){
return communityService.list();
}
/**
*
* @param community
* @return
*/
@PostMapping("add")
public boolean addCommunity(@RequestBody Community community){
return communityService.save(community);
}
/**
*
* @param id id
* @return
*/
@PostMapping("delete")
public boolean deleteCommunity(Long id){
return communityService.removeById(id);
}
/**
*
* @param community
* @return
*/
@PostMapping("update")
public boolean updateCommunity(@RequestBody Community community){
return communityService.updateById(community);
}
}

View File

@ -0,0 +1,33 @@
package com.mcwl.web.controller.communityCenter;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.communityCenter.service.InviteMappingService;
import com.mcwl.communityCenter.service.InviteService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
*/
@RestController
@RequestMapping("invite")
@RequiredArgsConstructor
public class InviteController {
private final InviteService inviteService;
/**
*
*/
@GetMapping("inviteCode")
public AjaxResult inviteCode(){
// 获取邀请码链接
String inviteCode = inviteService.getInviteCode();
return AjaxResult.success(inviteCode);
}
}

View File

@ -0,0 +1,69 @@
package com.mcwl.web.controller.communityCenter;
import cn.hutool.core.bean.BeanUtil;
import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.dto.PublishRes;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.service.PublishService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
*
*/
@RestController
@RequestMapping("publish")
@RequiredArgsConstructor
public class PublishController {
private final PublishService publishService;
/**
*
*
* @return
*/
@PostMapping("list")
public TableDataInfo getCommunityList(@RequestBody PageDomain pageDomain) {
return publishService.listByPage(pageDomain);
}
/**
*
*/
@GetMapping("detail")
public AjaxResult getPublishDetail(Long id) {
PublishVo publishVo = publishService.getDetail(id);
if (Objects.isNull(publishVo)) {
return AjaxResult.error("获取详情失败");
}
return AjaxResult.success(publishVo);
}
/**
*
*/
@PostMapping("add")
public AjaxResult addPublish(@RequestBody PublishRes publishRes) {
Publish publish = new Publish();
BeanUtil.copyProperties(publishRes, publish);
return AjaxResult.success(publishService.save(publish));
}
/**
*
*/
@GetMapping("remove")
public AjaxResult deletePublish(Long id) {
return AjaxResult.success(publishService.removeById(id));
}
}

View File

@ -0,0 +1,19 @@
package com.mcwl.web.controller.communityCenter;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
*/
@RestController
@RequestMapping("question")
@RequiredArgsConstructor
public class QuestionController {
}

View File

@ -152,5 +152,17 @@ public class MemberController {
return AjaxResult.success(unitPrice);
}
/**
*
*/
@GetMapping("isMember")
public AjaxResult isMember() {
Long userId = SecurityUtils.getUserId();
Member member = memberService.getUseUserMemberByUserId(userId);
if (Optional.ofNullable(member).isPresent()) {
return AjaxResult.success(true);
}
return AjaxResult.success(false);
}
}

View File

@ -27,6 +27,7 @@ import com.mcwl.memberCenter.service.MemberLevelService;
import com.mcwl.pay.config.AliConfig;
import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -37,6 +38,7 @@ import java.util.concurrent.TimeUnit;
*
*/
@Component
@Slf4j
public class AliPayIntegration {
@Autowired

View File

@ -20,8 +20,7 @@ import org.springframework.web.multipart.MultipartFile;
/**
*
*
*
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.web.controller.resource

View File

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.web.controller.resource

View File

@ -1,15 +1,21 @@
package com.mcwl.web.controller.resource;
import cn.hutool.core.lang.Dict;
import com.mcwl.common.constant.DictConstants;
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.utils.oss.OssUtil;
import com.mcwl.resource.domain.ModelProduct;
import com.mcwl.resource.domain.ModelVersion;
import com.mcwl.resource.service.ModelVersionService;
import com.mcwl.system.init.DictInit;
import com.mcwl.web.controller.common.OssUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -87,19 +93,33 @@ public class ModelVersionController extends BaseController {
@PostMapping("finbyid")
public AjaxResult finbyid(@RequestBody ModelVersion modelVersion)
{
ModelVersion modelVersion1 = modelVersionService.getById(modelVersion.getId());
ArrayList<String> arrayList = new ArrayList<>();
//获取
String[] split = modelVersion1.getHigh().split(",");
for (String s : split) {
arrayList.add(DictInit.getDictValue(DictConstants.DICT_TYPE_MODEL_VERSION_HIGH,s));
}
return AjaxResult.success(modelVersion1);
}
@PostMapping("insert")
public AjaxResult insert(@RequestBody ModelVersion modelVersion)
{
modelVersionService.save(modelVersion);
return AjaxResult.success();
}
@PostMapping("update")
public AjaxResult update(@RequestBody ModelVersion modelVersion)
{
@ -107,6 +127,7 @@ public class ModelVersionController extends BaseController {
return AjaxResult.success();
}
@PostMapping("delete")
public AjaxResult delete(@RequestBody ModelVersion modelVersion)
{

View File

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
/**
* @AuthorChenYan
* @ProjectMcWl
* @Packagecom.mcwl.web.controller.resource

View File

@ -47,6 +47,15 @@ public class SysUserController extends BaseController
@Autowired
private ISysPostService postService;
/**
* id
*/
@GetMapping("/getUserId")
public AjaxResult getSysUserId() {
Long userId = SecurityUtils.getUserId();
return AjaxResult.success(userId);
}
/**
*
*/

View File

@ -15,6 +15,11 @@ public class DictConstants {
*/
public static final String MALL_PRODUCT_STATUS = "mall_product_status";
/**
*
*/
public static final String DICT_TYPE_MODEL_VERSION_HIGH = "dict_type_model_version_high";
/**
*
*/

View File

@ -5,6 +5,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -28,17 +29,21 @@ public class BaseEntity implements Serializable
private String searchValue;
/** 创建者 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/** 更新者 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
// 删除标志0代表存在 2代表删除

View File

@ -0,0 +1,33 @@
package com.mcwl.common.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.mcwl.common.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* mybatis-plus
*/
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createBy", SecurityUtils.getUsername(), metaObject);
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("tenantId", SecurityUtils.getUserId(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}

View File

@ -9,7 +9,11 @@
<version>3.8.8</version>
</parent>
<artifactId>mcwl-knowledgePlanet</artifactId>
<description>
社区中心
</description>
<artifactId>mcwl-communityCenter</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>

View File

@ -0,0 +1,42 @@
package com.mcwl.communityCenter.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_community")
public class Community extends BaseEntity {
@TableId
private Long id;
/**
*
*/
private String communityName;
/**
*
*/
private Integer type;
/**
*
*/
private Double price;
/**
*
*/
private Integer validityType;
}

View File

@ -0,0 +1,34 @@
package com.mcwl.communityCenter.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_invite")
public class Invite extends BaseEntity {
@TableId
private Long id;
/**
* id - id
*/
private Long tenantId;
/**
*
*/
private Long inviteeUserId;
/**
*
*/
private String type;
}

View File

@ -0,0 +1,34 @@
package com.mcwl.communityCenter.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mcwl.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_invite_mapping")
public class InviteMapping extends BaseEntity {
@TableId
private String id;
/**
* id - id
*/
private String tenantId;
/**
*
*/
private String inviteUrl;
/**
*
*/
private String status;
}

View File

@ -0,0 +1,57 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_publish")
public class Publish extends BaseEntity {
@TableId
private Long id;
/**
* id - id
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
*
*/
private String content;
/**
* -
*/
private Date publishTime;
/**
*
*/
private Integer likeNum;
/**
*
*/
private Integer commentNum;
/**
*
*/
private Integer status;
}

View File

@ -0,0 +1,67 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_question")
public class Question extends BaseEntity {
@TableId
private Long id;
/**
* id - id
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* id
*/
private Long questionUserId;
/**
*
*/
private String content;
/**
* id
*/
private Long replyUserId;
/**
*
*/
private String reply;
/**
*
*/
private String questionUrl;
/**
*
*/
private Integer isAnonymous;
/**
*
*/
private Integer status;
}

View File

@ -0,0 +1,35 @@
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 lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cc_user_community")
public class UserCommunity extends BaseEntity {
@TableId
private Long id;
/**
* id - id
*/
@TableField(fill = FieldFill.INSERT)
private Long tenantId;
/**
* id
*/
private Long communityId;
}

View File

@ -0,0 +1,28 @@
package com.mcwl.communityCenter.domain.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.Date;
/**
*
*/
@Data
public class PublishRes {
/**
*
*/
@NotBlank(message = "内容不能为空")
private String content;
/**
* -
*/
private Date publishTime;
/**
*
*/
private Integer status;
}

View File

@ -0,0 +1,50 @@
package com.mcwl.communityCenter.domain.vo;
import lombok.Data;
import java.util.Date;
@Data
public class PublishVo {
private Long id;
/**
* id - id
*/
private Long tenantId;
/**
*
*/
private String userName;
/**
*
*/
private String avatar;
/**
*
*/
private String content;
/**
* -
*/
private Date publishTime;
/**
*
*/
private Integer likeNum;
/**
*
*/
private Integer commentNum;
}

View File

@ -0,0 +1,55 @@
package com.mcwl.communityCenter.handler;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.mcwl.common.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Set;
@Component
@Slf4j
public class CustomTenantHandler implements TenantLineHandler {
private static final Set<String> tables = new HashSet<>();
/**
* id
* .
*/
static {
tables.add("cc_publish");
tables.add("cc_question");
tables.add("cc_user_community");
}
@Override
public Expression getTenantId() {
// 假设有一个租户上下文,能够从中获取当前用户的租户
Long tenantId;
try {
tenantId = SecurityUtils.getUserId();
} catch (Exception e) {
return new LongValue(-1L);
}
// 返回租户ID的表达式LongValue 是 JSQLParser 中表示 bigint 类型的 class
return new LongValue(tenantId);
}
@Override
public String getTenantIdColumn() {
return "tenant_id";
}
@Override
public boolean ignoreTable(String tableName) {
// 根据需要返回是否忽略该表,true:表示忽略false:需要解析并拼接多租户条件
return !tables.contains(tableName);
}
}

View File

@ -0,0 +1,9 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Community;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CommunityMapper extends BaseMapper<Community> {
}

View File

@ -0,0 +1,11 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.InviteMapping;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InviteMapper extends BaseMapper<Invite> {
}

View File

@ -0,0 +1,10 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.InviteMapping;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InviteMappingMapper extends BaseMapper<InviteMapping> {
}

View File

@ -0,0 +1,9 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Publish;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PublishMapper extends BaseMapper<Publish> {
}

View File

@ -0,0 +1,10 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Question;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface QuestionMapper extends BaseMapper<Question> {
}

View File

@ -0,0 +1,10 @@
package com.mcwl.communityCenter.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.UserCommunity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserCommunityMapper extends BaseMapper<UserCommunity> {
}

View File

@ -0,0 +1,7 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Community;
public interface CommunityService extends IService<Community> {
}

View File

@ -0,0 +1,9 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.InviteMapping;
public interface InviteMappingService extends IService<InviteMapping> {
String getInviteCode();
}

View File

@ -0,0 +1,12 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.vo.PublishVo;
public interface InviteService extends IService<Invite> {
String getInviteCode();
}

View File

@ -0,0 +1,14 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.vo.PublishVo;
public interface PublishService extends IService<Publish> {
TableDataInfo listByPage(PageDomain pageDomain);
PublishVo getDetail(Long id);
}

View File

@ -0,0 +1,8 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.Question;
public interface QuestionService extends IService<Question> {
}

View File

@ -0,0 +1,8 @@
package com.mcwl.communityCenter.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.UserCommunity;
public interface UserCommunityService extends IService<UserCommunity> {
}

View File

@ -0,0 +1,11 @@
package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.communityCenter.domain.Community;
import com.mcwl.communityCenter.mapper.CommunityMapper;
import com.mcwl.communityCenter.service.CommunityService;
import org.springframework.stereotype.Service;
@Service
public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
}

View File

@ -0,0 +1,25 @@
package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.InviteMapping;
import com.mcwl.communityCenter.mapper.InviteMapper;
import com.mcwl.communityCenter.mapper.InviteMappingMapper;
import com.mcwl.communityCenter.service.InviteMappingService;
import com.mcwl.communityCenter.service.InviteService;
import org.springframework.stereotype.Service;
@Service
public class InviteMappingServiceImpl extends ServiceImpl<InviteMappingMapper, InviteMapping> implements InviteMappingService {
@Override
public String getInviteCode() {
return "https://aaa.com";
}
}

View File

@ -0,0 +1,32 @@
package com.mcwl.communityCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.communityCenter.domain.Invite;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.mapper.InviteMapper;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.service.InviteService;
import com.mcwl.communityCenter.service.PublishService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
public class InviteServiceImpl extends ServiceImpl<InviteMapper, Invite> implements InviteService {
@Override
public String getInviteCode() {
String url = "https://www.yaoqing.com?name=lisi";
return url;
}
}

View File

@ -0,0 +1,79 @@
package com.mcwl.communityCenter.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.mcwl.common.constant.HttpStatus;
import com.mcwl.common.core.page.PageDomain;
import com.mcwl.common.core.page.TableDataInfo;
import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.vo.PublishVo;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.service.PublishService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
public class PublishServiceImpl extends ServiceImpl<PublishMapper, Publish> implements PublishService {
@Override
public TableDataInfo listByPage(PageDomain pageDomain) {
// 分页查询
Page<Publish> page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize());
boolean isAsc = Objects.equals(pageDomain.getIsAsc(), "asc");
OrderItem orderItem = new OrderItem(pageDomain.getOrderByColumn(), isAsc);
page.addOrder(orderItem);
// 条件设置
LambdaQueryWrapper<Publish> lqw = new LambdaQueryWrapper<>();
// 查询
baseMapper.selectPage(page, lqw);
// 返回数据
List<PublishVo> publishVoList = new ArrayList<>();
// 封装数据
List<Publish> publishList = page.getRecords();
for (Publish publish : publishList) {
PublishVo publishVo = new PublishVo();
BeanUtil.copyProperties(publish, publishVo);
publishVo.setUserName(SecurityUtils.getUsername());
publishVo.setAvatar(SecurityUtils.getLoginUser().getUser().getAvatar());
// TODO 评论数
publishVo.setCommentNum(0);
publishVoList.add(publishVo);
}
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(publishVoList);
rspData.setTotal(page.getTotal());
return rspData;
}
@Override
public PublishVo getDetail(Long id) {
Publish publish = baseMapper.selectById(id);
if (Objects.isNull(publish)) {
return null;
}
PublishVo publishVo = new PublishVo();
BeanUtil.copyProperties(publish, publishVo);
publishVo.setUserName(SecurityUtils.getUsername());
publishVo.setAvatar(SecurityUtils.getLoginUser().getUser().getAvatar());
return publishVo;
}
}

View File

@ -0,0 +1,14 @@
package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.communityCenter.domain.Publish;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.mapper.PublishMapper;
import com.mcwl.communityCenter.mapper.QuestionMapper;
import com.mcwl.communityCenter.service.PublishService;
import com.mcwl.communityCenter.service.QuestionService;
import org.springframework.stereotype.Service;
@Service
public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> implements QuestionService {
}

View File

@ -0,0 +1,14 @@
package com.mcwl.communityCenter.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mcwl.communityCenter.domain.Question;
import com.mcwl.communityCenter.domain.UserCommunity;
import com.mcwl.communityCenter.mapper.QuestionMapper;
import com.mcwl.communityCenter.mapper.UserCommunityMapper;
import com.mcwl.communityCenter.service.QuestionService;
import com.mcwl.communityCenter.service.UserCommunityService;
import org.springframework.stereotype.Service;
@Service
public class UserCommunityServiceImpl extends ServiceImpl<UserCommunityMapper, UserCommunity> implements UserCommunityService {
}

View File

@ -59,6 +59,12 @@
<groupId>com.mcwl</groupId>
<artifactId>mcwl-system</artifactId>
</dependency>
<dependency>
<groupId>com.mcwl</groupId>
<artifactId>mcwl-communityCenter</artifactId>
<version>3.8.8</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
import com.mcwl.communityCenter.handler.CustomTenantHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* MybatisPlus
*
* @author DaiZibo
* @date 2024/12/31
* @apiNote
@ -20,9 +24,15 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig {
@Autowired
private CustomTenantHandler customTenantHandler;
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 多租户插件
interceptor.addInnerInterceptor(tenantLineInnerInterceptor());
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor());
// 乐观锁插件
@ -32,6 +42,17 @@ public class MybatisPlusConfig {
return interceptor;
}
/**
* https://baomidou.com/guide/interceptor-tenant-line.html
*/
public TenantLineInnerInterceptor tenantLineInnerInterceptor() {
TenantLineInnerInterceptor tenantInterceptor = new TenantLineInnerInterceptor();
tenantInterceptor.setTenantLineHandler(customTenantHandler);
return tenantInterceptor;
}
/**
* https://baomidou.com/guide/interceptor-pagination.html
*/

View File

@ -1,5 +1,6 @@
package com.mcwl.resource.domain;
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;
@ -7,6 +8,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
/**
*
* @AuthorChenYan
@ -121,4 +124,7 @@ public class ModelVersion extends BaseEntity {
private String delFlag;
@TableField(exist = false)
private ArrayList<String> highList;
}

View File

@ -240,7 +240,7 @@
<module>mcwl-resource</module>
<module>mcwl-memberCenter</module>
<module>mcwl-pay</module>
<module>mcwl-knowledgePlanet</module>
<module>mcwl-communityCenter</module>
</modules>
<packaging>pom</packaging>