|
@@ -2,24 +2,31 @@ package com.gree.mall.miniapp.logic.user;
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
+import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
|
|
|
|
|
+import com.gree.mall.miniapp.bean.user.SettleMonthWagesWorkerBean;
|
|
|
import com.gree.mall.miniapp.commonmapper.LockQueryMapper;
|
|
import com.gree.mall.miniapp.commonmapper.LockQueryMapper;
|
|
|
import com.gree.mall.miniapp.constant.Constant;
|
|
import com.gree.mall.miniapp.constant.Constant;
|
|
|
import com.gree.mall.miniapp.enums.TransactionTypeEnum;
|
|
import com.gree.mall.miniapp.enums.TransactionTypeEnum;
|
|
|
import com.gree.mall.miniapp.exception.RemoteServiceException;
|
|
import com.gree.mall.miniapp.exception.RemoteServiceException;
|
|
|
import com.gree.mall.miniapp.helper.ResponseHelper;
|
|
import com.gree.mall.miniapp.helper.ResponseHelper;
|
|
|
|
|
+import com.gree.mall.miniapp.logic.common.CommonLogic;
|
|
|
import com.gree.mall.miniapp.plus.entity.*;
|
|
import com.gree.mall.miniapp.plus.entity.*;
|
|
|
|
|
+import com.gree.mall.miniapp.plus.service.UserCompanyCreditBillItemService;
|
|
|
import com.gree.mall.miniapp.plus.service.UserCompanyCreditBillService;
|
|
import com.gree.mall.miniapp.plus.service.UserCompanyCreditBillService;
|
|
|
import com.gree.mall.miniapp.plus.service.UserCompanyCreditService;
|
|
import com.gree.mall.miniapp.plus.service.UserCompanyCreditService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.integration.redis.util.RedisLockRegistry;
|
|
import org.springframework.integration.redis.util.RedisLockRegistry;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.support.TransactionSynchronization;
|
|
import org.springframework.transaction.support.TransactionSynchronization;
|
|
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.Arrays;
|
|
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
import java.util.concurrent.locks.Lock;
|
|
@@ -32,7 +39,9 @@ public class UserCompanyCreditLogic {
|
|
|
private final RedisLockRegistry redisLockRegistry;
|
|
private final RedisLockRegistry redisLockRegistry;
|
|
|
private final UserCompanyCreditService userCompanyCreditService;
|
|
private final UserCompanyCreditService userCompanyCreditService;
|
|
|
private final UserCompanyCreditBillService userCompanyCreditBillService;
|
|
private final UserCompanyCreditBillService userCompanyCreditBillService;
|
|
|
|
|
+ private final UserCompanyCreditBillItemService userCompanyCreditBillItemService;
|
|
|
private final LockQueryMapper lockQueryMapper;
|
|
private final LockQueryMapper lockQueryMapper;
|
|
|
|
|
+ private final CommonLogic commonLogic;
|
|
|
|
|
|
|
|
public void createCreditRecord(OrderInfo orderInfo, User user) throws Exception {
|
|
public void createCreditRecord(OrderInfo orderInfo, User user) throws Exception {
|
|
|
if(!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
if(!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
@@ -116,4 +125,46 @@ public class UserCompanyCreditLogic {
|
|
|
obtain.unlock();
|
|
obtain.unlock();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public List<UserCompanyCredit> recordList() {
|
|
|
|
|
+ CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
|
|
|
+ return userCompanyCreditService.lambdaQuery()
|
|
|
|
|
+ .select(UserCompanyCredit::getCompanyWechatId, UserCompanyCredit::getCompanyWechatName,
|
|
|
|
|
+ UserCompanyCredit::getCreditLimit, UserCompanyCredit::getAvailableCredit,
|
|
|
|
|
+ UserCompanyCredit::getIsCreditEnabled, UserCompanyCredit::getBillingDay,
|
|
|
|
|
+ UserCompanyCredit::getPaymentGracePeriod, UserCompanyCredit::getCreateTime)
|
|
|
|
|
+ .eq(UserCompanyCredit::getUserId, currentCompanyWechat.getUserId())
|
|
|
|
|
+ .list();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public IPage<UserCompanyCreditBill> billList(String companyWechatId, Integer year, Integer pageNum, Integer pageSize) {
|
|
|
|
|
+ CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
|
|
|
+
|
|
|
|
|
+ DateTime start = DateUtil.beginOfYear(DateUtil.parse(year + "-01-01"));
|
|
|
|
|
+ DateTime end = DateUtil.endOfYear(DateUtil.parse(year + "-01-01"));
|
|
|
|
|
+ IPage<UserCompanyCreditBill> page = userCompanyCreditBillService.lambdaQuery()
|
|
|
|
|
+ .eq(UserCompanyCreditBill::getUserId, currentCompanyWechat.getUserId())
|
|
|
|
|
+ .eq(UserCompanyCreditBill::getCompanyWechatId, companyWechatId)
|
|
|
|
|
+ .between(Objects.nonNull(year), UserCompanyCreditBill::getCreateTime, start, end)
|
|
|
|
|
+ .orderByDesc(UserCompanyCreditBill::getBillId)
|
|
|
|
|
+ .page(new Page<>(pageNum, pageSize));
|
|
|
|
|
+
|
|
|
|
|
+ return page;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public IPage<UserCompanyCreditBillItem> accList(String companyWechatId, String billId, TransactionTypeEnum type, Integer pageNum, Integer pageSize) {
|
|
|
|
|
+ CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
|
|
|
+
|
|
|
|
|
+ IPage<UserCompanyCreditBillItem> page = userCompanyCreditBillItemService.lambdaQuery()
|
|
|
|
|
+ .eq(UserCompanyCreditBillItem::getUserId, currentCompanyWechat.getUserId())
|
|
|
|
|
+ .eq(UserCompanyCreditBillItem::getCompanyWechatId, companyWechatId)
|
|
|
|
|
+ .eq(StringUtils.isNotBlank(billId), UserCompanyCreditBillItem::getUserCompanyCreditBillId, billId)
|
|
|
|
|
+ .isNull(StringUtils.isBlank(billId), UserCompanyCreditBillItem::getUserCompanyCreditBillId)
|
|
|
|
|
+ .eq(Objects.nonNull(type), UserCompanyCreditBillItem::getTransactionType, type.getKey())
|
|
|
|
|
+ .orderByDesc(UserCompanyCreditBillItem::getCreateTime)
|
|
|
|
|
+ .page(new Page<>(pageNum, pageSize));
|
|
|
|
|
+
|
|
|
|
|
+ return page;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|