Browse Source

1、补充志愿者修改、查询功能

2、签到活动bug修复
3、我的排名问题修复
4、用户电话不能重复
master
Aug 4 weeks ago
parent
commit
4e9e4aba04
16 changed files with 237 additions and 35 deletions
  1. +4
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityActivity/entity/CommunityActivity.java
  2. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/controller/CommunityNoticeController.java
  3. +9
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/entity/CommunityNotice.java
  4. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/mapper/CommunityNoticeMapper.java
  5. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/service/ICommunityNoticeService.java
  6. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/service/impl/CommunityNoticeServiceImpl.java
  7. +13
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue/CommunityNoticeList.vue
  8. +10
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue/modules/CommunityNoticeForm.vue
  9. +23
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue3/CommunityNotice.data.ts
  10. +9
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityVolunteer/entity/CommunityVolunteer.java
  11. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/communityController/IndexController.java
  12. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java
  13. +23
    -9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ActivityServiceImpl.java
  14. +104
    -9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java
  15. +18
    -3
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ScoreServiceImpl.java
  16. +6
    -9
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/UserInfoServiceImpl.java

+ 4
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityActivity/entity/CommunityActivity.java View File

@ -130,6 +130,10 @@ public class CommunityActivity implements Serializable {
@TableField(exist = false)
int isApply;
//是否已签到
@TableField(exist = false)
int isSign;
//星期几
@TableField(exist = false)
String dayOfWeek;


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/controller/CommunityNoticeController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description: 公告信息表
* @Author: jeecg-boot
* @Date: 2025-07-22
* @Date: 2025-08-07
* @Version: V1.0
*/
@Api(tags="公告信息表")


+ 9
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/entity/CommunityNotice.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/**
* @Description: 公告信息表
* @Author: jeecg-boot
* @Date: 2025-07-22
* @Date: 2025-08-07
* @Version: V1.0
*/
@Data
@ -51,6 +51,14 @@ public class CommunityNotice implements Serializable {
@Excel(name = "标题", width = 15)
@ApiModelProperty(value = "标题")
private java.lang.String title;
/**副标题*/
@Excel(name = "副标题", width = 15)
@ApiModelProperty(value = "副标题")
private java.lang.String shortTitle;
/**封面*/
@Excel(name = "封面", width = 15)
@ApiModelProperty(value = "封面")
private java.lang.String image;
/**详情*/
@Excel(name = "详情", width = 15)
@ApiModelProperty(value = "详情")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/mapper/CommunityNoticeMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 公告信息表
* @Author: jeecg-boot
* @Date: 2025-07-22
* @Date: 2025-08-07
* @Version: V1.0
*/
public interface CommunityNoticeMapper extends BaseMapper<CommunityNotice> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/service/ICommunityNoticeService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 公告信息表
* @Author: jeecg-boot
* @Date: 2025-07-22
* @Date: 2025-08-07
* @Version: V1.0
*/
public interface ICommunityNoticeService extends IService<CommunityNotice> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/service/impl/CommunityNoticeServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 公告信息表
* @Author: jeecg-boot
* @Date: 2025-07-22
* @Date: 2025-08-07
* @Version: V1.0
*/
@Service


+ 13
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue/CommunityNoticeList.vue View File

@ -126,6 +126,17 @@
align:"center",
dataIndex: 'title'
},
{
title:'副标题',
align:"center",
dataIndex: 'shortTitle'
},
{
title:'封面',
align:"center",
dataIndex: 'image',
scopedSlots: {customRender: 'imgSlot'}
},
{
title:'详情',
align:"center",
@ -167,6 +178,8 @@
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'title',text:'标题',dictCode:''})
fieldList.push({type:'Text',value:'shortTitle',text:'副标题',dictCode:''})
fieldList.push({type:'Text',value:'image',text:'封面',dictCode:''})
fieldList.push({type:'Text',value:'details',text:'详情',dictCode:''})
this.superFieldList = fieldList
}


+ 10
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue/modules/CommunityNoticeForm.vue View File

@ -8,6 +8,16 @@
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="副标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shortTitle">
<a-input v-model="model.shortTitle" placeholder="请输入副标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="封面" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="image">
<j-image-upload isMultiple v-model="model.image" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="详情" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="details">
<j-editor v-model="model.details" />


+ 23
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityNotice/vue3/CommunityNotice.data.ts View File

@ -9,6 +9,17 @@ export const columns: BasicColumn[] = [
align:"center",
dataIndex: 'title'
},
{
title: '副标题',
align:"center",
dataIndex: 'shortTitle'
},
{
title: '封面',
align:"center",
dataIndex: 'image',
customRender:render.renderAvatar,
},
{
title: '详情',
align:"center",
@ -26,6 +37,18 @@ export const formSchema: FormSchema[] = [
field: 'title',
component: 'Input',
},
{
label: '副标题',
field: 'shortTitle',
component: 'Input',
},
{
label: '封面',
field: 'image',
component: 'JImageUpload',
componentProps:{
},
},
{
label: '详情',
field: 'details',


+ 9
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/communityVolunteer/entity/CommunityVolunteer.java View File

@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -100,4 +101,12 @@ public class CommunityVolunteer implements Serializable {
@Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@ApiModelProperty(value = "关联用户id")
private java.lang.String userId;
//职业
@TableField(exist = false)
String careerName;
//学历
@TableField(exist = false)
String qualificationsName;
}

+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/communityController/IndexController.java View File

@ -48,6 +48,13 @@ public class IndexController {
return indexService.queryNoticeById(noticeId);
}
//申请成为志愿者
@ApiOperation(value="首页-查看志愿者信息", notes="首页-查看志愿者信息")
@RequestMapping(value = "/queryVolunteer", method = {RequestMethod.POST})
public Result<?> queryVolunteer(@RequestHeader("X-Access-Token") String token){
return indexService.queryVolunteer(token);
}
//申请成为志愿者
@ApiOperation(value="首页-申请成为志愿者", notes="首页-申请成为志愿者")
@RequestMapping(value = "/applyVolunteer", method = {RequestMethod.POST})


+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/IndexService.java View File

@ -6,6 +6,7 @@ import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.communityBanner.entity.CommunityBanner;
import org.jeecg.modules.communityNotice.entity.CommunityNotice;
import org.jeecg.modules.communityVolunteer.entity.CommunityVolunteer;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -20,7 +21,13 @@ public interface IndexService {
//获取公告详情
public Result<?> queryNoticeById(String noticeId);
//查看志愿者信息
public Result<?> queryVolunteer(String token);
//申请成为志愿者
public Result<?> applyVolunteer(String token, CommunityVolunteer communityVolunteer);
//修改志愿者信息
public Result<?> updateVolunteer(String token, CommunityVolunteer communityVolunteer);
}

+ 23
- 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ActivityServiceImpl.java View File

@ -2,6 +2,7 @@ package org.jeecg.modules.api.service.impl;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result;
@ -135,8 +136,9 @@ public class ActivityServiceImpl implements ActivityService {
}
//判断活动是否被收藏/已报名
one.setIsCollection(0);
one.setIsApply(0);
one.setIsCollection(0);//收藏状态
one.setIsApply(0);//报名状态
one.setIsSign(0);//签到状态
if(null != hanHaiMember){
//1判断活动是否被收藏
CommunityActivityCollection collection = communityActivityCollectionService
@ -148,7 +150,7 @@ public class ActivityServiceImpl implements ActivityService {
one.setIsCollection(1);
}
//1判断活动是否已报名
//2判断活动是否已报名
CommunityActivityApply apply = communityActivityApplyService
.lambdaQuery()
.eq(CommunityActivityApply::getUserId, hanHaiMember.getId())
@ -156,6 +158,7 @@ public class ActivityServiceImpl implements ActivityService {
.one();
if(null != apply){
one.setIsApply(1);
one.setIsSign(Integer.parseInt(apply.getStatus()));
}
}
@ -421,18 +424,29 @@ public class ActivityServiceImpl implements ActivityService {
return Result.OK("活动不存在或已经结束,请检查活动id:{}", activityId);
}
//2判断用户是否已经签到过活动
//2判断用户是否已经报名活动
CommunityActivityApply apply = communityActivityApplyService
.lambdaQuery()
.eq(CommunityActivityApply::getUserId, hanHaiMember.getId())
.eq(CommunityActivityApply::getActivityId, activityId)
.eq(CommunityActivityApply::getStatus, 0)
.one();
if(null == apply){
log.info("报名活动不存在或已经签到过,请检查活动id:{}", activityId);
return Result.OK("报名活动不存在或已经签到过,请检查活动id:{}", activityId);
if(null ==apply){
log.info("用户未报名该活动,请检查活动id:{}", activityId);
return Result.error("用户未报名该活动,请检查活动id:{}", activityId);
}
//3判断用户是否已经签到过活动
CommunityActivityApply apply1 = communityActivityApplyService
.lambdaQuery()
.eq(CommunityActivityApply::getUserId, hanHaiMember.getId())
.eq(CommunityActivityApply::getActivityId, activityId)
.eq(CommunityActivityApply::getStatus, 1)
.one();
if(null != apply1){
log.info("已经签到过,请检查活动id:{}", activityId);
return Result.error("已经签到过,请检查活动id:{}", activityId);
}else {
//3添加签到信息
//4添加签到信息
apply.setStatus("1");
boolean result1 = communityActivityApplyService.updateById(apply);


+ 104
- 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/IndexServiceImpl.java View File

@ -10,9 +10,13 @@ import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.api.service.IndexService;
import org.jeecg.modules.communityBanner.entity.CommunityBanner;
import org.jeecg.modules.communityBanner.service.ICommunityBannerService;
import org.jeecg.modules.communityCareer.entity.CommunityCareer;
import org.jeecg.modules.communityCareer.service.ICommunityCareerService;
import org.jeecg.modules.communityNotice.entity.CommunityNotice;
import org.jeecg.modules.communityNotice.service.ICommunityNoticeService;
import org.jeecg.modules.communityOrder.entity.CommunityOrder;
import org.jeecg.modules.communityQualifications.entity.CommunityQualifications;
import org.jeecg.modules.communityQualifications.service.ICommunityQualificationsService;
import org.jeecg.modules.communityVolunteer.entity.CommunityVolunteer;
import org.jeecg.modules.communityVolunteer.service.ICommunityVolunteerService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
@ -41,6 +45,12 @@ public class IndexServiceImpl implements IndexService {
//用户信息
@Resource
private IHanHaiMemberService hanHaiMemberService;
//职业信息
@Resource
private ICommunityCareerService communityCareerService;
//学历信息
@Resource
private ICommunityQualificationsService communityQualificationsService;
/******************************************************************************************************************/
//获取banner图列表
@ -156,6 +166,53 @@ public class IndexServiceImpl implements IndexService {
}
}
//查询志愿者信息
@Override
public Result<?> queryVolunteer(String token) {
log.info("开始查询志愿者信息");
//权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//返回信息
String massege = "";
try{
//1查询公告详情
CommunityVolunteer one = communityVolunteerService
.lambdaQuery()
.eq(CommunityVolunteer::getUserId, hanHaiMember.getId())
.one();
if(null == one){
log.info("志愿者信息不存在");
return Result.OK("志愿者信息不存在", one);
}
//查询职业信息
CommunityCareer career = communityCareerService.getById(one.getCareer());
if(null != career){
one.setCareerName(career.getTitle());
}else {
one.setCareerName("暂无职业");
}
//查询学历信息
CommunityQualifications qualifications = communityQualificationsService.getById(one.getQualifications());
if(null != qualifications){
one.setQualificationsName(qualifications.getTitle());
}else {
one.setCareerName("暂无学历");
}
//2返回公告信息
log.info("志愿者信息查询结束");
return Result.OK("志愿者信息", one);
}catch (Exception e){
log.info("志愿者信息查询失败");
e.printStackTrace();
return Result.error("志愿者查询失败");
}
}
//申请成为志愿者
@Override
public Result<?> applyVolunteer(String token, CommunityVolunteer communityVolunteer) {
@ -173,24 +230,62 @@ public class IndexServiceImpl implements IndexService {
.eq(CommunityVolunteer::getUserId, hanHaiMember.getId())
.one();
if(null != volunteer){
log.info("您已经是志愿者了!");
return Result.OK("您已经是志愿者了!");
communityVolunteer.setUserId(hanHaiMember.getId());
communityVolunteer.setId(volunteer.getId());
communityVolunteer.setStatus("0");
boolean result = communityVolunteerService.updateById(communityVolunteer);
//判断是否修改成功
log.info("修改志愿者信息结束");
if(result){
return Result.OK("信息修改成功");
}else {
return Result.OK("信息修改失败");
}
}else {
communityVolunteer.setUserId(hanHaiMember.getId());
boolean result = communityVolunteerService.save(communityVolunteer);
//判断是否新增成功
log.info("申请成为志愿者表单提交结束");
if(result){
return Result.OK("信息添加成功");
}else {
return Result.OK("信息添加失败");
}
}
}catch (Exception e){
log.error("申请成为志愿者表单提交失败");
e.printStackTrace();
return Result.error("信息添加失败");
}
}
//修改志愿者信息
@Override
public Result<?> updateVolunteer(String token, CommunityVolunteer communityVolunteer) {
log.info("修改志愿者信息开始");
//权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//返回信息
String massege = "";
try{
communityVolunteer.setUserId(hanHaiMember.getId());
boolean result = communityVolunteerService.save(communityVolunteer);
//判断是否新增成功
log.info("申请成为志愿者表单提交结束");
communityVolunteer.setStatus("0");
boolean result = communityVolunteerService.updateById(communityVolunteer);
//判断是否修改成功
log.info("修改志愿者信息结束");
if(result){
return Result.OK("信息添加成功");
return Result.OK("信息修改成功");
}else {
return Result.OK("信息添加失败");
return Result.OK("信息修改失败");
}
}catch (Exception e){
log.error("申请成为志愿者表单提交失败");
log.error("修改志愿者信息失败");
e.printStackTrace();
return Result.error("信息添加失败");
return Result.error("信息修改失败");
}
}
}

+ 18
- 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ScoreServiceImpl.java View File

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@ -125,12 +126,26 @@ public class ScoreServiceImpl implements ScoreService {
//积分排名列表
for (HanHaiMember record : pageList.getRecords()) {
if(null != hanHaiMember && hanHaiMember.getId().equals(record.getId())){
hanHaiMember.setRank(rank);
}
record.setRank(rank);
rank++;
}
//我的排名
if(null != hanHaiMember){
List<HanHaiMember> myscore = hanHaiMemberService
.lambdaQuery()
.orderByDesc(HanHaiMember::getScore)
.list();
int myrank = 1;
for (HanHaiMember member : myscore) {
if(member.getId().equals(hanHaiMember.getId())){
hanHaiMember.setRank(myrank);
break;
}
myrank++;
}
}
map.put("scoreList",pageList);
log.info("积分信息查询结束");


+ 6
- 9
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/UserInfoServiceImpl.java View File

@ -60,8 +60,8 @@ public class UserInfoServiceImpl implements UserInfoService {
public Result<?> updateUserInfo(String token,String nickName,String phone,String headImage,String address){
log.info("开始修改个人信息");
//权限验证
//HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
try{
//用户昵称不能为空
@ -73,16 +73,13 @@ public class UserInfoServiceImpl implements UserInfoService {
log.error("头像不能为空");
return Result.error("头像不能为空");
}
if(StringUtils.isBlank(address)){
log.error("地址不能为空");
return Result.error("地址不能为空");
}
if(StringUtils.isNotEmpty(phone)){
List<HanHaiMember> list = hanHaiMemberService
HanHaiMember one = hanHaiMemberService
.lambdaQuery()
.eq(HanHaiMember::getPhone, phone)
.list();
if(null != list){
.ne(HanHaiMember::getId, hanHaiMember.getId())
.one();
if(null != one){
return Result.error("该号码已经有人使用,不能重复填写");
}
}


Loading…
Cancel
Save