package com.panzhihua.service_dangjian.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
|
import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
|
import com.panzhihua.common.utlis.StringUtils;
|
import com.panzhihua.service_dangjian.dao.ComActIntegralUsersMapper;
|
import com.panzhihua.service_dangjian.entity.ComActIntegralUser;
|
import com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade;
|
import com.panzhihua.service_dangjian.entity.IntegratingTask;
|
import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
|
import com.panzhihua.service_dangjian.service.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
|
@Slf4j
|
@Service
|
public class ComActIntegralUsersServiceImpl extends ServiceImpl<ComActIntegralUsersMapper,
|
ComActIntegralUser> implements ComActIntegralUsersService
|
{
|
|
|
@Resource
|
private ComActIntegralUsersService integralUsersService;
|
|
@Resource
|
private ComActIntegralUserTradeDaoService tradeDaoService;
|
|
@Resource
|
private ComActIntegralUserChangeDAOService changeDAOService;
|
|
|
@Resource
|
private NewFightIntegratingTaskService taskService;
|
|
@Resource
|
private NewFightConvenientMerchantService merchantService;
|
|
|
@Override
|
public R upIntegral(NewFightIntegral item)
|
{
|
|
// 需要给用户增加的积分数量
|
Integer amount = 0;
|
// 查询用户积分账户
|
ComActIntegralUser integralUserDO =
|
integralUsersService.getOne(new QueryWrapper<ComActIntegralUser>().lambda()
|
.eq(ComActIntegralUser::getUserId, item.getUserId())
|
.eq(ComActIntegralUser::getCommunityId, item.getCommunityId()));
|
|
if (integralUserDO == null) {
|
integralUserDO = new ComActIntegralUser();
|
integralUserDO.setCommunityId(Long.valueOf(item.getCommunityId()));
|
integralUserDO.setUserId(Long.valueOf(item.getUserId()));
|
integralUserDO.setCreateAt(new Date());
|
integralUserDO.setStatus(ComActIntegralUser.status.yes);
|
integralUserDO.setIntegralSum(0);
|
integralUserDO.setIntegralAvailableSum(0);
|
integralUserDO.setIntegralFrozenSum(0);
|
integralUserDO.setIntegralParty(0);
|
integralUserDO.setIntegralAvailableParty(0);
|
integralUserDO.setIntegralFrozenParty(0);
|
integralUserDO.setIntegralVolunteer(0);
|
integralUserDO.setIntegralAvailableVolunteer(0);
|
integralUserDO.setIntegralFrozenVolunteer(0);
|
integralUserDO.setIntegralResident(0);
|
integralUserDO.setIntegralAvailableResident(0);
|
integralUserDO.setIntegralFrozenResident(0);
|
integralUsersService.save(integralUserDO);
|
}
|
|
|
if (integralUserDO.getStatus().equals(ComActIntegralUser.status.no)) {
|
log.error("用户钱包已被禁用,记录积分失败,用户id:" + item.getUserId());
|
return R.fail("用户钱包已被禁用,记录积分失败,用户id:" + item.getUserId());
|
}
|
|
Long integralId = integralUserDO.getId();
|
// 记录变动前钱包金额
|
Integer integralSum = integralUserDO.getIntegralSum();
|
Integer integralAvailableSum = integralUserDO.getIntegralAvailableSum();
|
Integer integralFrozenSum = integralUserDO.getIntegralFrozenSum();
|
Integer integralParty = integralUserDO.getIntegralParty();
|
Integer integralAvailableParty = integralUserDO.getIntegralAvailableParty();
|
Integer integralFrozenParty = integralUserDO.getIntegralFrozenParty();
|
Integer integralVolunteer = integralUserDO.getIntegralVolunteer();
|
Integer integralAvailableVolunteer = integralUserDO.getIntegralAvailableVolunteer();
|
Integer integralFrozenVolunteer = integralUserDO.getIntegralFrozenVolunteer();
|
Integer integralResident = integralUserDO.getIntegralResident();
|
Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident();
|
Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident();
|
|
//业务类型 9商城积分兑换 10商家线下积分兑换 11花城登录 12 查看问题清单 "
|
// "13查看需求清单 14 查看报道服务活动 15查看微心愿 16 查看随手拍 17 每日签到 18 上传“随手拍”或“微心愿
|
switch (item.getType())
|
{
|
case "9":
|
//商城积分兑换
|
//积分总数加减
|
break;
|
case "10":
|
//商家线下积分兑换 增加
|
//商家积分增加
|
NewFightConvenientMerchant merchant=merchantService.selectMerchantById(item.getMerchantId());
|
int allMoney=0;
|
if(!StringUtils.isEmpty(merchant.getBusinessCredit()))
|
{
|
allMoney=Integer.valueOf(merchant.getBusinessCredit());
|
}
|
if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.add)
|
{
|
allMoney=allMoney+Integer.valueOf(item.getIntegralNum());
|
|
}
|
else
|
{
|
//商家积分减少
|
allMoney=allMoney-Integer.valueOf(item.getIntegralNum());
|
}
|
NewFightConvenientMerchantVO merchantVO=new NewFightConvenientMerchantVO();
|
merchantVO.setId(merchant.getId());
|
merchantVO.setBusinessCredit(allMoney+"");
|
merchantService.editData(merchantVO);
|
break;
|
case "11":
|
//花城登录
|
item.setRemark("花城登录");
|
IntegratingTask task=taskService.getDetails(item.getUserId(),
|
item.getCommunityId(),item.getType());
|
if(task!=null && StringUtils.equals("2",task.getIsDraw()) )
|
{
|
return R.ok();
|
}
|
|
item.setAddOrReduce(1);
|
item.setIntegralNum("2");
|
|
IntegratingTaskVO taskVO=new IntegratingTaskVO();
|
taskVO.setIsDraw("2");
|
taskVO.setId(item.getTaskId());
|
taskService.editData(taskVO);
|
break;
|
case "12":
|
// 查看问题清单
|
item.setRemark("查看问题清单");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("1");
|
IntegratingTaskVO taskVO2=new IntegratingTaskVO();
|
taskVO2.setIsDraw("2");
|
taskVO2.setId(item.getTaskId());
|
taskService.editData(taskVO2);
|
break;
|
case "13":
|
//13查看需求清单
|
item.setRemark("查看需求清单");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("1");
|
IntegratingTaskVO taskVO13=new IntegratingTaskVO();
|
taskVO13.setIsDraw("2");
|
taskVO13.setId(item.getTaskId());
|
taskService.editData(taskVO13);
|
break;
|
case "14":
|
//查看报道服务活动
|
item.setRemark("查看需求清单");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("1");
|
IntegratingTaskVO taskVO14=new IntegratingTaskVO();
|
taskVO14.setIsDraw("2");
|
taskVO14.setId(item.getTaskId());
|
taskService.editData(taskVO14);
|
break;
|
case "15":
|
//15查看微心愿
|
item.setRemark("查看微心愿");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("1");
|
IntegratingTaskVO taskVO15=new IntegratingTaskVO();
|
taskVO15.setIsDraw("2");
|
taskVO15.setId(item.getTaskId());
|
taskService.editData(taskVO15);
|
break;
|
case "16":
|
//查看随手拍
|
item.setRemark("查看随手拍");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("1");
|
IntegratingTaskVO taskVO16=new IntegratingTaskVO();
|
taskVO16.setIsDraw("2");
|
taskVO16.setId(item.getTaskId());
|
taskService.editData(taskVO16);
|
break;
|
case "17":
|
//每日签到
|
// IntegratingTask task2=taskService.getDetails(item.getUserId(),
|
// item.getCommunityId(),item.getType());
|
// if(task2!=null && StringUtils.equals("2",task2.getIsDraw()) )
|
// {
|
// return R.ok();
|
// }
|
item.setRemark("每日签到");
|
item.setAddOrReduce(1);
|
// IntegratingTaskVO taskVO2=new IntegratingTaskVO();
|
// taskVO2.setIsDraw("2");
|
// taskVO2.setId(item.getTaskId());
|
// taskService.editData(taskVO2);
|
break;
|
case "18":
|
//上传“随手拍”或“微心愿
|
item.setRemark("上传“随手拍”或“微心愿");
|
item.setAddOrReduce(1);
|
item.setIntegralNum("2");
|
break;
|
}
|
|
// 根据不同身份,计算钱包金额
|
// if (identityType.equals(ComActIntegralUserTrade.identityType.jm)) {
|
// int integralResidentNow = addIntegral(integralResident + amount);
|
// if (amount < 0) {
|
// reduceAmount = integralResident - integralResidentNow;
|
// }
|
// integralUserDO.setIntegralResident(integralResidentNow);
|
// integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
|
// } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) {
|
// int integralPartyNow = addIntegral(integralParty + amount);
|
// if (amount < 0) {
|
// reduceAmount = integralParty - integralPartyNow;
|
// }
|
// integralUserDO.setIntegralParty(integralPartyNow);
|
// integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount));
|
// } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) {
|
// int integralVolunteerNow = addIntegral(integralVolunteer + amount);
|
// if (amount < 0) {
|
// reduceAmount = integralVolunteer - integralVolunteerNow;
|
// }
|
// integralUserDO.setIntegralVolunteer(integralVolunteerNow);
|
// integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount));
|
// }
|
|
//获取积分
|
if(!StringUtils.isEmpty(item.getIntegralNum()))
|
{
|
amount=Integer.valueOf(item.getIntegralNum());
|
}
|
|
|
//积分总数加减
|
if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.add)
|
{
|
int integralResidentNow = addIntegral(integralResident + amount);
|
integralUserDO.setIntegralResident(integralResidentNow);
|
integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
|
|
}
|
else {
|
|
int integralResidentNow = addIntegral(integralResident - amount);
|
integralUserDO.setIntegralResident(integralResidentNow);
|
integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() - amount));
|
}
|
|
|
//积分总数加减
|
if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.reduce)
|
{
|
// integralUserDO.setIntegralSum(addIntegral(integralSum - amount));
|
integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum - amount));
|
}
|
else {
|
integralUserDO.setIntegralSum(addIntegral(integralSum + amount));
|
integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum + amount));
|
}
|
integralUserDO.setUpdateAt(new Date());
|
|
// 更新钱包
|
integralUsersService.updateById(integralUserDO);
|
|
// 增加积分账户交易记录
|
Long tradeId = tradeDaoService.addIntegralTradeRecord(Long.valueOf(item.getUserId()), integralId, Long.valueOf(item.getCommunityId()),
|
Long.valueOf(item.getServiceId()), Integer.valueOf(item.getType()), Integer.valueOf(item.getIntegralNum()),
|
item.getAddOrReduce(), item.getRemark(), Integer.valueOf(item.getIdentityType()), 2L);
|
|
// 增加积分账户变更记录
|
changeDAOService.addIntegralUserChangeRecord(Long.valueOf(item.getUserId()), integralId,
|
Long.valueOf(item.getCommunityId()), integralSum,
|
integralUserDO.getIntegralSum(), integralAvailableSum, integralUserDO.getIntegralAvailableSum(),
|
integralFrozenSum, integralUserDO.getIntegralFrozenSum(), integralParty, integralUserDO.getIntegralParty(),
|
integralAvailableParty, integralUserDO.getIntegralAvailableParty(), integralFrozenParty,
|
integralUserDO.getIntegralFrozenParty(), integralVolunteer, integralUserDO.getIntegralVolunteer(),
|
integralAvailableVolunteer, integralUserDO.getIntegralAvailableVolunteer(), integralFrozenVolunteer,
|
integralUserDO.getIntegralFrozenVolunteer(), integralResident, integralUserDO.getIntegralResident(),
|
integralAvailableResident, integralUserDO.getIntegralAvailableResident(), integralFrozenResident,
|
integralUserDO.getIntegralFrozenResident(), tradeId);
|
|
return R.ok();
|
}
|
|
|
|
private int addIntegral(int integral) {
|
return integral > 0 ? integral : 0;
|
}
|
|
}
|