提交代码

pre
胡锐 3 weeks ago
parent 14fb9f8d58
commit bae167072d
  1. 35
      bweb/src/main/java/com/bweb/controller/BsUserSpreadController.java
  2. 6
      service/src/main/java/com/hfkj/dao/BsGasOrderSpreadMapperExt.java
  3. 5
      service/src/main/java/com/hfkj/dao/BsUserSpreadRelMapperExt.java
  4. 14
      service/src/main/java/com/hfkj/service/spread/BsUserSpreadAccountService.java
  5. 49
      service/src/main/java/com/hfkj/service/spread/impl/BsUserSpreadAccountServiceImpl.java
  6. 33
      service/src/main/java/com/hfkj/sysenum/spread/UserSpreadAccountStatusEnum.java

@ -13,6 +13,7 @@ import com.hfkj.entity.BsUserSpreadPower;
import com.hfkj.entity.BsUserSpreadRel;
import com.hfkj.model.ResponseData;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.spread.BsUserSpreadAccountService;
import com.hfkj.service.spread.BsUserSpreadOilChannelService;
import com.hfkj.service.spread.BsUserSpreadPowerService;
import com.hfkj.service.spread.BsUserSpreadRelService;
@ -41,6 +42,8 @@ public class BsUserSpreadController {
@Resource
private BsUserSpreadOilChannelService userSpreadOilChannelService;
@Resource
private BsUserSpreadAccountService userSpreadAccountService;
@Resource
private BsUserSpreadRelService userSpreadRelService;
@RequestMapping(value = "/editOilChannel", method = RequestMethod.POST)
@ -104,6 +107,38 @@ public class BsUserSpreadController {
}
}
@RequestMapping(value = "/freezeUserSpread", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "冻结用户推广功能")
public ResponseData freezeUserSpread(@RequestBody JSONObject body) {
try {
if (body == null || body.getLong("userId") == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
userSpreadAccountService.freezeUserSpread(body.getLong("userId"));
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/unfreezeUserSpread", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "解冻用户推广功能")
public ResponseData unfreezeUserSpread(@RequestBody JSONObject body) {
try {
if (body == null || body.getLong("userId") == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
userSpreadAccountService.unfreezeUserSpread(body.getLong("userId"));
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/getOilChannelList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询油站渠道列表")

@ -20,17 +20,17 @@ public interface BsGasOrderSpreadMapperExt {
" select " +
" sum(b.gains_rebate_amount) totalAmount" +
" from bs_gas_order a LEFT JOIN bs_gas_order_spread b on a.order_no = b.order_no" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.gains_rebate_user_id = #{param.userId}" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.`status` = 1 and b.gains_rebate_user_id = #{param.userId}" +
" union all" +
" select " +
" sum(b.gains_rebate_one_amount) totalAmount" +
" from bs_gas_order a LEFT JOIN bs_gas_order_spread b on a.order_no = b.order_no" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.gains_rebate_one_user_id = #{param.userId}" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.`status` = 1 and b.gains_rebate_one_user_id = #{param.userId}" +
" union all" +
" select " +
" sum(b.gains_rebate_two_amount) totalAmount" +
" from bs_gas_order a LEFT JOIN bs_gas_order_spread b on a.order_no = b.order_no" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.gains_rebate_two_user_id = #{param.userId}" +
" WHERE DATE_FORMAT(a.pay_time, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.`status` = 2 and b.`status` = 1 and b.gains_rebate_two_user_id = #{param.userId}" +
" ) a")
HashMap<String,Object> querySettleOrderList(@Param("param") Map<String,Object> param);

@ -31,7 +31,8 @@ public interface BsUserSpreadRelMapperExt {
" b.id userId," +
" b.user_name userName," +
" b.phone," +
" b.create_time createTime," +
" a.create_time createTime," +
" a.status," +
" count(c.id) spreadCount" +
" from bs_user_spread_power a" +
" LEFT JOIN bs_user b on b.id = a.user_id" +
@ -39,7 +40,7 @@ public interface BsUserSpreadRelMapperExt {
" where 1 = 1" +
" <if test='param.phone != null'> and b.phone like concat('%',#{param.phone},'%') </if>" +
" GROUP BY b.id" +
" ORDER BY b.create_time desc" +
" ORDER BY a.create_time desc" +
"</script>")
List<HashMap<String,Object>> getUserSpreadList(@Param("param") Map<String,Object> param);
}

@ -28,7 +28,19 @@ public interface BsUserSpreadAccountService {
void update(BsUserSpreadAccount data);
/**
* 查询用户余额
* 冻结账户
* @param userId
*/
void freezeUserSpread(Long userId);
/**
* 解除冻结
* @param userId
*/
void unfreezeUserSpread(Long userId);
/**
* 查询详情
* @param userId
* @return
*/

@ -11,9 +11,11 @@ import com.hfkj.dao.BsUserSpreadAccountMapper;
import com.hfkj.entity.*;
import com.hfkj.service.spread.BsUserSpreadAccountRecordService;
import com.hfkj.service.spread.BsUserSpreadAccountService;
import com.hfkj.service.spread.BsUserSpreadPowerService;
import com.hfkj.service.user.BsUserService;
import com.hfkj.sysenum.merchant.MerchantAccountRecordTypeEnum;
import com.hfkj.sysenum.spread.UserSpreadAccountRecordSourceTypeEnum;
import com.hfkj.sysenum.spread.UserSpreadAccountStatusEnum;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.RedisTemplate;
@ -43,6 +45,8 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
@Resource
private BsUserSpreadAccountRecordService userSpreadAccountRecordService;
@Resource
private BsUserSpreadPowerService userSpreadPowerService;
@Resource
private RedisTemplate<String, Object> redisTemplate;
private static final String LOCK_KEY = "USER_SPREAD_ACCOUNT_LOCK_";
@Override
@ -63,10 +67,44 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
userSpreadAccountMapper.updateByPrimaryKey(data);
}
@Override
public void freezeUserSpread(Long userId) {
// 查询账户
BsUserSpreadAccount account = getDetailByUser(userId);
if (account == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到账户");
}
account.setStatus(UserSpreadAccountStatusEnum.status2.getType());
update(account);
// 推广权限
BsUserSpreadPower userSpreadPower = userSpreadPowerService.getDetailByUser(account.getUserId());
if (userSpreadPower != null) {
userSpreadPower.setStatus(UserSpreadAccountStatusEnum.status2.getType());
userSpreadPowerService.editData(userSpreadPower);
}
}
@Override
public void unfreezeUserSpread(Long userId) {
// 查询账户
BsUserSpreadAccount account = getDetailByUser(userId);
if (account == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到账户");
}
account.setStatus(UserSpreadAccountStatusEnum.status1.getType());
update(account);
// 推广权限
BsUserSpreadPower userSpreadPower = userSpreadPowerService.getDetailByUser(account.getUserId());
if (userSpreadPower != null) {
userSpreadPower.setStatus(UserSpreadAccountStatusEnum.status1.getType());
userSpreadPowerService.editData(userSpreadPower);
}
}
@Override
public BsUserSpreadAccount getDetailByUser(Long userId) {
BsUserSpreadAccountExample example = new BsUserSpreadAccountExample();
example.createCriteria().andUserIdEqualTo(userId).andStatusNotEqualTo(0);
example.createCriteria().andUserIdEqualTo(userId).andStatusNotEqualTo(UserSpreadAccountStatusEnum.status0.getType());
List<BsUserSpreadAccount> list = userSpreadAccountMapper.selectByExample(example);
if (!list.isEmpty()){
return list.get(0);
@ -93,6 +131,9 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
if (userSpreadAccount == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到账户");
}
if (!userSpreadAccount.getStatus().equals(UserSpreadAccountStatusEnum.status1.getType())) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "账户已被冻结");
}
if (userSpreadAccount.getAmount().compareTo(amount) < 0) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "余额不足");
}
@ -145,6 +186,9 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
if (account == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未知账户");
}
if (!account.getStatus().equals(UserSpreadAccountStatusEnum.status1.getType())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "账户不可用");
}
// 变更前金额
BigDecimal beforeAmount = account.getAmount();
// 计算金额
@ -205,6 +249,9 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
if (account == null) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "未知账户");
}
if (!account.getStatus().equals(UserSpreadAccountStatusEnum.status1.getType())) {
throw ErrorHelp.genException(SysCode.OpenApi, ErrorCode.OPEN_API_COMMON, "账户不可用");
}
// 变更前金额
BigDecimal beforeAmount = account.getAmount();
// 计算金额

@ -0,0 +1,33 @@
package com.hfkj.sysenum.spread;
import lombok.Getter;
/**
*
* @author hurui
*/
@Getter
public enum UserSpreadAccountStatusEnum {
/**
* 不可用
*/
status0(0 , "不可用"),
/**
* 正常
*/
status1(1 , "正常"),
/**
* 已冻结
*/
status2(2 , "已冻结"),
;
private Integer type;
private String name;
UserSpreadAccountStatusEnum(int type , String name) {
this.type = type;
this.name = name;
}
}
Loading…
Cancel
Save