package com.panzhihua.service_community.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; 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; /** * @auther lyq * @create 2021-07-28 16:02:46 * @describe 积分规则表服务实现类 */ @Slf4j @Service public class ComActIntegralRuleServiceImpl extends ServiceImpl implements ComActIntegralRuleService { /** * 查询社区下积分任务列表 * * @param communityId * 社区id * @return 查询社区下积分任务列表 */ @Override public List 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().lambda() .eq(ComActIntegralRuleDO::getCommunityId, integralRuleDTO.getCommunityId())); if (count == null || count <= 0) { List integralRuleList = getIntegralRuleList(integralRuleDTO.getCommunityId()); this.saveBatch(integralRuleList); } return R.ok(this.baseMapper.getIntegralRuleAdminList( new Page(integralRuleDTO.getPageNum(), integralRuleDTO.getPageSize()), integralRuleDTO)); } /** * 加载默认社区积分规则列表 * * @param communityId * 社区id * @return 默认积分规则列表 */ @Override public List getIntegralRuleList(Long communityId) { List integralRuleList = new ArrayList<>(); List defaultRuleList = this.baseMapper.getIntegralDefaultList(); if (!defaultRuleList.isEmpty()) { defaultRuleList.forEach(defaultRule -> { ComActIntegralRuleDO integralRuleDO = new ComActIntegralRuleDO(); integralRuleDO.setCommunityId(communityId); integralRuleDO.setName(defaultRule.getName()); integralRuleDO.setAmount(defaultRule.getAmount()); integralRuleDO.setIntegralDescribe(defaultRule.getIntegralDescribe()); integralRuleDO.setIsRestrict(defaultRule.getIsRestrict()); integralRuleDO.setType(defaultRule.getType()); integralRuleDO.setCount(defaultRule.getCount()); integralRuleDO.setIntegralType(defaultRule.getIntegralType()); integralRuleList.add(integralRuleDO); }); return integralRuleList; } // 随手拍默认积分规则 ComActIntegralRuleDO integralRuleSSPDO = new ComActIntegralRuleDO(); integralRuleSSPDO.setCommunityId(communityId); integralRuleSSPDO.setName("发布随手拍"); integralRuleSSPDO.setAmount(5); integralRuleSSPDO.setIntegralDescribe("发布随手拍并被公示后"); integralRuleSSPDO.setIsRestrict(1); integralRuleSSPDO.setType(ComActIntegralRuleDO.type.day); integralRuleSSPDO.setCount(0); 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(0); // 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(0); integralRuleYSTPDO.setIntegralType(ComActIntegralRuleDO.integralType.cyystp); integralRuleList.add(integralRuleYSTPDO); // 问卷调查默认积分规则 ComActIntegralRuleDO integralRuleWJDCDO = new ComActIntegralRuleDO(); integralRuleWJDCDO.setCommunityId(communityId); integralRuleWJDCDO.setName("参与问卷调查"); integralRuleWJDCDO.setAmount(4); integralRuleWJDCDO.setIntegralDescribe("参与问卷调查"); integralRuleWJDCDO.setIsRestrict(1); integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day); integralRuleWJDCDO.setCount(0); integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydcwj); integralRuleList.add(integralRuleWJDCDO); ComActIntegralRuleDO integralRuleJMHDDO = new ComActIntegralRuleDO(); integralRuleWJDCDO.setCommunityId(communityId); integralRuleWJDCDO.setName("参加居民活动"); integralRuleWJDCDO.setAmount(0); integralRuleWJDCDO.setIntegralDescribe("以居民身份参与社区活动可获得对应积分奖励"); integralRuleWJDCDO.setIsRestrict(1); integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day); integralRuleWJDCDO.setCount(0); integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cyjmhd); integralRuleList.add(integralRuleJMHDDO); ComActIntegralRuleDO integralRuleZYZHDDO = new ComActIntegralRuleDO(); integralRuleWJDCDO.setCommunityId(communityId); integralRuleWJDCDO.setName("参加志愿者活动"); integralRuleWJDCDO.setAmount(0); integralRuleWJDCDO.setIntegralDescribe("以志愿者身份参与社区活动可获得对应积分奖励"); integralRuleWJDCDO.setIsRestrict(1); integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day); integralRuleWJDCDO.setCount(0); integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cyzyzhd); integralRuleList.add(integralRuleZYZHDDO); ComActIntegralRuleDO integralRuleDYHDDO = new ComActIntegralRuleDO(); integralRuleWJDCDO.setCommunityId(communityId); integralRuleWJDCDO.setName("参加党员活动"); integralRuleWJDCDO.setAmount(0); integralRuleWJDCDO.setIntegralDescribe("以党员身份参与社区活动可获得相应积分"); integralRuleWJDCDO.setIsRestrict(1); integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day); integralRuleWJDCDO.setCount(0); integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydyhd); integralRuleList.add(integralRuleDYHDDO); 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("修改失败"); } } }