提交代码

dev
胡锐 3 days ago
parent 116216db8f
commit 6bed23ba57
  1. 33
      cweb/src/main/java/com/cweb/controller/BsUserController.java
  2. 14
      cweb/src/main/java/com/cweb/controller/TestController.java
  3. 3
      cweb/src/main/java/com/cweb/controller/WeiXinNotifyController.java
  4. 6
      service/src/main/java/com/hfkj/dao/BsGasOrderMapperExt.java
  5. 27
      service/src/main/java/com/hfkj/dao/BsGasOrderSpreadMapperExt.java
  6. 31
      service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderSpreadServiceImpl.java
  7. 16
      service/src/main/java/com/hfkj/service/order/OrderRefundBusiness.java
  8. 6
      service/src/main/java/com/hfkj/service/spread/BsUserSpreadAccountRecordService.java
  9. 5
      service/src/main/java/com/hfkj/service/spread/impl/BsUserSpreadAccountRecordServiceImpl.java
  10. 16
      service/src/main/java/com/hfkj/service/spread/impl/BsUserSpreadAccountServiceImpl.java

@ -2,6 +2,7 @@ package com.cweb.controller;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alipay.api.request.AlipaySystemOauthTokenRequest; import com.alipay.api.request.AlipaySystemOauthTokenRequest;
import com.alipay.api.response.AlipaySystemOauthTokenResponse; import com.alipay.api.response.AlipaySystemOauthTokenResponse;
@ -15,13 +16,17 @@ import com.hfkj.common.utils.HttpsUtils;
import com.hfkj.common.utils.MemberValidateUtil; import com.hfkj.common.utils.MemberValidateUtil;
import com.hfkj.common.utils.RedisUtil; import com.hfkj.common.utils.RedisUtil;
import com.hfkj.common.utils.ResponseMsgUtil; import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.config.CommonSysConst;
import com.hfkj.config.WxMaConfiguration; import com.hfkj.config.WxMaConfiguration;
import com.hfkj.entity.BsAgentApiParam; import com.hfkj.entity.BsAgentApiParam;
import com.hfkj.entity.BsDiscountUser;
import com.hfkj.model.ResponseData; import com.hfkj.model.ResponseData;
import com.hfkj.model.SecUserSessionObject; import com.hfkj.model.SecUserSessionObject;
import com.hfkj.model.UserSessionObject; import com.hfkj.model.UserSessionObject;
import com.hfkj.service.agent.BsAgentApiParamService; import com.hfkj.service.agent.BsAgentApiParamService;
import com.hfkj.service.discount.BsDiscountUserService;
import com.hfkj.service.user.BsUserService; import com.hfkj.service.user.BsUserService;
import com.hfkj.sysenum.discount.DiscountUserStatusEnum;
import com.hfkj.sysenum.user.UserLoginPlatform; import com.hfkj.sysenum.user.UserLoginPlatform;
import com.hfkj.sysenum.user.UserLoginType; import com.hfkj.sysenum.user.UserLoginType;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -55,6 +60,8 @@ public class BsUserController {
@Resource @Resource
private BsAgentApiParamService agentApiParamService; private BsAgentApiParamService agentApiParamService;
@Resource @Resource
private BsDiscountUserService discountUserService;
@Resource
private BsUserService userService; private BsUserService userService;
@RequestMapping(value = "/autoLogin", method = RequestMethod.POST) @RequestMapping(value = "/autoLogin", method = RequestMethod.POST)
@ -218,11 +225,33 @@ public class BsUserController {
@ApiOperation(value = "查询用户信息") @ApiOperation(value = "查询用户信息")
public ResponseData queryUser() { public ResponseData queryUser() {
try { try {
UserSessionObject userSessionObject = userCenter.getSessionModel(UserSessionObject.class);
JSONObject data = JSONObject.parseObject(JSONObject.toJSONString(userSessionObject), JSONObject.class);
int totalDiscountCoupon = 0;
// 加油优惠券数量
Map<String,Object> param = new HashMap<>();
param.put("userId", userSessionObject.getUser().getId());
param.put("status", DiscountUserStatusEnum.type1.getCode());
totalDiscountCoupon += discountUserService.getUserDiscountList(param).size();
return ResponseMsgUtil.success(userCenter.getSessionModel(UserSessionObject.class)); // 非油优惠券数量
try {
param.clear();
param.put("appid", CommonSysConst.getSysConfig().getPhgAppid());
param.put("phone", userSessionObject.getUser().getPhone());
param.put("status", 1); // 状态 0:已过期 1:未使用 2:已使用
param.put("sign", SignatureUtil.createSign(param, CommonSysConst.getSysConfig().getPhgAppSecret()));
JSONObject response = HttpsUtils.doPost(CommonSysConst.getSysConfig().getPhgReqUrl()+"/crest/output/getListUserDiscount", JSONObject.toJSONString(param));
if (response.getString("return_code").equals("000000")) {
totalDiscountCoupon += response.getJSONArray("return_data").size();
};
} catch (Exception e) {}
data.put("couponNum", totalDiscountCoupon);
return ResponseMsgUtil.success(data);
} catch (Exception e) { } catch (Exception e) {
log.error("LoginController --> wechatMaPhone() error!", e); log.error("LoginController --> queryUser() error!", e);
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);
} }
} }

@ -58,7 +58,14 @@ public class TestController {
@ApiOperation(value = "结算订单") @ApiOperation(value = "结算订单")
public ResponseData settleOrder() { public ResponseData settleOrder() {
try { try {
gasOrderSpreadService.settleOrder(4L); List<BsUserSpreadAccount> accountList = userSpreadAccountService.getList(new HashMap<>());
for (BsUserSpreadAccount account : accountList) {
try {
gasOrderSpreadService.settleOrder(account.getUserId());
} catch (Exception e) {
System.out.println("用户ID:"+account.getUserId()+",账户结算异常");
}
}
return ResponseMsgUtil.success(""); return ResponseMsgUtil.success("");
@ -90,7 +97,10 @@ public class TestController {
public ResponseData cancelTransferBills(@RequestParam(value = "outBillNo", required = true) String outBillNo) { public ResponseData cancelTransferBills(@RequestParam(value = "outBillNo", required = true) String outBillNo) {
try { try {
return ResponseMsgUtil.success(WxUtils.cancelTransferBills(outBillNo)); userSpreadAccountService.cancelWithdraw(outBillNo);
// return ResponseMsgUtil.success(WxUtils.cancelTransferBills(outBillNo));
return ResponseMsgUtil.success("");
} catch (Exception e) { } catch (Exception e) {
return ResponseMsgUtil.exception(e); return ResponseMsgUtil.exception(e);

@ -62,6 +62,9 @@ public class WeiXinNotifyController {
if (record != null) { if (record != null) {
String state = data.getString("state"); String state = data.getString("state");
if (state.equals("CANCELLED") || state.equals("FAIL")) { if (state.equals("CANCELLED") || state.equals("FAIL")) {
record.setStatus(0);
userSpreadAccountRecordService.update(record);
// 充值余账户余额 // 充值余账户余额
Map<String,Object> otherParam = new HashMap<>(); Map<String,Object> otherParam = new HashMap<>();
otherParam.put("sourceContent", state.equals("CANCELLED")?"撤销提现":"转账失败"); otherParam.put("sourceContent", state.equals("CANCELLED")?"撤销提现":"转账失败");

@ -60,7 +60,7 @@ public interface BsGasOrderMapperExt {
"</script>") "</script>")
int countTodayOrder(@Param("userPhone") String userPhone); int countTodayOrder(@Param("userPhone") String userPhone);
@Select("<script>" + @Select("<script>" +
" select b.*," + " select * from (select b.*," +
" a.gains_rebate_user_id gainsRebateUserId, " + " a.gains_rebate_user_id gainsRebateUserId, " +
" a.gains_rebate_amount gainsRebateAmount, " + " a.gains_rebate_amount gainsRebateAmount, " +
" a.gains_rebate_rate gainsRebateRate, " + " a.gains_rebate_rate gainsRebateRate, " +
@ -76,8 +76,8 @@ public interface BsGasOrderMapperExt {
" <if test='param.payTimeS != null'> <![CDATA[ and b.pay_time >= #{param.payTimeS} ]]> </if>" + " <if test='param.payTimeS != null'> <![CDATA[ and b.pay_time >= #{param.payTimeS} ]]> </if>" +
" <if test='param.payTimeE != null'> <![CDATA[ and b.pay_time <= #{param.payTimeE} ]]> </if>" + " <if test='param.payTimeE != null'> <![CDATA[ and b.pay_time <= #{param.payTimeE} ]]> </if>" +
" and b.`status` in (${param.status}) " + " and b.`status` in (${param.status}) " +
" and a.gains_rebate_user_id = #{param.userId} OR a.gains_rebate_one_user_id = #{param.userId} OR a.gains_rebate_two_user_id = #{param.userId}" + " ORDER BY b.pay_time desc) a where" +
" ORDER BY b.pay_time desc" + " a.gainsRebateUserId = #{param.userId} OR a.gainsRebateOneUserId = #{param.userId} OR a.gainsRebateTwoUserId = #{param.userId}" +
"</script>") "</script>")
@Results({ @Results({
@Result(column="id", property="id", jdbcType= JdbcType.BIGINT, id=true), @Result(column="id", property="id", jdbcType= JdbcType.BIGINT, id=true),

@ -14,15 +14,24 @@ import java.util.Map;
public interface BsGasOrderSpreadMapperExt { public interface BsGasOrderSpreadMapperExt {
@Select(" select " + @Select(" select " +
" DATE_SUB(CURDATE(), INTERVAL 1 DAY) settle_date," + " DATE_SUB(CURDATE(), INTERVAL 1 DAY) settleDate," +
" case when sum(b.gains_rebate_amount) is not null then sum(b.gains_rebate_amount) else 0 end gains_rebate_amount," + " case when sum(totalAmount) is not null then sum(totalAmount) else 0 end settleAmount" +
" case when sum(b.gains_rebate_one_amount) is not null then sum(b.gains_rebate_one_amount) else 0 end gains_rebate_one_amount," + " from (" +
" case when sum(b.gains_rebate_two_amount) is not null then sum(b.gains_rebate_two_amount) else 0 end gains_rebate_two_amount" + " select " +
" from bs_gas_order a" + " sum(b.gains_rebate_amount) totalAmount" +
" LEFT JOIN bs_gas_order_spread b on a.order_no = b.order_no" + " 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)" + " 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}" +
" and (gains_rebate_user_id = #{param.userId} or gains_rebate_one_user_id = #{param.userId} or gains_rebate_two_user_id = #{param.userId})" + " union all" +
" and a.`status` = 2") " 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}" +
" 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}" +
" ) a")
HashMap<String,Object> querySettleOrderList(@Param("param") Map<String,Object> param); HashMap<String,Object> querySettleOrderList(@Param("param") Map<String,Object> param);
@Select(" select " + @Select(" select " +

@ -8,6 +8,7 @@ import com.hfkj.service.spread.BsUserSpreadAccountService;
import com.hfkj.service.spread.BsUserSpreadOilChannelService; import com.hfkj.service.spread.BsUserSpreadOilChannelService;
import com.hfkj.service.spread.BsUserSpreadRelService; import com.hfkj.service.spread.BsUserSpreadRelService;
import com.hfkj.sysenum.spread.UserSpreadAccountRecordSourceTypeEnum; import com.hfkj.sysenum.spread.UserSpreadAccountRecordSourceTypeEnum;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -61,16 +62,16 @@ public class BsGasOrderSpreadServiceImpl implements BsGasOrderSpreadService {
// 查询一级 // 查询一级
BsUserSpreadRel userSpreadOneRel = userSpreadRelService.getDetailByUser(userSpreadRel.getParentUserId()); BsUserSpreadRel userSpreadOneRel = userSpreadRelService.getDetailByUser(userSpreadRel.getParentUserId());
if (userSpreadOneRel != null) { if (userSpreadOneRel != null) {
gasOrderSpread.setGainsRebateUserId(userSpreadOneRel.getParentUserId()); gasOrderSpread.setGainsRebateOneUserId(userSpreadOneRel.getParentUserId());
gasOrderSpread.setGainsRebateRate(channel.getRebateOne()); gasOrderSpread.setGainsRebateOneRate(channel.getRebateOne());
gasOrderSpread.setGainsRebateAmount(order.getPayablePrice().multiply(channel.getRebateOne().divide(new BigDecimal("100"))).setScale(2, BigDecimal.ROUND_HALF_DOWN)); gasOrderSpread.setGainsRebateOneAmount(order.getPayablePrice().multiply(channel.getRebateOne().divide(new BigDecimal("100"))).setScale(2, BigDecimal.ROUND_HALF_DOWN));
// 查询二级 // 查询二级
BsUserSpreadRel userSpreadTwoRel = userSpreadRelService.getDetailByUser(userSpreadOneRel.getParentUserId()); BsUserSpreadRel userSpreadTwoRel = userSpreadRelService.getDetailByUser(userSpreadOneRel.getParentUserId());
if (userSpreadTwoRel != null) { if (userSpreadTwoRel != null) {
gasOrderSpread.setGainsRebateUserId(userSpreadTwoRel.getParentUserId()); gasOrderSpread.setGainsRebateTwoUserId(userSpreadTwoRel.getParentUserId());
gasOrderSpread.setGainsRebateRate(channel.getRebateTwo()); gasOrderSpread.setGainsRebateTwoRate(channel.getRebateTwo());
gasOrderSpread.setGainsRebateAmount(order.getPayablePrice().multiply(channel.getRebateTwo().divide(new BigDecimal("100"))).setScale(2, BigDecimal.ROUND_HALF_DOWN)); gasOrderSpread.setGainsRebateTwoAmount(order.getPayablePrice().multiply(channel.getRebateTwo().divide(new BigDecimal("100"))).setScale(2, BigDecimal.ROUND_HALF_DOWN));
} }
} }
editData(gasOrderSpread); editData(gasOrderSpread);
@ -94,21 +95,13 @@ public class BsGasOrderSpreadServiceImpl implements BsGasOrderSpreadService {
// 获取结算订单数据 // 获取结算订单数据
Map<String,Object> dataParam = new HashMap<>(); Map<String,Object> dataParam = new HashMap<>();
dataParam.put("userId", userId); dataParam.put("userId", userId);
HashMap<String, Object> data = gasOrderSpreadMapper.querySettleOrderList(dataParam); Map<String,Object> settleData = gasOrderSpreadMapper.querySettleOrderList(dataParam);
// 直属佣金
BigDecimal gainsRebateAmount = new BigDecimal(""+data.get("gains_rebate_amount"));
// 一级佣金
BigDecimal gainsRebateOneAmount = new BigDecimal(""+data.get("gains_rebate_one_amount"));
// 二级佣金
BigDecimal gainsRebateTwoAmount = new BigDecimal(""+data.get("gains_rebate_two_amount"));
// 总佣金
BigDecimal totalRebateAmount = gainsRebateAmount.add(gainsRebateOneAmount).add(gainsRebateTwoAmount);
// 佣金大于0充值 // 佣金大于0充值
if (totalRebateAmount.compareTo(new BigDecimal("0")) >= 1) { BigDecimal settleAmount = new BigDecimal(MapUtils.getString(settleData, "settleAmount"));
if (settleAmount.compareTo(new BigDecimal("0")) >= 1) {
Map<String,Object> otherParam = new HashMap<>(); Map<String,Object> otherParam = new HashMap<>();
otherParam.put("sourceContent", data.get("settle_date")+"佣金"); otherParam.put("sourceContent", MapUtils.getString(settleData, "settleDate")+"佣金");
userSpreadAccountService.increase(userId, totalRebateAmount, UserSpreadAccountRecordSourceTypeEnum.type1,otherParam); userSpreadAccountService.increase(userId, settleAmount, UserSpreadAccountRecordSourceTypeEnum.type1,otherParam);
} }
} }

@ -27,10 +27,10 @@ import com.hfkj.sysenum.spread.UserSpreadAccountRecordSourceTypeEnum;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.time.LocalDate;
import java.util.HashMap; import java.time.LocalDateTime;
import java.util.List; import java.time.LocalTime;
import java.util.Map; import java.util.*;
/** /**
* 退款业务 * 退款业务
@ -172,7 +172,11 @@ public class OrderRefundBusiness {
} catch (Exception e) {} } catch (Exception e) {}
// 分销 // 分销
if (DateUtil.getMinutesDiff(gasOrder.getPayTime(), new Date()) >= (7*24)) { Calendar payTime = Calendar.getInstance();
payTime.setTime(gasOrder.getPayTime());
LocalDate date = LocalDate.of(payTime.get(Calendar.YEAR),payTime.get(Calendar.MONDAY)+1,payTime.get(Calendar.DATE));
// 不是今日的订单
if (date.isBefore(LocalDate.now())) {
// 扣除账户 // 扣除账户
BsGasOrderSpread gasOrderSpread = gasOrderSpreadService.getDetailByOrderNo(gasOrder.getOrderNo()); BsGasOrderSpread gasOrderSpread = gasOrderSpreadService.getDetailByOrderNo(gasOrder.getOrderNo());
if (gasOrderSpread != null) { if (gasOrderSpread != null) {
@ -209,8 +213,6 @@ public class OrderRefundBusiness {
} }
} }
} }
} }

@ -18,6 +18,12 @@ public interface BsUserSpreadAccountRecordService {
*/ */
void create(BsUserSpreadAccountRecord data); void create(BsUserSpreadAccountRecord data);
/**
* 修改数据
* @param data
*/
void update(BsUserSpreadAccountRecord data);
/** /**
* 查询记录 * 查询记录
* @param orderNo * @param orderNo

@ -33,6 +33,11 @@ public class BsUserSpreadAccountRecordServiceImpl implements BsUserSpreadAccount
userSpreadAccountRecordMapper.insert(data); userSpreadAccountRecordMapper.insert(data);
} }
@Override
public void update(BsUserSpreadAccountRecord data) {
userSpreadAccountRecordMapper.updateByPrimaryKey(data);
}
@Override @Override
public BsUserSpreadAccountRecord getRecordByOrderNo(String orderNo) { public BsUserSpreadAccountRecord getRecordByOrderNo(String orderNo) {
BsUserSpreadAccountRecordExample example = new BsUserSpreadAccountRecordExample(); BsUserSpreadAccountRecordExample example = new BsUserSpreadAccountRecordExample();

@ -54,7 +54,7 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
account.setStatus(1); account.setStatus(1);
account.setCreateTime(new Date()); account.setCreateTime(new Date());
account.setUpdateTime(new Date()); account.setUpdateTime(new Date());
userSpreadAccountMapper.updateByPrimaryKey(account); userSpreadAccountMapper.insert(account);
} }
@Override @Override
@ -85,9 +85,9 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
@Override @Override
public JSONObject withdraw(Long userId, String openId,BigDecimal amount) throws Exception { public JSONObject withdraw(Long userId, String openId,BigDecimal amount) throws Exception {
/* if (amount.compareTo(new BigDecimal("20")) < 0 || amount.compareTo(new BigDecimal("200")) > 0) { if (amount.compareTo(new BigDecimal("20")) < 0 || amount.compareTo(new BigDecimal("200")) > 0) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "提现金额20-200之间"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "金额20-200之间");
}*/ }
// 推广账户 // 推广账户
BsUserSpreadAccount userSpreadAccount = getDetailByUser(userId); BsUserSpreadAccount userSpreadAccount = getDetailByUser(userId);
if (userSpreadAccount == null) { if (userSpreadAccount == null) {
@ -150,8 +150,8 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
// 计算金额 // 计算金额
account.setAmount(account.getAmount().add(amount)); account.setAmount(account.getAmount().add(amount));
// 累积提现金额 // 累积提现金额
if (UserSpreadAccountRecordSourceTypeEnum.type2.getType().equals(sourceType.getType())) { if (UserSpreadAccountRecordSourceTypeEnum.type4.getType().intValue() == sourceType.getType()) {
account.setCashOutAmount(account.getCashOutAmount().add(amount)); account.setCashOutAmount(account.getCashOutAmount().subtract(amount));
} }
update(account); update(account);
// 变更后金额 // 变更后金额
@ -210,8 +210,8 @@ public class BsUserSpreadAccountServiceImpl implements BsUserSpreadAccountServic
// 计算金额 // 计算金额
account.setAmount(account.getAmount().subtract(amount)); account.setAmount(account.getAmount().subtract(amount));
// 累积提现金额 // 累积提现金额
if (UserSpreadAccountRecordSourceTypeEnum.type4.getType().equals(sourceType.getType())) { if (UserSpreadAccountRecordSourceTypeEnum.type2.getType().intValue() == sourceType.getType()) {
account.setCashOutAmount(account.getCashOutAmount().subtract(amount)); account.setCashOutAmount(account.getCashOutAmount().add(amount));
} }
update(account); update(account);
// 变更后金额 // 变更后金额

Loading…
Cancel
Save