记得上下班打卡 | git大法好,push需谨慎

Commit 7222109b authored by GaoHu's avatar GaoHu

用户打款

parent 773a3169
...@@ -25,6 +25,8 @@ public class SmileRedisConst { ...@@ -25,6 +25,8 @@ public class SmileRedisConst {
public static final String SELL_USER_REVENUE = PREFIX.concat("user:revenue:"); //用户总营收 SELL_USER_REVENUE+uid public static final String SELL_USER_REVENUE = PREFIX.concat("user:revenue:"); //用户总营收 SELL_USER_REVENUE+uid
public static final String SELL_USER_DATA = PREFIX.concat("user:data:"); //用户总营收 SELL_USER_REVENUE+perId+uid
public static final String SELL_TEST = PREFIX.concat("test"); //用户总营收 SELL_USER_REVENUE+uid public static final String SELL_TEST = PREFIX.concat("test"); //用户总营收 SELL_USER_REVENUE+uid
public static final String SELL_SHOW_POEN = PREFIX.concat("show:poen:"); //代理总销售数量 public static final String SELL_SHOW_POEN = PREFIX.concat("show:poen:"); //代理总销售数量
......
...@@ -5,11 +5,10 @@ import com.alibaba.excel.EasyExcelFactory; ...@@ -5,11 +5,10 @@ import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteTable; import com.alibaba.excel.write.metadata.WriteTable;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -19,13 +18,10 @@ import com.liquidnet.client.admin.common.utils.StringUtils; ...@@ -19,13 +18,10 @@ import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.smile.dto.*; import com.liquidnet.client.admin.zhengzai.smile.dto.*;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService; import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService;
import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils; import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils;
import com.liquidnet.service.galaxy.utils.ObjectUtil;
import com.liquidnet.service.goblin.constant.SmileRedisConst; import com.liquidnet.service.goblin.constant.SmileRedisConst;
import com.liquidnet.service.kylin.dao.TicketAndStatusDao; import com.liquidnet.service.kylin.dao.TicketAndStatusDao;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto; import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinOrderTicketRelations;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import com.liquidnet.service.kylin.mapper.*; import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.smile.entity.SmileAgent; import com.liquidnet.service.smile.entity.SmileAgent;
...@@ -160,16 +156,35 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -160,16 +156,35 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return AjaxResult.warn("不可重复打款"); return AjaxResult.warn("不可重复打款");
} }
if (smilePriceParam.getStatus().equals(0)) { if (smilePriceParam.getStatus().equals(0)) {
//计算该用户的佣金 //计算该用户的佣金(旧)
Map userPerformance = orderTicketsMapper.getUserPerformanceByUidAndProId(smilePriceParam.getUid(), smilePriceParam.getPerformancesId()); /*Map userPerformance = orderTicketsMapper.getUserPerformanceByUidAndProId(smilePriceParam.getUid(), smilePriceParam.getPerformancesId());
BigDecimal price = userPerformance.get("commiss") == null ? new BigDecimal(0) : new BigDecimal(userPerformance.get("commiss").toString()); BigDecimal price = userPerformance.get("commiss") == null ? new BigDecimal(0) : new BigDecimal(userPerformance.get("commiss").toString());*/
smilePrice.setPrice(price); UserData userDataByUid = smileRedisUtils.getUserDataByUid(smilePriceParam.getPerformancesId(), smilePriceParam.getUid());
smilePrice.setCreatedDate(LocalDateTime.now());
smilePriceMapper.insert(smilePrice); //保存打款数据
if (userDataByUid != null) {
BigDecimal price = new BigDecimal("0");
List<UserDataAgentVo> dataAgentVos = userDataByUid.getDataAgentVos();
for (UserDataAgentVo userDataAgentVo : dataAgentVos) {
price = price.add(userDataAgentVo.getCommission());
}
smilePrice.setPrice(price);
smilePrice.setCreatedDate(LocalDateTime.now());
String userDataJson = JSON.toJSONString(userDataByUid);
//保存打款金额
smilePrice.setRecord(userDataJson);
smilePriceMapper.insert(smilePrice);
smileRedisUtils.setPriceByUid(smilePriceParam.getPerformancesId(), smilePriceParam.getUid());
//计算总营收
BigDecimal userTotalPrice = smileRedisUtils.getUserTotalPrice(smilePriceParam.getUid());
smileRedisUtils.setUserTotalPrice(smilePriceParam.getUid(), price.add(userTotalPrice));
}
/*smilePriceMapper.insert(smilePrice);
smileRedisUtils.setPriceByUid(smilePriceParam.getPerformancesId(), smilePriceParam.getUid()); smileRedisUtils.setPriceByUid(smilePriceParam.getPerformancesId(), smilePriceParam.getUid());
//计算总营收 //计算总营收
BigDecimal userTotalPrice = smileRedisUtils.getUserTotalPrice(smilePriceParam.getUid()); BigDecimal userTotalPrice = smileRedisUtils.getUserTotalPrice(smilePriceParam.getUid());
smileRedisUtils.setUserTotalPrice(smilePriceParam.getUid(), price.add(userTotalPrice)); smileRedisUtils.setUserTotalPrice(smilePriceParam.getUid(), price.add(userTotalPrice));*/
} }
return AjaxResult.success(); return AjaxResult.success();
} }
...@@ -310,6 +325,22 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -310,6 +325,22 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
List<UserData> userDataList = new ArrayList<>(stringListMap.size()); List<UserData> userDataList = new ArrayList<>(stringListMap.size());
//遍历分组 //遍历分组
for (Map.Entry<String, List<ShowBaseVoDto>> showMap : stringListMap.entrySet()) { for (Map.Entry<String, List<ShowBaseVoDto>> showMap : stringListMap.entrySet()) {
String uid = showMap.getKey();
//判断uid是否已打款
Integer status = smileRedisUtils.getShowPriceUid(performancesId, showMap.getKey());
if (status != null) {
//已打款跳出循环,去打款表中获取打款记录
LambdaQueryWrapper<SmilePrice> lambdaQueryWrapper = Wrappers.lambdaQuery(SmilePrice.class);
lambdaQueryWrapper.eq(SmilePrice::getPerformancesId, performancesId);
lambdaQueryWrapper.eq(SmilePrice::getDelTag, 0);
lambdaQueryWrapper.eq(SmilePrice::getUid, showMap.getKey());
SmilePrice smilePrice = smilePriceMapper.selectOne(lambdaQueryWrapper);
UserData userData = JSON.parseObject(smilePrice.getRecord(), UserData.class);
userData.setPriceStatus(0);
userDataList.add(userData);
continue;
}
UserData userData = UserData.getNew(); UserData userData = UserData.getNew();
List<ShowBaseVoDto> showBaseVoDtoList = showMap.getValue(); List<ShowBaseVoDto> showBaseVoDtoList = showMap.getValue();
List<UserDataAgentVo> userDataAgentVos = new ArrayList<>(); List<UserDataAgentVo> userDataAgentVos = new ArrayList<>();
...@@ -359,9 +390,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -359,9 +390,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
//设置打款状态 //设置打款状态
userData.setPriceStatus(smileRedisUtils.getShowPriceUid(performancesId, showBaseVoDtoList.get(0).getAgentId())); userData.setPriceStatus(smileRedisUtils.getShowPriceUid(performancesId, showBaseVoDtoList.get(0).getAgentId()));
userDataList.add(userData); userDataList.add(userData);
//缓存用户redis记录 计算
smileRedisUtils.setUserDataByUid(userData, performancesId);
} }
/*List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId); /*List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId);
List<UserData> userDataList = new ArrayList<>(smileUsers.size()); List<UserData> userDataList = new ArrayList<>(smileUsers.size());
for (SmileUser smileUser : smileUsers) { for (SmileUser smileUser : smileUsers) {
...@@ -567,7 +599,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -567,7 +599,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
price = price.add(userDataAgentVo.getPrice().multiply(userDataAgentVo.getNumber())); price = price.add(userDataAgentVo.getPrice().multiply(userDataAgentVo.getNumber()));
commission = commission.add(userDataAgentVo.getCommission()); commission = commission.add(userDataAgentVo.getCommission());
arrayList.add(userDataAgentVo.getNumber()); arrayList.add(userDataAgentVo.getNumber());
}else { } else {
arrayList.add(0); arrayList.add(0);
} }
} }
......
package com.liquidnet.client.admin.zhengzai.smile.utils; package com.liquidnet.client.admin.zhengzai.smile.utils;
import com.liquidnet.client.admin.zhengzai.smile.dto.UserData;
import com.liquidnet.service.goblin.dto.vo.SmileProjectDetailsVo; import com.liquidnet.service.goblin.dto.vo.SmileProjectDetailsVo;
import com.liquidnet.common.cache.redis.util.AbstractRedisUtil; import com.liquidnet.common.cache.redis.util.AbstractRedisUtil;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil; import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
...@@ -13,7 +14,6 @@ import com.liquidnet.service.smile.entity.SmileVolunteersTeam; ...@@ -13,7 +14,6 @@ import com.liquidnet.service.smile.entity.SmileVolunteersTeam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -107,6 +107,30 @@ public class SmileRedisUtils { ...@@ -107,6 +107,30 @@ public class SmileRedisUtils {
return (String) redisDataSourceUtil.getRedisSweetUtil().get(SmileRedisConst.SMILE_SHOW.concat(performancesId)); return (String) redisDataSourceUtil.getRedisSweetUtil().get(SmileRedisConst.SMILE_SHOW.concat(performancesId));
} }
/**
* 保存用户最新计算数据
* @param userData
*/
public void setUserDataByUid(UserData userData,String perId) {
String key = SmileRedisConst.SELL_USER_DATA.concat(perId).concat(":").concat(userData.getUid());
redisDataSourceUtil.getRedisSweetUtil().set(key,userData);
}
/**
* 获取用户最新计算数据
* @param userData
*/
public UserData getUserDataByUid(String perId,String uid) {
String key = SmileRedisConst.SELL_USER_DATA.concat(perId).concat(":").concat(uid);
Object obj = redisDataSourceUtil.getRedisSweetUtil().get(key);
if (obj==null){
return null;
}else {
return (UserData)obj;
}
}
/** /**
* 保存演出ids * 保存演出ids
*/ */
......
...@@ -44,6 +44,10 @@ public class SmilePrice implements Serializable { ...@@ -44,6 +44,10 @@ public class SmilePrice implements Serializable {
*/ */
private BigDecimal price; private BigDecimal price;
/**
* 打款记录保留
*/
private String record;
/** /**
* 0:未删除,1:已删除 * 0:未删除,1:已删除
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment