|
|
@@ -15,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.*;
|
|
|
import shop.alien.entity.store.vo.StoreIncomeDetailsRecordVo;
|
|
|
-import shop.alien.entity.store.vo.SystemConfigVo;
|
|
|
import shop.alien.entity.store.vo.WebSocketVo;
|
|
|
import shop.alien.mapper.*;
|
|
|
import shop.alien.store.config.WebSocketProcess;
|
|
|
@@ -139,14 +138,12 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
if (Double.parseDouble(divide.toString()) < 0.1) {
|
|
|
return R.fail("金额不能小于0.1元");
|
|
|
}
|
|
|
- StoreAliPayLog pay = new StoreAliPayLog();
|
|
|
- if (StringUtils.isNotBlank(storeUser.getAlipayAccount())) {
|
|
|
- pay = aliApi.pay(storeUser.getName(), storeUser.getIdCard(), storeUser.getAlipayAccount(), divide.toString());
|
|
|
- } else {
|
|
|
- pay = aliApi.payAccount(storeUser.getName(), storeUser.getIdCard(), null, divide.toString(), storeUser.getPhone());
|
|
|
- }
|
|
|
+ StoreAliPayLog pay = aliApi.payAccount(storeUser.getName(), storeUser.getIdCard(), storeUser.getAlipayAccount(), divide.toString(), storeUser.getPhone());
|
|
|
//增加提现记录
|
|
|
StoreCashOutRecord storeCashOutRecord = new StoreCashOutRecord();
|
|
|
+ if (null == pay) {
|
|
|
+ return R.fail("支付宝转账失败");
|
|
|
+ }
|
|
|
if (pay.getStoreAliPayErrorLog() == null) {
|
|
|
storeCashOutRecord.setStoreId(storeId);
|
|
|
storeCashOutRecord.setOrderNo(pay.getOutBizNo());
|
|
|
@@ -192,10 +189,19 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public String applyCashOut(Integer storeId, String payPassword) {
|
|
|
+ public R applyCashOut(Integer storeId, String payPassword, Integer withdrawalMoney) {
|
|
|
StoreUser storeUser = storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getStoreId, storeId).eq(StoreUser::getPayPassword, payPassword));
|
|
|
if (storeUser != null) {
|
|
|
- int freeze = 0;
|
|
|
+ if (storeUser.getMoney() <= withdrawalMoney) {
|
|
|
+ return R.fail("余额不足");
|
|
|
+ }
|
|
|
+ //调用支付宝转账
|
|
|
+ BigDecimal decimal = new BigDecimal(withdrawalMoney);
|
|
|
+ BigDecimal divide = decimal.divide(new BigDecimal(100), 2, RoundingMode.DOWN);
|
|
|
+ if (Double.parseDouble(divide.toString()) < 0.1) {
|
|
|
+ return R.fail("金额不能小于0.1元");
|
|
|
+ }
|
|
|
+ /*int freeze = 0;
|
|
|
//查询冻结配置
|
|
|
SystemConfigVo systemConfigVo = storeDictService.getConfig("freeze");
|
|
|
if (systemConfigVo != null) {
|
|
|
@@ -211,44 +217,22 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
//当前时间-3天大于创建时间
|
|
|
if (freeze > 0) {
|
|
|
wrapper.lt(StoreIncomeDetailsRecord::getCreatedTime, DateUtils.calcDays(new Date(), -freeze));
|
|
|
- }
|
|
|
- //未绑定提现记录的
|
|
|
- wrapper.isNull(StoreIncomeDetailsRecord::getCashOutId);
|
|
|
- wrapper.eq(StoreIncomeDetailsRecord::getStoreId, storeId);
|
|
|
- List<StoreIncomeDetailsRecord> list = this.list(wrapper);
|
|
|
- if (!list.isEmpty()) {
|
|
|
- //总金额
|
|
|
- Integer availableAmount = 0;
|
|
|
- //手续费
|
|
|
- Integer commission = 0;
|
|
|
- for (StoreIncomeDetailsRecord record : list) {
|
|
|
- availableAmount += record.getMoney();
|
|
|
- commission += record.getCommission();
|
|
|
- }
|
|
|
- int money = availableAmount - commission;
|
|
|
- list = list.stream().sorted(Comparator.comparing(StoreIncomeDetailsRecord::getCreatedTime)).collect(Collectors.toList());
|
|
|
- Date startDate = list.get(0).getCreatedTime();
|
|
|
- Date endDate = list.get(list.size() - 1).getCreatedTime();
|
|
|
- //增加提现申请记录
|
|
|
- StoreCashOutRecord storeCashOutRecord = new StoreCashOutRecord();
|
|
|
- storeCashOutRecord.setStoreId(storeId);
|
|
|
- storeCashOutRecord.setMoney(money);
|
|
|
- storeCashOutRecord.setCommission(commission);
|
|
|
- storeCashOutRecord.setCashOutType(0);
|
|
|
- storeCashOutRecord.setPaymentStatus(3);
|
|
|
- storeCashOutRecord.setDeleteFlag(0);
|
|
|
- storeCashOutRecord.setIncomeStartTime(startDate);
|
|
|
- storeCashOutRecord.setIncomeEndTime(endDate);
|
|
|
- storeCashOutRecord.setStoreUserId(storeUser.getId());
|
|
|
- storeCashOutRecordMapper.insert(storeCashOutRecord);
|
|
|
- //关联提现记录
|
|
|
- list.forEach(record -> record.setCashOutId(storeCashOutRecord.getId()));
|
|
|
- this.saveOrUpdateBatch(list);
|
|
|
- return "申请成功";
|
|
|
- }
|
|
|
- return "账单未到可提现时间";
|
|
|
+ }*/
|
|
|
+ //增加提现申请记录
|
|
|
+ StoreCashOutRecord storeCashOutRecord = new StoreCashOutRecord();
|
|
|
+ storeCashOutRecord.setStoreId(storeId);
|
|
|
+ storeCashOutRecord.setMoney(withdrawalMoney);
|
|
|
+// storeCashOutRecord.setCommission(commission);
|
|
|
+ storeCashOutRecord.setCashOutType(0);
|
|
|
+ storeCashOutRecord.setPaymentStatus(3);
|
|
|
+ storeCashOutRecord.setDeleteFlag(0);
|
|
|
+ storeCashOutRecord.setIncomeStartTime(new Date());
|
|
|
+ storeCashOutRecord.setIncomeEndTime(new Date());
|
|
|
+ storeCashOutRecord.setStoreUserId(storeUser.getId());
|
|
|
+ storeCashOutRecordMapper.insert(storeCashOutRecord);
|
|
|
+ return R.data(storeCashOutRecord);
|
|
|
}
|
|
|
- return "支付密码错误";
|
|
|
+ return R.fail("支付密码错误");
|
|
|
}
|
|
|
|
|
|
@Transactional
|
|
|
@@ -276,8 +260,8 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
if (Double.parseDouble(divide.toString()) < 0.10) {
|
|
|
return "金额不能小于0.1元";
|
|
|
}
|
|
|
- StoreAliPayLog pay = aliApi.pay(storeUser.getName(), storeUser.getIdCard(), storeUser.getPhone(), divide.toString());
|
|
|
- if (pay != null) {
|
|
|
+ StoreAliPayLog pay = aliApi.payAccount(storeUser.getName(), storeUser.getIdCard(), storeUser.getAlipayAccount(), divide.toString(), storeUser.getPhone());
|
|
|
+ if (null != pay) {
|
|
|
// 提现成功,更新提现申请相关状态
|
|
|
storeCashOutRecord.setOrderNo(pay.getOutBizNo());
|
|
|
storeCashOutRecord.setAliOrderNo(pay.getOrderId());
|
|
|
@@ -285,17 +269,9 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
storeCashOutRecord.setApproveTime(new Date());// 审批时间
|
|
|
storeCashOutRecord.setPayDate(new Date());//支付时间
|
|
|
storeCashOutRecord.setPaymentDate(new Date());//支付到账时间
|
|
|
- Integer commission = storeCashOutRecord.getCommission();
|
|
|
- if (storeCashOutRecord.getCommission() == null) {
|
|
|
- commission = 0;
|
|
|
- }
|
|
|
storeCashOutRecordMapper.updateById(storeCashOutRecord);
|
|
|
- int deductMoney = storeCashOutRecord.getMoney() - commission;
|
|
|
- if (storeUser.getMoney() < deductMoney) {
|
|
|
- storeUserMapper.updateById(new StoreUser(storeUserId, 0));
|
|
|
- } else {
|
|
|
- storeUserMapper.updateById(new StoreUser(storeUserId, storeUser.getMoney() - storeCashOutRecord.getMoney() - commission));
|
|
|
- }
|
|
|
+ // 在存钱包的时候已经去掉了手续费
|
|
|
+ storeUserMapper.updateById(new StoreUser(storeUserId, storeUser.getMoney() - storeCashOutRecord.getMoney()));
|
|
|
// 提现成功通知
|
|
|
cashOutSendNotice(storeCashOutRecord, storeUser, failReason, "3");
|
|
|
return "付款成功";
|
|
|
@@ -415,7 +391,7 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
Date startDate = DateUtils.calcDays(now, -3);
|
|
|
jsonObject.put("date", df.format(startDate) + " ~ " + df.format(now));
|
|
|
} else {
|
|
|
- wrapper.isNotNull("sidr.cash_out_id");
|
|
|
+// wrapper.isNotNull("sidr.cash_out_id");
|
|
|
//已到账期, 当前时间-4~27天大于创建时间
|
|
|
wrapper.between("sidr.created_time", DateUtils.calcDays(new Date(), -27), DateUtils.calcDays(new Date(), -4));
|
|
|
Date startDate = DateUtils.calcDays(now, -27);
|
|
|
@@ -449,6 +425,9 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
storeIncomeDetailsRecord.setMoneyStr(new BigDecimal(vo.getMoney()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
|
|
|
String format = df.format(storeIncomeDetailsRecord.getCreatedTime());
|
|
|
storeIncomeDetailsRecord.setDate(format);
|
|
|
+ storeIncomeDetailsRecord.setCommissionRate(storeInfo.getCommissionRate());
|
|
|
+ storeIncomeDetailsRecord.setIncomeMoney(new BigDecimal(vo.getMoney()).add(new BigDecimal(vo.getCommission())).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
|
|
|
+ storeIncomeDetailsRecord.setCommissionStr(new BigDecimal(vo.getCommission()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString());
|
|
|
vo.setCommissionRate(storeInfo.getCommissionRate());
|
|
|
}
|
|
|
jsonObject.put("data", ListToPage.setPage(list, page, size));
|
|
|
@@ -582,7 +561,7 @@ public class StoreIncomeDetailsRecordServiceImpl extends ServiceImpl<StoreIncome
|
|
|
LambdaQueryWrapper<LifeUserOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
LocalDate now = LocalDate.now();
|
|
|
wrapper.eq(LifeUserOrder::getStoreId, storeId)
|
|
|
- .notIn(LifeUserOrder::getStatus, OrderStatusEnum.CANCEL.getStatus(), OrderStatusEnum.WAIT_PAY.getStatus(), OrderStatusEnum.EXPIRE.getStatus())
|
|
|
+ .in(LifeUserOrder::getStatus, OrderStatusEnum.WAIT_USE.getStatus(), OrderStatusEnum.USED.getStatus(),OrderStatusEnum.COMPLETE.getStatus())
|
|
|
.between(LifeUserOrder::getBuyTime, now + " 00:00:00", now + " 23:59:59");
|
|
|
return lifeUserOrderMapper.selectCount(wrapper);
|
|
|
}
|