|
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.fs.common.core.domain.R;
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
import com.fs.common.utils.DateUtils;
|
|
|
|
|
+import com.fs.common.utils.StringUtils;
|
|
|
import com.fs.his.config.IntegralConfig;
|
|
import com.fs.his.config.IntegralConfig;
|
|
|
import com.fs.his.domain.AdProfitDetail;
|
|
import com.fs.his.domain.AdProfitDetail;
|
|
|
import com.fs.his.domain.FsUser;
|
|
import com.fs.his.domain.FsUser;
|
|
@@ -78,18 +79,18 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
return fsUserIntegralLogsMapper.selectFsUserIntegralLogsList(fsUserIntegralLogs);
|
|
return fsUserIntegralLogsMapper.selectFsUserIntegralLogsList(fsUserIntegralLogs);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 新增积分记录
|
|
|
|
|
- *
|
|
|
|
|
- * @param fsUserIntegralLogs 积分记录
|
|
|
|
|
- * @return 结果
|
|
|
|
|
- */
|
|
|
|
|
- @Override
|
|
|
|
|
- public int insertFsUserIntegralLogs(FsUserIntegralLogs fsUserIntegralLogs)
|
|
|
|
|
- {
|
|
|
|
|
- fsUserIntegralLogs.setCreateTime(DateUtils.getNowDate());
|
|
|
|
|
- return fsUserIntegralLogsMapper.insertFsUserIntegralLogs(fsUserIntegralLogs);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+// /**
|
|
|
|
|
+// * 新增积分记录
|
|
|
|
|
+// *
|
|
|
|
|
+// * @param fsUserIntegralLogs 积分记录
|
|
|
|
|
+// * @return 结果
|
|
|
|
|
+// */
|
|
|
|
|
+// @Override
|
|
|
|
|
+// public int insertFsUserIntegralLogs(FsUserIntegralLogs fsUserIntegralLogs)
|
|
|
|
|
+// {
|
|
|
|
|
+// fsUserIntegralLogs.setCreateTime(DateUtils.getNowDate());
|
|
|
|
|
+// return fsUserIntegralLogsMapper.insertFsUserIntegralLogs(fsUserIntegralLogs);
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 修改积分记录
|
|
* 修改积分记录
|
|
@@ -148,22 +149,28 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
for (FsUserIntegralLogs fsUserIntegralLogs : log) {
|
|
for (FsUserIntegralLogs fsUserIntegralLogs : log) {
|
|
|
Long integral = fsUser.getIntegral();
|
|
Long integral = fsUser.getIntegral();
|
|
|
Long integralLog = fsUserIntegralLogs.getIntegral();
|
|
Long integralLog = fsUserIntegralLogs.getIntegral();
|
|
|
- Long balance = integral - integralLog;
|
|
|
|
|
- if (balance<0){
|
|
|
|
|
- balance=0L;
|
|
|
|
|
- }
|
|
|
|
|
- fsUser.setIntegral(balance);
|
|
|
|
|
- fsUserMapper.updateFsUser(fsUser);
|
|
|
|
|
- fsUserIntegralLogs.setStatus(1);
|
|
|
|
|
- fsUserIntegralLogsMapper.updateFsUserIntegralLogs(fsUserIntegralLogs);
|
|
|
|
|
- FsUserIntegralLogs logs = new FsUserIntegralLogs();
|
|
|
|
|
- logs.setIntegral(0-integralLog);
|
|
|
|
|
- logs.setUserId(id);
|
|
|
|
|
- logs.setBalance(balance);
|
|
|
|
|
- logs.setLogType(7);
|
|
|
|
|
- logs.setStatus(1);
|
|
|
|
|
- logs.setCreateTime(new Date());
|
|
|
|
|
- fsUserIntegralLogsMapper.insertFsUserIntegralLogs(logs);
|
|
|
|
|
|
|
+// Long balance = integral - integralLog;
|
|
|
|
|
+// if (balance<0){
|
|
|
|
|
+// balance=0L;
|
|
|
|
|
+// }
|
|
|
|
|
+// fsUser.setIntegral(balance);
|
|
|
|
|
+// fsUserMapper.updateFsUser(fsUser);
|
|
|
|
|
+// fsUserIntegralLogs.setStatus(1);
|
|
|
|
|
+// fsUserIntegralLogsMapper.updateFsUserIntegralLogs(fsUserIntegralLogs);
|
|
|
|
|
+// FsUserIntegralLogs logs = new FsUserIntegralLogs();
|
|
|
|
|
+// logs.setIntegral(0-integralLog);
|
|
|
|
|
+// logs.setUserId(id);
|
|
|
|
|
+// logs.setBalance(balance);
|
|
|
|
|
+// logs.setLogType(7);
|
|
|
|
|
+// logs.setStatus(1);
|
|
|
|
|
+// logs.setCreateTime(new Date());
|
|
|
|
|
+// fsUserIntegralLogsMapper.insertFsUserIntegralLogs(logs);
|
|
|
|
|
+
|
|
|
|
|
+ FsUserAddIntegralTemplateParam integralParam = new FsUserAddIntegralTemplateParam();
|
|
|
|
|
+ integralParam.setUserId(fsUser.getUserId());
|
|
|
|
|
+ integralParam.setLogType(FsUserIntegralLogTypeEnum.TYPE_7);
|
|
|
|
|
+ integralParam.setPoints(-integralLog);
|
|
|
|
|
+ addIntegralTemplate(integralParam);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -179,18 +186,24 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
if (user!=null){
|
|
if (user!=null){
|
|
|
FsUserIntegralLogs integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsAddUserAddress(userId);
|
|
FsUserIntegralLogs integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsAddUserAddress(userId);
|
|
|
if (integralLogs==null){
|
|
if (integralLogs==null){
|
|
|
- FsUser userMap=new FsUser();
|
|
|
|
|
- userMap.setUserId(user.getUserId());
|
|
|
|
|
- userMap.setIntegral(user.getIntegral()+1000L);
|
|
|
|
|
- fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
- integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
- integralLogs.setIntegral(1000L);
|
|
|
|
|
- integralLogs.setUserId(userId);
|
|
|
|
|
- integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
- integralLogs.setLogType(12);
|
|
|
|
|
- integralLogs.setBusinessId(addressId.toString());
|
|
|
|
|
- integralLogs.setCreateTime(new Date());
|
|
|
|
|
- fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
|
|
+// FsUser userMap=new FsUser();
|
|
|
|
|
+// userMap.setUserId(user.getUserId());
|
|
|
|
|
+// userMap.setIntegral(user.getIntegral()+1000L);
|
|
|
|
|
+// fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
+// integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
+// integralLogs.setIntegral(1000L);
|
|
|
|
|
+// integralLogs.setUserId(userId);
|
|
|
|
|
+// integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
+// integralLogs.setLogType(12);
|
|
|
|
|
+// integralLogs.setBusinessId(addressId.toString());
|
|
|
|
|
+// integralLogs.setCreateTime(new Date());
|
|
|
|
|
+// fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
+ FsUserAddIntegralTemplateParam integralParam = new FsUserAddIntegralTemplateParam();
|
|
|
|
|
+ integralParam.setUserId(user.getUserId());
|
|
|
|
|
+ integralParam.setLogType(FsUserIntegralLogTypeEnum.TYPE_12);
|
|
|
|
|
+ integralParam.setBusinessId(addressId.toString());
|
|
|
|
|
+// integralParam.setPoints(); //读取配置
|
|
|
|
|
+ addIntegralTemplate(integralParam);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -198,109 +211,114 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public R addIntegral(FsUserAddIntegralParam param) {
|
|
public R addIntegral(FsUserAddIntegralParam param) {
|
|
|
- FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
|
|
|
- if (user!=null){
|
|
|
|
|
- String json =configService.selectConfigByKey("his.integral");
|
|
|
|
|
- IntegralConfig config= JSONUtil.toBean(json,IntegralConfig.class);
|
|
|
|
|
- System.out.println("Types: " + Arrays.toString(config.getIntegralTypeByOneDay()));
|
|
|
|
|
- System.out.println("User ID: " + param.getUserId());
|
|
|
|
|
- Integer todayTotalIntegral= fsUserIntegralLogsMapper.selectTodayTotalIntegral(config.getIntegralTypeByOneDay(),param.getUserId());
|
|
|
|
|
- if (todayTotalIntegral==null){
|
|
|
|
|
- todayTotalIntegral=0;
|
|
|
|
|
- }
|
|
|
|
|
- if (todayTotalIntegral>=config.getIntegralByOneDay()){
|
|
|
|
|
- return R.error("当天积分已达限额");
|
|
|
|
|
- }
|
|
|
|
|
- switch (param.getType()){
|
|
|
|
|
- case 1:
|
|
|
|
|
- return addProductIntegral(config.getIntegralProduct(),user.getUserId(),user.getIntegral());
|
|
|
|
|
- case 2:
|
|
|
|
|
- return addVideoIntegral(config.getIntegralFirstVideo(),config.getIntegralFinishVideo(),user.getUserId(),user.getIntegral());
|
|
|
|
|
- case 3:
|
|
|
|
|
- return addGameIntegral(param.getIntegral(),user.getUserId(),user.getIntegral());
|
|
|
|
|
- case 5:
|
|
|
|
|
- return addAdvIntegral(param,user);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return R.error("用户信息不存在");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 添加广告积分
|
|
|
|
|
- */
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
- public R addAdvIntegral(FsUserAddIntegralParam param, FsUser user) {
|
|
|
|
|
- try {
|
|
|
|
|
- // 查询用户详细分润
|
|
|
|
|
- AdProfitDetail adProfitDetail = adProfitDetailMapper.selectOne(new LambdaQueryWrapper<AdProfitDetail>()
|
|
|
|
|
- .eq(AdProfitDetail::getUserId, param.getUserId())
|
|
|
|
|
- .eq(AdProfitDetail::getAdTaskId, param.getExtra()));
|
|
|
|
|
- if (BeanUtil.isEmpty(adProfitDetail)) {
|
|
|
|
|
- return R.error("用户没有分润信息");
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- // 客户分润转积分 1元=1000积分 库里存储的是单位是分: * 10
|
|
|
|
|
- BigDecimal customerPoints = adProfitDetail.getUserMoney()
|
|
|
|
|
- .multiply(new BigDecimal("10"))
|
|
|
|
|
- .setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
|
|
-
|
|
|
|
|
- if (customerPoints.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
|
|
- return R.error("芳华币为0,无法添加");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 更新用户积分
|
|
|
|
|
- FsUser fsUser = new FsUser();
|
|
|
|
|
- fsUser.setUserId(param.getUserId());
|
|
|
|
|
- long newIntegral = Objects.nonNull(user.getIntegral())
|
|
|
|
|
- ? user.getIntegral() + customerPoints.longValue()
|
|
|
|
|
- : customerPoints.longValue();
|
|
|
|
|
- long newWithdrawIntegral = Objects.nonNull(user.getWithdrawIntegral())
|
|
|
|
|
- ? user.getWithdrawIntegral() + customerPoints.longValue()
|
|
|
|
|
- : customerPoints.longValue();
|
|
|
|
|
- fsUser.setIntegral(newIntegral);
|
|
|
|
|
- fsUser.setWithdrawIntegral(newWithdrawIntegral);
|
|
|
|
|
- fsUser.setUpdateTime(new Date());
|
|
|
|
|
- fsUserMapper.updateFsUser(fsUser);
|
|
|
|
|
-
|
|
|
|
|
- // 添加积分记录
|
|
|
|
|
- FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
- integralLogs.setLogType(FsUserIntegralLogTypeEnum.TYPE_31.getValue());
|
|
|
|
|
- integralLogs.setUserId(param.getUserId());
|
|
|
|
|
- integralLogs.setIntegral(customerPoints.longValue());
|
|
|
|
|
- integralLogs.setBalance(newIntegral); // 用计算后的新积分作为余额,避免重复计算
|
|
|
|
|
- integralLogs.setCreateTime(new Date());
|
|
|
|
|
- integralLogs.setNickName(user.getNickName());
|
|
|
|
|
- integralLogs.setPhone(user.getPhone());
|
|
|
|
|
-// fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
- insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
- return R.ok("广告任务完成,获得" + customerPoints + "芳华币").put("integral", customerPoints);
|
|
|
|
|
-
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("用户[{}]芳华币添加失败,参数:{}", param.getUserId(), JSON.toJSONString(param), e);
|
|
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
|
- return R.error("获取芳华币失败,请稍后重试");
|
|
|
|
|
|
|
+ FsUserIntegralLogTypeEnum integralLogTypeEnum= null;
|
|
|
|
|
+ Long points = null;
|
|
|
|
|
+ Long userId = param.getUserId();
|
|
|
|
|
+ if (userId!=null){
|
|
|
|
|
+ return R.error("缺少用户参数");
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public R addGameIntegral(Long integral,Long userId,Long userIntegral) {
|
|
|
|
|
- FsUser userMap=new FsUser();
|
|
|
|
|
- userMap.setUserId(userId);
|
|
|
|
|
- userMap.setIntegral(userIntegral+integral);
|
|
|
|
|
- fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
- FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
- integralLogs.setIntegral(integral);
|
|
|
|
|
- integralLogs.setUserId(userId);
|
|
|
|
|
- integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
- integralLogs.setLogType(FsUserIntegralLogTypeEnum.TYPE_29.getValue());
|
|
|
|
|
- integralLogs.setCreateTime(new Date());
|
|
|
|
|
- if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
- return R.ok("玩游戏获得"+integral+"积分");
|
|
|
|
|
|
|
+ FsUserAddIntegralTemplateParam addIntegralTemplateParam = new FsUserAddIntegralTemplateParam();
|
|
|
|
|
+ switch (param.getType()){
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ integralLogTypeEnum = FsUserIntegralLogTypeEnum.TYPE_13;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ integralLogTypeEnum = FsUserIntegralLogTypeEnum.TYPE_14;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ points = param.getIntegral();
|
|
|
|
|
+ integralLogTypeEnum = FsUserIntegralLogTypeEnum.TYPE_29;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 5:
|
|
|
|
|
+ addIntegralTemplateParam.setBusinessId(param.getExtra());
|
|
|
|
|
+ integralLogTypeEnum = FsUserIntegralLogTypeEnum.TYPE_31;
|
|
|
|
|
+ default:
|
|
|
|
|
+ return R.error();
|
|
|
}
|
|
}
|
|
|
- return R.error("获取积分失败");
|
|
|
|
|
|
|
+ addIntegralTemplateParam.setUserId(param.getUserId());
|
|
|
|
|
+ addIntegralTemplateParam.setLogType(integralLogTypeEnum);
|
|
|
|
|
+ addIntegralTemplateParam.setPoints(points);
|
|
|
|
|
+ addIntegralTemplateParam.setRemark(integralLogTypeEnum.getDesc());
|
|
|
|
|
+ return addIntegralTemplate(addIntegralTemplateParam);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// /**
|
|
|
|
|
+// * 添加广告积分
|
|
|
|
|
+// */
|
|
|
|
|
+// @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+// public R addAdvIntegral(FsUserAddIntegralParam param, FsUser user) {
|
|
|
|
|
+// try {
|
|
|
|
|
+// // 查询用户详细分润
|
|
|
|
|
+// AdProfitDetail adProfitDetail = adProfitDetailMapper.selectOne(new LambdaQueryWrapper<AdProfitDetail>()
|
|
|
|
|
+// .eq(AdProfitDetail::getUserId, param.getUserId())
|
|
|
|
|
+// .eq(AdProfitDetail::getAdTaskId, param.getExtra()));
|
|
|
|
|
+// if (BeanUtil.isEmpty(adProfitDetail)) {
|
|
|
|
|
+// return R.error("用户没有分润信息");
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// // 客户分润转积分 1元=1000积分 库里存储的是单位是分: * 10
|
|
|
|
|
+// BigDecimal customerPoints = adProfitDetail.getUserMoney()
|
|
|
|
|
+// .multiply(new BigDecimal("10"))
|
|
|
|
|
+// .setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
|
|
+//
|
|
|
|
|
+// if (customerPoints.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
|
|
+// return R.error("芳华币为0,无法添加");
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// // 更新用户积分
|
|
|
|
|
+// FsUser fsUser = new FsUser();
|
|
|
|
|
+// fsUser.setUserId(param.getUserId());
|
|
|
|
|
+// long newIntegral = Objects.nonNull(user.getIntegral())
|
|
|
|
|
+// ? user.getIntegral() + customerPoints.longValue()
|
|
|
|
|
+// : customerPoints.longValue();
|
|
|
|
|
+// long newWithdrawIntegral = Objects.nonNull(user.getWithdrawIntegral())
|
|
|
|
|
+// ? user.getWithdrawIntegral() + customerPoints.longValue()
|
|
|
|
|
+// : customerPoints.longValue();
|
|
|
|
|
+// fsUser.setIntegral(newIntegral);
|
|
|
|
|
+// fsUser.setWithdrawIntegral(newWithdrawIntegral);
|
|
|
|
|
+// fsUser.setUpdateTime(new Date());
|
|
|
|
|
+// fsUserMapper.updateFsUser(fsUser);
|
|
|
|
|
+//
|
|
|
|
|
+// // 添加积分记录
|
|
|
|
|
+// FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
+// integralLogs.setLogType(FsUserIntegralLogTypeEnum.TYPE_31.getValue());
|
|
|
|
|
+// integralLogs.setUserId(param.getUserId());
|
|
|
|
|
+// integralLogs.setIntegral(customerPoints.longValue());
|
|
|
|
|
+// integralLogs.setBalance(newIntegral); // 用计算后的新积分作为余额,避免重复计算
|
|
|
|
|
+// integralLogs.setCreateTime(new Date());
|
|
|
|
|
+// integralLogs.setNickName(user.getNickName());
|
|
|
|
|
+// integralLogs.setPhone(user.getPhone());
|
|
|
|
|
+//// fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
+// insertFsUserIntegralLogs(integralLogs);
|
|
|
|
|
+// return R.ok("广告任务完成,获得" + customerPoints + "芳华币").put("integral", customerPoints);
|
|
|
|
|
+//
|
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
|
+// log.error("用户[{}]芳华币添加失败,参数:{}", param.getUserId(), JSON.toJSONString(param), e);
|
|
|
|
|
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
|
|
+// return R.error("获取芳华币失败,请稍后重试");
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// public R addGameIntegral(Long integral,Long userId,Long userIntegral) {
|
|
|
|
|
+// FsUser userMap=new FsUser();
|
|
|
|
|
+// userMap.setUserId(userId);
|
|
|
|
|
+// userMap.setIntegral(userIntegral+integral);
|
|
|
|
|
+// fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
+// FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
+// integralLogs.setIntegral(integral);
|
|
|
|
|
+// integralLogs.setUserId(userId);
|
|
|
|
|
+// integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
+// integralLogs.setLogType(FsUserIntegralLogTypeEnum.TYPE_29.getValue());
|
|
|
|
|
+// integralLogs.setCreateTime(new Date());
|
|
|
|
|
+// if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
+// return R.ok("玩游戏获得"+integral+"积分");
|
|
|
|
|
+// }
|
|
|
|
|
+// return R.error("获取积分失败");
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
- * 更新积分通用
|
|
|
|
|
|
|
+ * 更新积分通用 新增积分提现配置
|
|
|
* @param param
|
|
* @param param
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
@@ -309,15 +327,21 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
public R addIntegralTemplate(FsUserAddIntegralTemplateParam param) {
|
|
public R addIntegralTemplate(FsUserAddIntegralTemplateParam param) {
|
|
|
FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
FsUser user = fsUserMapper.selectFsUserByUserId(param.getUserId());
|
|
|
if (user!=null){
|
|
if (user!=null){
|
|
|
|
|
+ Long userId = user.getUserId();
|
|
|
String json =configService.selectConfigByKey("his.integral");
|
|
String json =configService.selectConfigByKey("his.integral");
|
|
|
IntegralConfig config= JSONUtil.toBean(json,IntegralConfig.class);
|
|
IntegralConfig config= JSONUtil.toBean(json,IntegralConfig.class);
|
|
|
Integer[] integralTypeByOneDay = config.getIntegralTypeByOneDay();
|
|
Integer[] integralTypeByOneDay = config.getIntegralTypeByOneDay();
|
|
|
|
|
+ List<Integer> integralTypes = config.getIntegralTypes();
|
|
|
System.out.println("Types: " + Arrays.toString(integralTypeByOneDay));
|
|
System.out.println("Types: " + Arrays.toString(integralTypeByOneDay));
|
|
|
System.out.println("User ID: " + param.getUserId());
|
|
System.out.println("User ID: " + param.getUserId());
|
|
|
-
|
|
|
|
|
|
|
+ FsUserIntegralLogTypeEnum logTypeEnum = param.getLogType();
|
|
|
|
|
+ if (logTypeEnum == null){
|
|
|
|
|
+ return R.error();
|
|
|
|
|
+ }
|
|
|
|
|
+ Integer logType = logTypeEnum.getValue();
|
|
|
//判断是否在限额类型内
|
|
//判断是否在限额类型内
|
|
|
if (integralTypeByOneDay != null) {
|
|
if (integralTypeByOneDay != null) {
|
|
|
- if (Arrays.asList(integralTypeByOneDay).contains(param.getLogType())){
|
|
|
|
|
|
|
+ if (Arrays.asList(integralTypeByOneDay).contains(logType)){
|
|
|
Integer todayTotalIntegral= fsUserIntegralLogsMapper.selectTodayTotalIntegral(integralTypeByOneDay,param.getUserId());
|
|
Integer todayTotalIntegral= fsUserIntegralLogsMapper.selectTodayTotalIntegral(integralTypeByOneDay,param.getUserId());
|
|
|
if (todayTotalIntegral==null){
|
|
if (todayTotalIntegral==null){
|
|
|
todayTotalIntegral=0;
|
|
todayTotalIntegral=0;
|
|
@@ -327,221 +351,290 @@ public class FsUserIntegralLogsServiceImpl implements IFsUserIntegralLogsService
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-// if (Arrays.asList(integralTypeByOneDay).contains(param.getLogType())){
|
|
|
|
|
-// Integer todayTotalIntegral= fsUserIntegralLogsMapper.selectTodayTotalIntegral(integralTypeByOneDay,param.getUserId());
|
|
|
|
|
-// if (todayTotalIntegral==null){
|
|
|
|
|
-// todayTotalIntegral=0;
|
|
|
|
|
-// }
|
|
|
|
|
-// if (todayTotalIntegral>=config.getIntegralByOneDay()){
|
|
|
|
|
-// return R.error("当天积分已达限额");
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
- Integer integralNum = null;
|
|
|
|
|
- FsUserIntegralLogTypeEnum logsType = null;
|
|
|
|
|
|
|
+ Long integralNum = null;
|
|
|
List<FsUserIntegralLogs> integralLogs;
|
|
List<FsUserIntegralLogs> integralLogs;
|
|
|
- switch (param.getLogType()){
|
|
|
|
|
-// case 1: //签到
|
|
|
|
|
-// integralNum = config.getIntegralInvite();
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_1;
|
|
|
|
|
-// break;
|
|
|
|
|
|
|
+ switch (logType){
|
|
|
|
|
+ case 1: //签到
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
case 2: //消费获得积分
|
|
case 2: //消费获得积分
|
|
|
integralNum = param.getPoints();
|
|
integralNum = param.getPoints();
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_2;
|
|
|
|
|
break;
|
|
break;
|
|
|
case 3: //分享获得积分
|
|
case 3: //分享获得积分
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), LocalDate.now());
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, LocalDate.now());
|
|
|
if (integralLogs.size() >= 5){
|
|
if (integralLogs.size() >= 5){
|
|
|
return R.error("今日看课积分已达上限");
|
|
return R.error("今日看课积分已达上限");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralShare();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_3;
|
|
|
|
|
|
|
+ integralNum = config.getIntegralShare() == null?0:Long.valueOf(config.getIntegralShare());
|
|
|
break;
|
|
break;
|
|
|
// case 4: //退款扣除积分
|
|
// case 4: //退款扣除积分
|
|
|
// integralNum = config.getIntegralInvite();
|
|
// integralNum = config.getIntegralInvite();
|
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_4;
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_4;
|
|
|
// break;
|
|
// break;
|
|
|
-// case 5: // 购买积分商品
|
|
|
|
|
-// integralNum = config.getIntegralInvite();
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_5;
|
|
|
|
|
-// break;
|
|
|
|
|
|
|
+ case 5: // 购买积分商品
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
// case 6: // 平台取消售后
|
|
// case 6: // 平台取消售后
|
|
|
// integralNum = config.getIntegralInvite();
|
|
// integralNum = config.getIntegralInvite();
|
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_6;
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_6;
|
|
|
// break;
|
|
// break;
|
|
|
-// case 7: //积分过期
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_7;
|
|
|
|
|
-// break;
|
|
|
|
|
-// case 8: //螳螂同步积分
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_8;
|
|
|
|
|
-// break;
|
|
|
|
|
-// case 9: //购买课程小节扣除
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_9;
|
|
|
|
|
-// break;
|
|
|
|
|
|
|
+ case 7: //积分过期
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 8: //螳螂同步积分
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 9: //购买课程小节扣除
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
case 10: //观看课程获取积分
|
|
case 10: //观看课程获取积分
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), LocalDate.now());
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, LocalDate.now());
|
|
|
if (integralLogs.size() >= 3){
|
|
if (integralLogs.size() >= 3){
|
|
|
return R.error("今日看课积分已达上限");
|
|
return R.error("今日看课积分已达上限");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralCourse();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_10;
|
|
|
|
|
|
|
+ integralNum = config.getIntegralCourse() == null?0:Long.valueOf(config.getIntegralCourse());
|
|
|
break;
|
|
break;
|
|
|
case 11: //新用户完善就诊人获得积分
|
|
case 11: //新用户完善就诊人获得积分
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralAddPatient();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_11;
|
|
|
|
|
|
|
+ integralNum = config.getIntegralAddPatient() == null?0:Long.valueOf(config.getIntegralAddPatient());
|
|
|
break;
|
|
break;
|
|
|
case 12: //新用户填写收货地址获取积分
|
|
case 12: //新用户填写收货地址获取积分
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralAddUserAddress();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_12;
|
|
|
|
|
|
|
+ if (config.getIntegralAddUserAddress() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralAddUserAddress());
|
|
|
break;
|
|
break;
|
|
|
case 13: //浏览商品获得积分
|
|
case 13: //浏览商品获得积分
|
|
|
- integralNum = config.getIntegralProduct();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_13;
|
|
|
|
|
|
|
+ integralNum = config.getIntegralProduct() == null?0:Long.valueOf(config.getIntegralProduct());
|
|
|
break;
|
|
break;
|
|
|
case 14: //浏览视频获得积分
|
|
case 14: //浏览视频获得积分
|
|
|
- return addVideoIntegral(config.getIntegralFirstVideo(),config.getIntegralFinishVideo(),user.getUserId(),user.getIntegral());
|
|
|
|
|
-// case 15: //首次下单疗法获得积分
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_15;
|
|
|
|
|
-// break;
|
|
|
|
|
|
|
+ Integer integralFirstVideo = config.getIntegralFirstVideo();
|
|
|
|
|
+ Integer integralFinishVideo = config.getIntegralFinishVideo();
|
|
|
|
|
+ Integer videoIntegralCount = fsUserIntegralLogsMapper.selectTodayVideoIntegralCount(userId);
|
|
|
|
|
+ int addIntegral = integralFirstVideo-videoIntegralCount;
|
|
|
|
|
+ if (addIntegral<=integralFinishVideo){
|
|
|
|
|
+ addIntegral=integralFinishVideo;
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(addIntegral+ "");
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 15: //首次下单疗法获得积分
|
|
|
|
|
+ Integer integralNewTask = config.getIntegralNewTask();
|
|
|
|
|
+ if(integralNewTask==null){
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralNewTask());
|
|
|
|
|
+ break;
|
|
|
// case 16: //点播看课获得积分
|
|
// case 16: //点播看课获得积分
|
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_16;
|
|
// logsType = FsUserIntegralLogTypeEnum.TYPE_16;
|
|
|
// break;
|
|
// break;
|
|
|
-// case 17: //点播答题获得积分
|
|
|
|
|
-// logsType = FsUserIntegralLogTypeEnum.TYPE_17;
|
|
|
|
|
-// break;
|
|
|
|
|
|
|
+ case 17: //点播答题获得积分
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
case 18: //邀请新用户获取积分
|
|
case 18: //邀请新用户获取积分
|
|
|
- integralNum = config.getIntegralInvite();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_18;
|
|
|
|
|
|
|
+ if (config.getIntegralInvite() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralInvite());
|
|
|
break;
|
|
break;
|
|
|
case 19: //填写邀请码获取积分
|
|
case 19: //填写邀请码获取积分
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralInvited();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_19;
|
|
|
|
|
|
|
+ if (config.getIntegralInvited() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralInvited());
|
|
|
break;
|
|
break;
|
|
|
case 20: //完成手机号绑定注册
|
|
case 20: //完成手机号绑定注册
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralRegister();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_20;
|
|
|
|
|
|
|
+ if (config.getIntegralRegister() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralRegister());
|
|
|
break;
|
|
break;
|
|
|
case 21: //完成专家咨询
|
|
case 21: //完成专家咨询
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralFinishConsultation();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_21;
|
|
|
|
|
|
|
+ if (config.getIntegralFinishConsultation() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralFinishConsultation());
|
|
|
break;
|
|
break;
|
|
|
case 22: //完成首次积分商城下单
|
|
case 22: //完成首次积分商城下单
|
|
|
- integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(),param.getLogType(), null);
|
|
|
|
|
|
|
+ integralLogs = fsUserIntegralLogsMapper.selectFsUserIntegralLogsByUserIdAndLogType(param.getUserId(), logType, null);
|
|
|
if (!integralLogs.isEmpty()){
|
|
if (!integralLogs.isEmpty()){
|
|
|
return R.error("已领取过该积分");
|
|
return R.error("已领取过该积分");
|
|
|
}
|
|
}
|
|
|
- integralNum = config.getIntegralFirstOrderPoint();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_22;
|
|
|
|
|
|
|
+ if (config.getIntegralFirstOrderPoint() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralFirstOrderPoint());
|
|
|
break;
|
|
break;
|
|
|
case 23: //管理员添加
|
|
case 23: //管理员添加
|
|
|
integralNum = param.getPoints();
|
|
integralNum = param.getPoints();
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_23;
|
|
|
|
|
break;
|
|
break;
|
|
|
case 24: //付费课程订阅
|
|
case 24: //付费课程订阅
|
|
|
|
|
+ if (config.getIntegralSubscriptCourse() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
integralNum = param.getPoints() * config.getIntegralSubscriptCourse();
|
|
integralNum = param.getPoints() * config.getIntegralSubscriptCourse();
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_24;
|
|
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 25: //app取消积分订单
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 27: //直播完课积分
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 29: //游戏积分
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
break;
|
|
break;
|
|
|
case 30: //阅读文章获取积分
|
|
case 30: //阅读文章获取积分
|
|
|
- integralNum = config.getIntegralArticle();
|
|
|
|
|
- logsType = FsUserIntegralLogTypeEnum.TYPE_30;
|
|
|
|
|
|
|
+ if (config.getIntegralArticle() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralArticle());
|
|
|
param.setRemark(DateUtils.getTime() + FsUserIntegralLogTypeEnum.TYPE_30.getDesc() + " " +integralNum);
|
|
param.setRemark(DateUtils.getTime() + FsUserIntegralLogTypeEnum.TYPE_30.getDesc() + " " +integralNum);
|
|
|
break;
|
|
break;
|
|
|
|
|
+
|
|
|
|
|
+ case 31:
|
|
|
|
|
+ // 查询用户详细分润
|
|
|
|
|
+ AdProfitDetail adProfitDetail = adProfitDetailMapper.selectOne(new LambdaQueryWrapper<AdProfitDetail>()
|
|
|
|
|
+ .eq(AdProfitDetail::getUserId, param.getUserId())
|
|
|
|
|
+ .eq(AdProfitDetail::getAdTaskId, param.getBusinessId()));
|
|
|
|
|
+ if (BeanUtil.isEmpty(adProfitDetail) || adProfitDetail.getUserMoney() == null) {
|
|
|
|
|
+ return R.error("用户没有分润信息");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 客户分润转积分 1元=1000积分 库里存储的是单位是分: * 10
|
|
|
|
|
+ BigDecimal customerPoints = adProfitDetail.getUserMoney()
|
|
|
|
|
+ .multiply(new BigDecimal("10"))
|
|
|
|
|
+ .setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
|
|
+
|
|
|
|
|
+ if (customerPoints.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
|
|
+ return R.error("积分币为0,无法添加");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = customerPoints.longValue();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 32: //积分兑换佣金
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 33: //福袋积分
|
|
|
|
|
+ integralNum = param.getPoints();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 34: //随访获取积分
|
|
|
|
|
+ if (config.getIntegralFollow() == null) {
|
|
|
|
|
+ return R.ok("未配置积分");
|
|
|
|
|
+ }
|
|
|
|
|
+ integralNum = Long.valueOf(config.getIntegralFollow());
|
|
|
|
|
+ break;
|
|
|
default:
|
|
default:
|
|
|
return R.error("积分类型错误,联系管理员");
|
|
return R.error("积分类型错误,联系管理员");
|
|
|
}
|
|
}
|
|
|
- if (integralNum!=null && logsType!=null){
|
|
|
|
|
- R r = updateAddIntegral(integralNum, user.getUserId(), user.getIntegral(), logsType, param.getBusinessId(), param.getRemark());
|
|
|
|
|
- log.info("用户id为{},{}", user.getUserId(),r.get("msg").toString());
|
|
|
|
|
- return R.ok();
|
|
|
|
|
|
|
+ if (integralNum != null){
|
|
|
|
|
+ R r = updateAddIntegral(integralNum, user, logTypeEnum, param.getBusinessId(), param.getRemark(),integralTypes);
|
|
|
|
|
+ log.info("用户id为{},{}", userId,r.get("msg").toString());
|
|
|
|
|
+ return r;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
return R.error("用户信息不存在");
|
|
return R.error("用户信息不存在");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * @param integralNum
|
|
|
|
|
- * @param userId
|
|
|
|
|
- * @param userIntegral
|
|
|
|
|
|
|
+ * @param integralNum 修改积分
|
|
|
|
|
+ * @param fsUser 用户原信息
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
- public R updateAddIntegral(Integer integralNum, Long userId, Long userIntegral, FsUserIntegralLogTypeEnum logsType, String businessId, String remark) {
|
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
|
+ public R updateAddIntegral(Long integralNum, FsUser fsUser, FsUserIntegralLogTypeEnum logsType,
|
|
|
|
|
+ String businessId, String remark,List<Integer> integralTypes) {
|
|
|
|
|
+ Long userId = fsUser.getUserId();
|
|
|
|
|
+ Long userIntegral = fsUser.getIntegral();
|
|
|
|
|
+ Integer value = logsType.getValue();
|
|
|
FsUser userMap=new FsUser();
|
|
FsUser userMap=new FsUser();
|
|
|
userMap.setUserId(userId);
|
|
userMap.setUserId(userId);
|
|
|
userMap.setIntegral(userIntegral+integralNum);
|
|
userMap.setIntegral(userIntegral+integralNum);
|
|
|
- fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
- FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
- integralLogs.setIntegral(integralNum.longValue());
|
|
|
|
|
- integralLogs.setUserId(userId);
|
|
|
|
|
- integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
- integralLogs.setLogType(logsType.getValue());
|
|
|
|
|
- integralLogs.setCreateTime(new Date());
|
|
|
|
|
- integralLogs.setBusinessId(businessId);
|
|
|
|
|
- integralLogs.setRemark(remark);
|
|
|
|
|
- if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
- return R.ok(logsType.getDesc()+":"+integralNum+"积分");
|
|
|
|
|
|
|
+ // 增加可提现积分
|
|
|
|
|
+ System.out.println("可提现类型integralTypes: " + JSON.toJSONString(integralTypes) + "用户:" + userId + " 获取积分类型:" + value);
|
|
|
|
|
+ if (integralNum > 0){
|
|
|
|
|
+ if (integralTypes!=null && !integralTypes.isEmpty()) {
|
|
|
|
|
+ if (integralTypes.contains(value)){
|
|
|
|
|
+ userMap.setWithdrawIntegral(fsUser.getWithdrawIntegral()==null?integralNum:(fsUser.getWithdrawIntegral()+integralNum));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ //积分兑换佣金
|
|
|
|
|
+ if (Objects.equals(value, FsUserIntegralLogTypeEnum.TYPE_32.getValue())){
|
|
|
|
|
+ userMap.setWithdrawIntegral(fsUser.getWithdrawIntegral()==null?integralNum:(fsUser.getWithdrawIntegral()+integralNum));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- return R.error("获取积分失败");
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- private R addVideoIntegral(Integer integralFirstVideo,Integer integralFinishVideo,Long userId,Long userIntegral) {
|
|
|
|
|
- Integer videoIntegralCount = fsUserIntegralLogsMapper.selectTodayVideoIntegralCount(userId);
|
|
|
|
|
- Integer addIntegral = integralFirstVideo-videoIntegralCount;
|
|
|
|
|
- if (addIntegral<=integralFinishVideo){
|
|
|
|
|
- addIntegral=integralFinishVideo;
|
|
|
|
|
- }
|
|
|
|
|
- FsUser userMap=new FsUser();
|
|
|
|
|
- userMap.setUserId(userId);
|
|
|
|
|
- userMap.setIntegral(userIntegral+addIntegral);
|
|
|
|
|
fsUserMapper.updateFsUser(userMap);
|
|
fsUserMapper.updateFsUser(userMap);
|
|
|
FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
- integralLogs.setIntegral(addIntegral.longValue());
|
|
|
|
|
|
|
+ integralLogs.setIntegral(integralNum.longValue());
|
|
|
integralLogs.setUserId(userId);
|
|
integralLogs.setUserId(userId);
|
|
|
integralLogs.setBalance(userMap.getIntegral());
|
|
integralLogs.setBalance(userMap.getIntegral());
|
|
|
- integralLogs.setLogType(14);
|
|
|
|
|
|
|
+ integralLogs.setLogType(value);
|
|
|
integralLogs.setCreateTime(new Date());
|
|
integralLogs.setCreateTime(new Date());
|
|
|
|
|
+ integralLogs.setBusinessId(businessId);
|
|
|
|
|
+ integralLogs.setRemark(StringUtils.isNotBlank(remark) ? remark : logsType.getDesc());
|
|
|
if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
- return R.ok("观看视频获得"+addIntegral+"积分");
|
|
|
|
|
|
|
+ return R.ok(logsType.getDesc()+":"+integralNum+"积分").put("logId",integralLogs.getId());
|
|
|
}
|
|
}
|
|
|
return R.error("获取积分失败");
|
|
return R.error("获取积分失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public R addProductIntegral(Integer integralProduct,Long userId,Long userIntegral) {
|
|
|
|
|
- FsUser userMap=new FsUser();
|
|
|
|
|
- userMap.setUserId(userId);
|
|
|
|
|
- userMap.setIntegral(userIntegral+integralProduct);
|
|
|
|
|
- fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
- FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
- integralLogs.setIntegral(integralProduct.longValue());
|
|
|
|
|
- integralLogs.setUserId(userId);
|
|
|
|
|
- integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
- integralLogs.setLogType(13);
|
|
|
|
|
- integralLogs.setCreateTime(new Date());
|
|
|
|
|
- if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
- return R.ok("浏览商品获得"+integralProduct+"积分");
|
|
|
|
|
- }
|
|
|
|
|
- return R.error("获取积分失败");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+// private R addVideoIntegral(Integer integralFirstVideo,Integer integralFinishVideo,Long userId,Long userIntegral) {
|
|
|
|
|
+// Integer videoIntegralCount = fsUserIntegralLogsMapper.selectTodayVideoIntegralCount(userId);
|
|
|
|
|
+// Integer addIntegral = integralFirstVideo-videoIntegralCount;
|
|
|
|
|
+// if (addIntegral<=integralFinishVideo){
|
|
|
|
|
+// addIntegral=integralFinishVideo;
|
|
|
|
|
+// }
|
|
|
|
|
+// FsUser userMap=new FsUser();
|
|
|
|
|
+// userMap.setUserId(userId);
|
|
|
|
|
+// userMap.setIntegral(userIntegral+addIntegral);
|
|
|
|
|
+// fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
+// FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
+// integralLogs.setIntegral(addIntegral.longValue());
|
|
|
|
|
+// integralLogs.setUserId(userId);
|
|
|
|
|
+// integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
+// integralLogs.setLogType(14);
|
|
|
|
|
+// integralLogs.setCreateTime(new Date());
|
|
|
|
|
+// if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
+// return R.ok("观看视频获得"+addIntegral+"积分");
|
|
|
|
|
+// }
|
|
|
|
|
+// return R.error("获取积分失败");
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// public R addProductIntegral(Integer integralProduct,Long userId,Long userIntegral) {
|
|
|
|
|
+// FsUser userMap=new FsUser();
|
|
|
|
|
+// userMap.setUserId(userId);
|
|
|
|
|
+// userMap.setIntegral(userIntegral+integralProduct);
|
|
|
|
|
+// fsUserMapper.updateFsUser(userMap);
|
|
|
|
|
+// FsUserIntegralLogs integralLogs = new FsUserIntegralLogs();
|
|
|
|
|
+// integralLogs.setIntegral(integralProduct.longValue());
|
|
|
|
|
+// integralLogs.setUserId(userId);
|
|
|
|
|
+// integralLogs.setBalance(userMap.getIntegral());
|
|
|
|
|
+// integralLogs.setLogType(13);
|
|
|
|
|
+// integralLogs.setCreateTime(new Date());
|
|
|
|
|
+// if (fsUserIntegralLogsMapper.insertFsUserIntegralLogs(integralLogs)>0){
|
|
|
|
|
+// return R.ok("浏览商品获得"+integralProduct+"积分");
|
|
|
|
|
+// }
|
|
|
|
|
+// return R.error("获取积分失败");
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public R subIntegral() {
|
|
public R subIntegral() {
|