This commit is contained in:
linfeng 2023-08-28 14:04:46 +08:00
commit fab5a3f8fb
10 changed files with 61 additions and 20 deletions

View File

@ -5,9 +5,9 @@
#### 1.介绍
林风社交论坛uniapp**小程序/H5/APP版本**基于SpringBoot+MybatisPlus+Shiro+Quartz+jwt+websocket+Redis+Vue+Uniapp的前后端分离的社交论坛问答发帖/BBS项目。 项目分为Uniapp用户端**兼容H5、微信小程序、APP端**和Vue后台管理端包括完整的权限处理 基于以下技术栈开发SpringBoot、MybatisPlus、Shiro、Quartz、jwt、websocket、Redis、Vue、Uniapp、MySQL。
林风社交论坛uniapp**小程序/H5/APP版本**基于SpringBoot+MybatisPlus+Shiro+Quartz+jwt+websocket+Redis+Vue+Uniapp的前后端分离的社交论坛问答发帖/BBSSNS项目。 项目分为Uniapp用户端**兼容H5、微信小程序、APP端**和Vue后台管理端包括完整的权限处理 基于以下技术栈开发SpringBoot、MybatisPlus、Shiro、Quartz、jwt、websocket、Redis、Vue、Uniapp、MySQL。
功能:图文帖,长文贴,短视频,圈子,私聊,微信支付(小程序/H5/app付费贴积分签到钱包充值积分余额兑换话题标签抽奖大转盘手机号邮箱登录虚拟用户发帖举报第三方广告会员模块即时通讯IM ,好友模块等丰富功能,直接看演示更直观↓↓↓↓↓
功能:图文帖,长文贴,短视频,圈子,私聊,微信支付(小程序/H5/app付费贴积分签到钱包充值积分余额兑换话题标签抽奖大转盘手机号邮箱登录虚拟用户发帖举报第三方广告会员模块即时通讯IM ,好友模块,投票,打赏,用户经验等级等丰富功能,直接看演示更直观↓↓↓↓↓
***后台前端的代码在 src\main\resources\static\linfeng-community-vue目录下***
@ -149,12 +149,40 @@ https://net.linfeng.tech/version/version.html
#### 6.标准版更新记录
**当前版本V1.9.0**
**当前版本V1.9.1**
###### **V1.9.1发布**
<u>2023.8.9</u>
【新增】1.新增用户经验等级模块和用户LV标识
【新增】2.新增积分打赏模块
【新增】3.新增帖子列表暗黑系列皮肤
【新增】4.新增小程序端支持获取微信头像昵称
【新增】5.会员开通支持余额支付
【新增】6.支持后台增减用户积分
【新增】7.支持后台指定用户会员状态和有效期限
【新增】8.支持后台创建圈子
【优化】9.支持后台圈子分类、问答限制等修改
【优化】10.增加发帖积分奖励每日限制次数防止盗刷
【优化】11.帖子内容增加链接标识及跳转
【优化】12.优化分享海报可能变形的问题
###### **V1.9.0发布**
<u>2023.6.27</u>
【新增】1.新增限制进圈问答审核模块

View File

@ -38,6 +38,7 @@ import io.linfeng.common.utils.R;
@RestController
@RequestMapping("admin/user")
public class AppUserController {
@Autowired
private AppUserService appUserService;
@ -63,14 +64,7 @@ public class AppUserController {
}
@PostMapping("/save")
@RequiresPermissions("admin:user:save")
@ApiOperation("用户保存")
public R save(@RequestBody AppUserEntity user){
appUserService.save(user);
return R.ok();
}
@PostMapping("/update")

View File

@ -97,6 +97,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
@Override
@Transactional(rollbackFor = Exception.class)
public void ban(Integer id) {
Integer status = this.lambdaQuery().eq(AppUserEntity::getUid, id).one().getStatus();
if (status.equals(Constant.USER_BANNER)) {
@ -104,6 +105,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
}
this.lambdaUpdate()
.set(AppUserEntity::getStatus, 1)
.set(AppUserEntity::getUpdateTime,new Date())
.eq(AppUserEntity::getUid, id)
.update();
}
@ -117,6 +119,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
}
boolean update = this.lambdaUpdate()
.set(AppUserEntity::getStatus, 0)
.set(AppUserEntity::getUpdateTime,new Date())
.eq(AppUserEntity::getUid, id)
.update();
if(!update){
@ -201,6 +204,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateAppUserInfo(AppUserUpdateForm appUserUpdateForm, AppUserEntity user) {
if (!ObjectUtil.isEmpty(appUserUpdateForm.getAvatar())) {
user.setAvatar(appUserUpdateForm.getAvatar());

View File

@ -133,6 +133,7 @@ public class PostServiceImpl extends ServiceImpl<PostDao, PostEntity> implements
}
@Override
@Transactional(rollbackFor = Exception.class)
public void addCollection(AddCollectionForm request, AppUserEntity user) {
Boolean collection = postCollectionService.isCollection(user.getUid(), request.getId());
if(collection){
@ -198,6 +199,7 @@ public class PostServiceImpl extends ServiceImpl<PostDao, PostEntity> implements
}
@Override
@Transactional(rollbackFor = Exception.class)
public void addComment(AddCommentForm request, AppUserEntity user) {
if(user.getStatus()!=0){
throw new LinfengException("您的账号已被禁用!");

View File

@ -9,8 +9,8 @@
level-bg-color="#000000"></u-avatar>
</view>
<view class="center">
<view style="display: flex;align-items: center;justify-content: space-between;">
<view style="display: flex;align-items: center;">
<view class="post-top-box">
<view class="uname">
<text v-if="item.userInfo.type == 1" class="official">官方</text>
<text class="username">{{ item.userInfo.username.substring(0, 10) }}</text>
</view>
@ -240,7 +240,15 @@
}
}
}
.post-top-box{
display: flex;
align-items: center;
justify-content: space-between;
}
.uname{
display: flex;
align-items: center;
}
.post-list-item {
display: flex;
align-items: center;

View File

@ -9,7 +9,7 @@
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<title>林风社交论坛开源版</title>
<!--preload-links-->
<!--app-context-->
</head>

View File

@ -85,7 +85,7 @@
if (index === 0) {
this.page1 = 1;
this.getFollowUserPost();
}else if (index === 1) {
} else if (index === 1) {
this.page2 = 1;
this.getLastPost();
}

View File

@ -49,10 +49,10 @@
if (res.code === 0) {
uni.setStorageSync("hasLogin", true);
uni.setStorageSync("token", res.token);
that.getUserInfo();
uni.switchTab({
url: '/pages/index/index'
});
that.getUserInfo();
}
uni.hideLoading();
})

View File

@ -355,6 +355,10 @@
});
},
getPostDetail() {
uni.showLoading({
mask: true,
title: '加载中'
});
this.$H
.get('post/detail', {
id: this.postId
@ -369,6 +373,7 @@
}, 1500);
}
this.postDetail = res.result;
uni.hideLoading();
});
},
cancelCollection() {

View File

@ -4,8 +4,8 @@
(function() {
window.SITE_CONFIG = {};
// api接口请求地址
window.SITE_CONFIG["baseUrl"] = "";
// api接口请求地址 你的线上api域名
window.SITE_CONFIG["baseUrl"] = "https://api.xxx.com";
// cdn地址 = 域名 + 版本号
window.SITE_CONFIG["domain"] = "./"; // 域名