Merge branch 'master' of https://gitee.com/virus010101/linfeng-community
This commit is contained in:
commit
fab5a3f8fb
38
README.md
38
README.md
@ -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的前后端分离的社交论坛问答发帖/BBS,SNS项目。 项目分为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.新增限制进圈问答审核模块
|
||||
|
@ -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")
|
||||
|
@ -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());
|
||||
|
@ -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("您的账号已被禁用!");
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
@ -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();
|
||||
})
|
||||
|
@ -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() {
|
||||
|
@ -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"] = "./"; // 域名
|
||||
|
Loading…
Reference in New Issue
Block a user