package com.panzhihua.service_community.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
|
import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
|
import com.panzhihua.service_community.dao.ComActIntegralRuleMapper;
|
import com.panzhihua.service_community.model.dos.ComActIntegralRuleDO;
|
import com.panzhihua.service_community.service.ComActIntegralRuleService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @auther lyq
|
* @create 2021-07-28 16:02:46
|
* @describe 积分规则表服务实现类
|
*/
|
@Slf4j
|
@Service
|
public class ComActIntegralRuleServiceImpl extends ServiceImpl<ComActIntegralRuleMapper, ComActIntegralRuleDO> implements ComActIntegralRuleService {
|
|
/**
|
* 查询社区下积分任务列表
|
* @param communityId 社区id
|
* @return 查询社区下积分任务列表
|
*/
|
@Override
|
public List<ComActIntegralUserRuleVO> getIntegralReceiveApplets(Long communityId){
|
return this.baseMapper.getIntegralReceiveApplets(communityId);
|
}
|
|
/**
|
* 社区后台-根据社区id查询社区下积分规则列表
|
* @param integralRuleDTO 请求参数
|
* @return 社区下积分规则列表
|
*/
|
@Override
|
public R getIntegralRuleAdminList(PageComActIntegralRuleDTO integralRuleDTO){
|
Integer count = this.baseMapper.selectCount(new QueryWrapper<ComActIntegralRuleDO>().lambda().eq(ComActIntegralRuleDO::getCommunityId,integralRuleDTO.getCommunityId()));
|
if(count == null || count <= 0){
|
List<ComActIntegralRuleDO> integralRuleList = getIntegralRuleList(integralRuleDTO.getCommunityId());
|
this.saveBatch(integralRuleList);
|
}
|
return R.ok(this.baseMapper.getIntegralRuleAdminList(new Page(integralRuleDTO.getPageNum(),integralRuleDTO.getPageSize()),integralRuleDTO));
|
}
|
|
/**
|
* 加载默认社区积分规则列表
|
* @param communityId 社区id
|
* @return 默认积分规则列表
|
*/
|
private List<ComActIntegralRuleDO> getIntegralRuleList(Long communityId){
|
List<ComActIntegralRuleDO> integralRuleList = new ArrayList<>();
|
|
//随手拍默认积分规则
|
ComActIntegralRuleDO integralRuleSSPDO = new ComActIntegralRuleDO();
|
integralRuleSSPDO.setCommunityId(communityId);
|
integralRuleSSPDO.setName("发布随手拍");
|
integralRuleSSPDO.setAmount(5);
|
integralRuleSSPDO.setIntegralDescribe("发布随手拍并被公示后");
|
integralRuleSSPDO.setIsRestrict(2);
|
integralRuleSSPDO.setIntegralType(ComActIntegralRuleDO.integralType.fbssp);
|
integralRuleList.add(integralRuleSSPDO);
|
|
//微心愿默认积分规则
|
ComActIntegralRuleDO integralRuleWXYDO = new ComActIntegralRuleDO();
|
integralRuleWXYDO.setCommunityId(communityId);
|
integralRuleWXYDO.setName("发布微心愿");
|
integralRuleWXYDO.setAmount(7);
|
integralRuleWXYDO.setIntegralDescribe("发布微心愿并完成后");
|
integralRuleWXYDO.setIsRestrict(1);
|
integralRuleWXYDO.setType(ComActIntegralRuleDO.type.month);
|
integralRuleWXYDO.setCount(5);
|
integralRuleWXYDO.setIntegralType(ComActIntegralRuleDO.integralType.fbwxy);
|
integralRuleList.add(integralRuleWXYDO);
|
|
//议事投票默认积分规则
|
ComActIntegralRuleDO integralRuleYSTPDO = new ComActIntegralRuleDO();
|
integralRuleYSTPDO.setCommunityId(communityId);
|
integralRuleYSTPDO.setName("参与议事投票");
|
integralRuleYSTPDO.setAmount(4);
|
integralRuleYSTPDO.setIntegralDescribe("参与议事投票");
|
integralRuleYSTPDO.setIsRestrict(1);
|
integralRuleYSTPDO.setType(ComActIntegralRuleDO.type.day);
|
integralRuleYSTPDO.setCount(3);
|
integralRuleYSTPDO.setIntegralType(ComActIntegralRuleDO.integralType.cyystp);
|
integralRuleList.add(integralRuleYSTPDO);
|
|
//志愿者活动默认积分规则
|
ComActIntegralRuleDO integralRuleZYZDO = new ComActIntegralRuleDO();
|
integralRuleZYZDO.setCommunityId(communityId);
|
integralRuleZYZDO.setName("参与志愿者活动");
|
integralRuleZYZDO.setAmount(2);
|
integralRuleZYZDO.setIntegralDescribe("报名参加志愿者活动,仅限志愿者");
|
integralRuleZYZDO.setIsRestrict(1);
|
integralRuleZYZDO.setType(ComActIntegralRuleDO.type.month);
|
integralRuleZYZDO.setCount(5);
|
integralRuleZYZDO.setIntegralType(ComActIntegralRuleDO.integralType.cyzyzhd);
|
integralRuleList.add(integralRuleZYZDO);
|
|
//社区活动默认积分规则
|
ComActIntegralRuleDO integralRuleSQHDDO = new ComActIntegralRuleDO();
|
integralRuleSQHDDO.setCommunityId(communityId);
|
integralRuleSQHDDO.setName("参与社区活动");
|
integralRuleSQHDDO.setAmount(2);
|
integralRuleSQHDDO.setIntegralDescribe("报名参加社区活动,所有人可参与");
|
integralRuleSQHDDO.setIsRestrict(1);
|
integralRuleSQHDDO.setType(ComActIntegralRuleDO.type.month);
|
integralRuleSQHDDO.setCount(5);
|
integralRuleSQHDDO.setIntegralType(ComActIntegralRuleDO.integralType.cysqhd);
|
integralRuleList.add(integralRuleSQHDDO);
|
|
//党员活动默认积分规则
|
ComActIntegralRuleDO integralRuleDYHDDO = new ComActIntegralRuleDO();
|
integralRuleDYHDDO.setCommunityId(communityId);
|
integralRuleDYHDDO.setName("参与党员活动");
|
integralRuleDYHDDO.setAmount(1);
|
integralRuleDYHDDO.setIntegralDescribe("报名参加社区党员活动,党员可参与");
|
integralRuleDYHDDO.setIsRestrict(1);
|
integralRuleDYHDDO.setType(ComActIntegralRuleDO.type.day);
|
integralRuleDYHDDO.setCount(3);
|
integralRuleDYHDDO.setIntegralType(ComActIntegralRuleDO.integralType.cydyhd);
|
integralRuleList.add(integralRuleDYHDDO);
|
|
//党员活动默认积分规则
|
ComActIntegralRuleDO integralRuleWJDCDO = new ComActIntegralRuleDO();
|
integralRuleWJDCDO.setCommunityId(communityId);
|
integralRuleWJDCDO.setName("参与问卷调查");
|
integralRuleWJDCDO.setAmount(4);
|
integralRuleWJDCDO.setIntegralDescribe("参与问卷调查");
|
integralRuleWJDCDO.setIsRestrict(1);
|
integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
|
integralRuleWJDCDO.setCount(3);
|
integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydcwj);
|
integralRuleList.add(integralRuleWJDCDO);
|
return integralRuleList;
|
}
|
|
/**
|
* 社区后台-编辑社区积分规则
|
* @param integralRuleDTO 请求参数
|
* @return 编辑结果
|
*/
|
@Override
|
public R editIntegralRuleAdmin(EditComActIntegralRuleDTO integralRuleDTO){
|
//查询社区积分规则记录
|
ComActIntegralRuleDO integralRuleDO = this.baseMapper.selectById(integralRuleDTO.getId());
|
if(integralRuleDO == null){
|
return R.fail("未找到积分规则记录");
|
}
|
BeanUtils.copyProperties(integralRuleDTO,integralRuleDO);
|
if(integralRuleDTO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.no)){
|
integralRuleDO.setCount(null);
|
integralRuleDO.setType(null);
|
}
|
integralRuleDO.setUpdateAt(new Date());
|
if(this.baseMapper.updateById(integralRuleDO) > 0){
|
return R.ok();
|
}else {
|
return R.fail("修改失败");
|
}
|
}
|
|
}
|