package com.xzx.gc.pay.service;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.lang.Snowflake;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.xzx.gc.common.Result;
|
import com.xzx.gc.common.constant.*;
|
import com.xzx.gc.common.dto.SimplePage;
|
import com.xzx.gc.common.exception.RestException;
|
import com.xzx.gc.common.utils.*;
|
import com.xzx.gc.common.utils.ali.SmsUtil;
|
import com.xzx.gc.entity.*;
|
import com.xzx.gc.model.JsonResult;
|
import com.xzx.gc.model.admin.*;
|
import com.xzx.gc.model.pay.RkLimitDto;
|
import com.xzx.gc.pay.mapper.*;
|
import com.xzx.gc.util.DoubleUtil;
|
import com.xzx.gc.util.SessionUtil;
|
import com.xzx.gc.util.pay.util.entity.TransfersDtoAdmin;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.ParseException;
|
import java.util.*;
|
|
@Service
|
@Transactional
|
@Slf4j
|
public class PayRequestService {
|
|
@Autowired
|
private PayRequestMapper payRequestMapper;
|
|
@Autowired
|
private IdUtils idUtils;
|
|
@Autowired
|
private RemittanceUserService remittanceUserService;
|
|
@Autowired
|
private CityPartnerMapper cityPartnerMapper;
|
|
@Autowired
|
private PayInfoMapper payInfoMapper;
|
@Autowired
|
private AccountService accountService;
|
|
@Autowired
|
private AccountMapper accountMapper;
|
|
@Autowired
|
private ConfigService configService;
|
|
@Autowired
|
private CityPartnerService cityPartnerService;
|
|
@Autowired
|
private SessionUtil sessionUtil;
|
|
@Autowired
|
private UserService userService;
|
|
@Autowired
|
private OtherUserService otherUserService;
|
|
@Autowired
|
private AccountLogMapper accountLogMapper;
|
|
@Autowired
|
private UserRoleMapper userRoleMapper;
|
|
@Autowired
|
private OrderMapper orderMapper;
|
|
@Autowired
|
private RedisUtil redisUtil;
|
|
@Autowired
|
private UserMapper userMapper;
|
|
@Autowired
|
private PartnerAccountMapper partnerAccountMapper;
|
|
@Autowired
|
private RemittanceUserMapper remittanceUserMapper;
|
|
@Autowired
|
private PartnerAccountLogService partnerAccountLogService;
|
|
@Autowired
|
private PartnerAccountLogMapper partnerAccountLogMapper;
|
|
@Autowired
|
private PlatformAccountInfoMapper platformAccountInfoMapper;
|
|
@Autowired
|
private PlatformAccountLogMapper platformAccountLogMapper;
|
|
@Autowired
|
private OtherUserMapper otherUserMapper;
|
|
@Autowired
|
private BusinessUtil businessUtil;
|
|
@Autowired
|
private OrderStorageInfoMapper orderStorageInfoMapper;
|
|
public void add(PayRequestInfo payRequestInfo){
|
String payOrderId = idUtils.generate("ZF",0);
|
payRequestInfo.setPayOrderId(payOrderId);
|
payRequestInfo.setStatus(PayEnum.待审核.getValue());
|
payRequestInfo.setCreateTime(DateUtil.now());
|
AccountInfo accountInfo1 = accountService.findByUserId(payRequestInfo.getCreateUserId());
|
if(accountInfo1!=null){
|
payRequestInfo.setAccountId(accountInfo1.getAccountId());
|
}
|
payRequestMapper.insertSelective(payRequestInfo);
|
}
|
|
|
|
/**
|
* 查询金钱列表
|
* @param moneyModel
|
* @return
|
*/
|
public Map<String, Object> queryMoneyList(MoneyModel moneyModel, String page, String limit){
|
if(!StringUtils.isEmpty(moneyModel.getNickName())){
|
moneyModel.setNickName(new String(Base64.encodeBase64(moneyModel.getNickName().getBytes())));
|
}
|
PageHelper.startPage(Convert.toInt(page),Convert.toInt(limit));
|
List<MoneyModel> list = payRequestMapper.queryMoneyList(moneyModel);
|
PageInfo<MoneyModel> pageInfo=new PageInfo<>(list);
|
if(!StringUtils.isEmpty(moneyModel.getMobilePhone())){
|
if(list.size()==0){
|
PageHelper.startPage(Convert.toInt(page),Convert.toInt(limit));
|
list = payRequestMapper.queryOtherMoneyList(moneyModel);
|
pageInfo=new PageInfo<>(list);
|
}
|
}
|
//APPROVAL_TYPE
|
String approvalType = configService.findByCode("APPROVAL_TYPE").getConfigValue();
|
for (MoneyModel model:list) {
|
model.setApprovalType(approvalType);
|
}
|
long count =0;
|
if(null!=list&&list.size()>0){
|
count= pageInfo.getTotal();
|
}
|
Map<String, Object> m = new HashMap<>();
|
m.put("data", list);
|
m.put("count", count);
|
m.put("code", 0);
|
return m;
|
}
|
|
|
/**
|
* 查询提现列表
|
* @param moneyModel
|
* @return
|
*/
|
public JsonResult<Map<String, Object>> queryFundManagementList(MoneyModel moneyModel){
|
|
List<String> partnerIds = new ArrayList<>();
|
if(null!=moneyModel.getPartnerId()&&!"".equals(moneyModel.getPartnerId())){
|
partnerIds.add(moneyModel.getPartnerId());
|
}else{
|
partnerIds = cityPartnerService.queryPartnerByCurrent();
|
}
|
moneyModel.setPartnerIds(partnerIds);
|
Map<String, Object> map = new HashMap<>();
|
if(!StringUtils.isEmpty(moneyModel.getNickName())){
|
moneyModel.setName(moneyModel.getNickName());
|
moneyModel.setNickName(new String(Base64.encodeBase64(moneyModel.getNickName().getBytes())));
|
}
|
if(null!=partnerIds&&partnerIds.size()>0){
|
List<String> packageIds = cityPartnerService.queryPackageIdByPartnerId(partnerIds.get(0));
|
packageIds.add(partnerIds.get(0));
|
moneyModel.setPartnerIds(packageIds);
|
}
|
if(null!=moneyModel.getStartTime()&&!"".equals(moneyModel.getStartTime())){
|
moneyModel.setStartTime(moneyModel.getStartTime()+" 00:00:00");
|
}
|
if(null!=moneyModel.getEndTime()&&!"".equals(moneyModel.getEndTime())){
|
moneyModel.setEndTime(moneyModel.getEndTime()+" 23:59:59");
|
}
|
PageHelper.startPage(moneyModel.getPage(),moneyModel.getLimit());
|
List<MoneyModel> list = payRequestMapper.queryMoneyList2(moneyModel);
|
PageInfo<MoneyModel> pageInfo=new PageInfo<>(list);
|
|
List<String> payOrderIds = payRequestMapper.queryPayOrderIds(moneyModel);
|
|
CoreUser currentUser = sessionUtil.getCurrentUser();
|
CityPartner pa = cityPartnerService.queryById(currentUser.getId()+"");
|
String todaySuccess ="0";
|
String today="0";
|
if(moneyModel.getPayType()!="9"){
|
|
//MoneyModel m1 = new MoneyModel();
|
moneyModel.setStartTime(DateUtil.today()+" 00:00:00");
|
moneyModel.setEndTime(DateUtil.today()+" 23:59:59");
|
moneyModel.setStatus("2");
|
if(payOrderIds.size()>0){
|
//m1.setPayOrderIds(payOrderIds);
|
todaySuccess = payRequestMapper.queryMoneyTodayList(moneyModel);
|
}
|
|
if(null!=todaySuccess&&!"".equals(todaySuccess)){
|
map.put("todaySuccess", DoubleUtil.roundTwo(todaySuccess));
|
}else{
|
map.put("todaySuccess",0);
|
}
|
//MoneyModel m2 = new MoneyModel();
|
moneyModel.setStartTime(DateUtil.today()+" 00:00:00");
|
moneyModel.setEndTime(DateUtil.today()+" 23:59:59");
|
moneyModel.setStatus(null);
|
if(payOrderIds.size()>0){
|
//m2.setPayOrderIds(payOrderIds);
|
today = payRequestMapper.queryMoneyTodayList(moneyModel);
|
}
|
if(null!=today&&!"".equals(today)){
|
map.put("today",DoubleUtil.roundTwo(today));
|
}else{
|
map.put("today",0);
|
}
|
}
|
String approvalType = configService.findByCode("APPROVAL_TYPE").getConfigValue();
|
for (MoneyModel model:list) {
|
model.setApprovalType(approvalType);
|
String userId = model.getCreateUserId();
|
//查询当前额度
|
model = getModelByPayOrderId(model);
|
AccountInfo model1 = accountService.findByUserIdForbidden(userId);
|
if(null!=model1){
|
if(model.getPayType().equals("9")){
|
if(null!=model.getOrderId()&&!"".equals(model.getOrderId())){
|
model.setOverdraftLimit(model.getOldLimit());
|
}else{
|
model.setOverdraftLimit(model.getOldLimit());
|
}
|
model.setFixedLimit(model.getNewFixedLimit());
|
}else{
|
model.setFixedLimit(model.getNewFixedLimit());
|
model.setOverdraftLimit(model.getNewFixedLimit());
|
}
|
}else{
|
model.setFixedLimit("0");
|
model.setOverdraftLimit("0");
|
}
|
String nickName = "";
|
if(model.getUserType().equals("1")){
|
nickName= com.xzx.gc.common.utils.StringUtils.decode(model.getNickName());
|
}else{
|
nickName = model.getNickName();
|
}
|
model.setNickName(nickName);
|
model.setName(nickName);
|
if(model.getPayType().equals("7")){
|
UserInfo userModel = userService.findById(userId);
|
if (userModel == null) {
|
OtherUserInfo otherUserInfo= otherUserService.findById(userId);
|
userModel=new UserInfo();
|
BeanUtil.copyProperties(otherUserInfo,userModel);
|
}
|
if(userModel!=null){
|
model.setName(userModel.getName());
|
model.setMobilePhone(userModel.getMobilePhone());
|
}else{
|
model.setName("--");
|
model.setMobilePhone("--");
|
}
|
}else if(model.getPayType().equals("9")){
|
//查询回收员名称和手机号
|
String userType = "";
|
UserInfo userModel = userService.findById(userId);
|
if (userModel == null) {
|
OtherUserInfo otherUserInfo= otherUserService.findById(userId);
|
userModel=new UserInfo();
|
BeanUtil.copyProperties(otherUserInfo,userModel);
|
}
|
if(!"1".equals(userType)){
|
String roleName = userRoleMapper.queryPayInfoUserRole(userType);
|
model.setRoleName(roleName);
|
}else{
|
model.setRoleName("普通用户");
|
}
|
if(null!=userModel){
|
model.setName(userModel.getName());
|
model.setMobilePhone(userModel.getMobilePhone());
|
}else{
|
model.setName("--");
|
model.setMobilePhone("--");
|
}
|
}
|
}
|
map.put("data", list);
|
map.put("count", pageInfo.getTotal());
|
map.put("code", 0);
|
|
return JsonResult.success(map);
|
}
|
|
private MoneyModel getModelByPayOrderId(MoneyModel model){
|
MoneyModel newModel = accountLogMapper.getModelByPayOrderId(model);
|
if(null!=newModel){
|
model.setOldLimit(newModel.getOldLimit());
|
model.setNewLimit(newModel.getNewLimit());
|
model.setOldFixedLimit(newModel.getOldFixedLimit());
|
model.setNewFixedLimit(newModel.getNewFixedLimit());
|
}else{
|
model.setOldLimit("-");
|
model.setNewLimit("-");
|
model.setOldFixedLimit("-");
|
model.setNewFixedLimit("-");
|
}
|
return model;
|
}
|
|
public JsonResult<Map<String,Object>> queryPayInfoDetailApi(MoneyModel moneyModel){
|
Map<String,Object> map = new HashMap<>();
|
if(moneyModel.getUserType().equals("1")){
|
map = payRequestMapper.queryPayInfoDetail(moneyModel.getPayOrderId());
|
}else{
|
map = payRequestMapper.queryPayInfoDetailHS(moneyModel.getPayOrderId());
|
}
|
|
|
String userId = map.get("create_user_id").toString();
|
|
PayRequestInfoModel model = new PayRequestInfoModel();
|
|
//提现审核详情需要查询用户订单列表
|
if(moneyModel.getUserType().equals("1")){
|
model.setUserId(userId);
|
}else{
|
model.setOtherUserId(userId);
|
}
|
PageHelper.startPage(moneyModel.getPage(),moneyModel.getLimit());
|
List<PayRequestInfoModel> orderList = orderMapper.queryUserOrderList(model);
|
PageInfo<PayRequestInfoModel> pageInfo=new PageInfo<>(orderList);
|
for (PayRequestInfoModel reqModel:orderList) {
|
reqModel.setWeight(DoubleUtil.roundThree(reqModel.getWeight()));
|
reqModel.setMoney(DoubleUtil.roundTwo(reqModel.getMoney()));
|
}
|
map.put("data",orderList);
|
map.put("count",pageInfo.getTotal());
|
map.put("code",0);
|
|
List<Map<String,Object>> totalMap = orderMapper.queryUserOrderMoneyAndWeight(model);
|
BigDecimal totalmoney = new BigDecimal("0");
|
BigDecimal totalweight = new BigDecimal("0");
|
for (Map<String,Object> mw:totalMap) {
|
totalmoney = new BigDecimal(mw.get("money").toString()).add(totalmoney);
|
totalweight = new BigDecimal(mw.get("weight").toString()).add(totalweight);
|
}
|
|
map.put("totalMoney", DoubleUtil.roundTwo(totalmoney.toString()));
|
map.put("totalWeight",DoubleUtil.roundThree(totalweight.toString()));
|
|
if(!"1".equals(map.get("userType"))){
|
String roleName = userRoleMapper.queryPayInfoUserRole(map.get("userType").toString());
|
map.put("roleName",roleName);
|
}else{
|
map.put("roleName","普通用户");
|
}
|
|
if(map.get("status").equals("2")){
|
map.put("statusName","已审核");
|
}else if(map.get("status").equals("3")){
|
map.put("statusName","审核未通过");
|
}else{
|
map.put("statusName","待审核");
|
}
|
|
return JsonResult.success(map);
|
}
|
|
|
/**
|
* 查询充值记录
|
* @param moneyModel
|
*/
|
public Map<String, Object> queryRechangeApiList(MoneyModel moneyModel){
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
moneyModel.setPartnerIds(partnerIds);
|
|
if(!StringUtils.isEmpty(moneyModel.getNickName())){
|
moneyModel.setPartnerName(moneyModel.getNickName());
|
moneyModel.setMobilePhone(moneyModel.getNickName());
|
}
|
moneyModel.setPayType("1");
|
Map<String, Object> m = new HashMap<>();
|
String startTime =DateUtil.today()+" 00:00:00";
|
String endTime =DateUtil.today()+" 23:59:59";
|
List<String> statusList = new ArrayList<>();
|
List<String> statusList1 = new ArrayList<>();
|
|
statusList.add("1");
|
statusList.add("2");
|
statusList.add("3");
|
statusList.add("4");
|
statusList.add("5");
|
String today = payInfoMapper.queryRechangeMoney(statusList,"1",startTime,endTime,partnerIds);
|
statusList1.add("2");
|
statusList1.add("3");
|
String todaySuccess = payInfoMapper.queryRechangeMoney(statusList1,"1",startTime,endTime,partnerIds);;
|
if( today==null || today.equals("")){
|
today="0";
|
}
|
if( todaySuccess==null || todaySuccess.equals("")){
|
todaySuccess="0";
|
}
|
m.put("today",DoubleUtil.roundTwo(today));
|
m.put("todaySuccess",DoubleUtil.roundTwo(todaySuccess));
|
|
PageHelper.startPage(moneyModel.getPage(),moneyModel.getLimit());
|
moneyModel.setStartTime(DateUtils.changeTimeBigin(moneyModel.getStartTime()));
|
moneyModel.setEndTime(DateUtils.changeTimeEnd(moneyModel.getEndTime()));
|
List<MoneyModel> list1 = payInfoMapper.queryRechangeApiList(moneyModel);
|
PageInfo<MoneyModel> pageInfo=new PageInfo<>(list1);
|
for (MoneyModel model:list1) {
|
String nickName = "";
|
model.setMoney(DoubleUtil.roundTwo(model.getMoney()));
|
if(null!=model.getPartnerName()&&!"".equals(model.getPartnerName())){
|
String payOrderId=model.getPayOrderId();
|
nickName = model.getPartnerName();
|
model.setMobilePhone(model.getPartnerPhone());
|
if(model.getPartnerType().equals("1")){
|
model.setRoleName("城市合伙人");
|
}else{
|
model.setRoleName("打包站");
|
}
|
RemittanceUser remittanceUser = remittanceUserService.findByPayOrderId(payOrderId);
|
RemittanceModel remittanceModel=new RemittanceModel();
|
BeanUtil.copyProperties(remittanceUser,remittanceModel);
|
model.setRemittanceModel(remittanceModel);
|
if(null==model.getFee()){
|
model.setFee("0");
|
}
|
BigDecimal fee = new BigDecimal(model.getFee());
|
model.setFee(DoubleUtil.roundTwo(fee.toString()));
|
}else{
|
if(com.xzx.gc.common.utils.StringUtils.isBase64(model.getNickName())) {
|
nickName = com.xzx.gc.common.utils.StringUtils.decode(model.getNickName());
|
}else {
|
nickName=model.getNickName();
|
}
|
if(null==model.getFee()){
|
model.setFee("0");
|
}
|
BigDecimal fee = new BigDecimal(model.getFee());
|
BigDecimal tMoney = new BigDecimal(model.getMoney());
|
model.setMoney(DoubleUtil.roundTwo(tMoney.toString()));
|
model.setFee(DoubleUtil.roundTwo(fee.toString()));
|
|
String userId = model.getCreateUserId();
|
UserInfo user = userService.findById(userId);
|
//RemittanceModel remittanceModel = new RemittanceModel();
|
if(null!=user){
|
/* 充值姓名:
|
充值手机号:
|
角色:*/
|
model.setRoleName("普通用户");
|
model.setUserType(user.getUserType());
|
String userName = com.xzx.gc.common.utils.StringUtils.decode(user.getNickName());
|
model.setPayName(userName);
|
model.setPayMobile(user.getMobilePhone());
|
model.setPartnerName(user.getName());
|
model.setPartnerPhone(user.getMobilePhone());
|
RemittanceModel remittanceModel = new RemittanceModel();
|
remittanceModel.setCreateUserId(userId);
|
remittanceModel.setRechargePhone(user.getMobilePhone());
|
remittanceModel.setRechargeName(user.getName());
|
model.setRemittanceModel(remittanceModel);
|
|
}else{
|
OtherUserInfo otherUserInfo = otherUserService.findById(userId);
|
if(null!=otherUserInfo){
|
user=new UserInfo();
|
BeanUtil.copyProperties(otherUserInfo,user);
|
RemittanceModel remittanceModel = new RemittanceModel();
|
remittanceModel.setCreateUserId(userId);
|
remittanceModel.setRechargePhone(user.getMobilePhone());
|
remittanceModel.setRechargeName(user.getName());
|
model.setUserType(user.getUserType());
|
String roleName =userRoleMapper.queryPayInfoUserRole(user.getUserType());
|
model.setRoleName(roleName);
|
model.setPayName(user.getName());
|
model.setPartnerName(user.getName());
|
model.setPartnerPhone(user.getMobilePhone());
|
model.setPayMobile(user.getMobilePhone());
|
model.setRemittanceModel(remittanceModel);
|
}
|
|
}
|
}
|
model.setNickName(nickName);
|
}
|
m.put("data", list1);
|
m.put("count", pageInfo.getTotal());
|
m.put("code", 0);
|
return m;
|
}
|
|
|
public Map<String, Object> queryRechangeApiDetail(PayInfoModel model){
|
PayInfoModel result = payInfoMapper.queryRechangeApiDetail(model);
|
Map<String, Object> map = new HashMap<>();
|
if(null!=result){
|
map.put("data",result);
|
map.put("code",0);
|
map.put("msg","查询成功");
|
}else{
|
map.put("code",-1);
|
map.put("msg","查询失败");
|
}
|
return map;
|
}
|
|
|
public JsonResult<String> audit(TransfersDtoAdmin dto){
|
MoneyModel moneyModel = new MoneyModel();
|
moneyModel.setPayOrderId(dto.getPayOrderId());
|
moneyModel = payRequestMapper.queryMoney(moneyModel);
|
UserInfo userModel = userService.findById(moneyModel.getCreateUserId());
|
if (userModel == null) {
|
// if (moneyModel.getPayType().equals("9")) {
|
// userModel = cuserConsoleService.queryRecoveryById(moneyModel.getCreateUserId(), "4");
|
// } else {
|
// userModel = cuserConsoleService.queryRecoveryById(moneyModel.getCreateUserId(), "2");
|
// }
|
OtherUserInfo byId = otherUserService.findById(moneyModel.getCreateUserId());
|
userModel=new UserInfo();
|
BeanUtil.copyProperties(byId,userModel);
|
}
|
|
if (null != userModel) {
|
AccountInfo userAccountModel = accountService.findByUserIdForbidden(moneyModel.getCreateUserId());
|
if (userAccountModel == null) {
|
return JsonResult.success("此用户未查询到账户信息");
|
} else {
|
String money = moneyModel.getMoney();
|
String type = "";
|
if (moneyModel.getPayType().equals("9")) {
|
type = "9";
|
BigDecimal money1 = new BigDecimal(userAccountModel.getFixedLimit()).subtract(new BigDecimal(userAccountModel.getOverdraftLimit()));
|
money = DoubleUtil.roundTwo(money1.toString());
|
accountMapper.updateLimitByUserId(userAccountModel.getAccountId(), moneyModel.getMoney());
|
} else {
|
type = "8";
|
accountService.updateOverdrawPriceByUserId(userAccountModel.getAccountId(), moneyModel.getMoney());
|
}
|
//此处需要扣除合伙人的钱
|
String partnerId = userModel.getPartnerId();
|
CityPartner partner = cityPartnerService.queryById(partnerId);
|
if (partner.getPartnerType().equals("2")) {
|
partner = cityPartnerService.queryById(partner.getPackingStation());
|
}
|
PartnerAccountModel partnerAccountModel = partnerAccountMapper.getPartnerAccountByUserId(partner.getUserId());
|
Snowflake snowflake = IdUtil.getSnowflake(0, 3);
|
String payOrderId = "ZF" + snowflake.nextIdStr();
|
partnerAccountLogService.insertPartnerAccountLog(partnerAccountModel, type, new BigDecimal(money), payOrderId, null);
|
BigDecimal newPartnerMoney = new BigDecimal(partnerAccountModel.getHbb()).subtract(new BigDecimal(money));
|
if (newPartnerMoney.compareTo(BigDecimal.ZERO) == -1) {
|
return JsonResult.failMessage("所属合伙人需要充值!余额不够分配!");
|
}
|
|
//partnerAccount.setMoney(newPartnerMoney.doubleValue());
|
partnerAccountModel.setMoney(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
partnerAccountModel.setHbb(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
//cityPartnerService.updateAccountPartner(partnerAccount);
|
partnerAccountMapper.updatePartnerAccount(partnerAccountModel);
|
CoreUser user = sessionUtil.getCurrentUser();
|
//修改申请状态
|
moneyModel.setStatus("2");
|
moneyModel.setUpdateTime(DateUtil.now());
|
moneyModel.setCreateUserId(String.valueOf(user.getId()));
|
moneyModel.setUnpassReason("");
|
payRequestMapper.updateMoney(moneyModel);
|
//写入日志
|
AccountLogModel log = new AccountLogModel();
|
log.setAccountId(userAccountModel.getAccountId());
|
log.setChannelType(type);
|
log.setCreateTime(DateUtil.now());
|
log.setCreateUserId(userAccountModel.getUserId());
|
BigDecimal oldFixedLimit = new BigDecimal(String.valueOf(userAccountModel.getFixedLimit()));
|
BigDecimal oldLimit = new BigDecimal(String.valueOf(userAccountModel.getOverdraftLimit()));
|
if(moneyModel.getPayType().equals(PayEnum.额度恢复.getValue())){
|
log.setNewFixedLimit(oldFixedLimit.toString());
|
|
}else{
|
log.setNewFixedLimit(oldFixedLimit.add(new BigDecimal(moneyModel.getMoney())).toString());
|
|
}
|
log.setNewLimit(oldLimit.add(new BigDecimal(moneyModel.getMoney())).toString());
|
log.setNewMoney(String.valueOf(userAccountModel.getMoney()));
|
log.setOldFixedLimit(oldFixedLimit.toString());
|
log.setOldLimit(oldLimit.toString());
|
log.setOldMoney(String.valueOf(userAccountModel.getMoney()));
|
log.setOrderId(dto.getPayOrderId());
|
accountLogMapper.insertAccountLog(log);
|
return JsonResult.success("完成审核");
|
}
|
} else {
|
return JsonResult.failMessage("查不到对应的申请人");
|
}
|
}
|
|
|
public JsonResult<String> auditDeny(TransfersDtoAdmin dto){
|
MoneyModel moneyModel = new MoneyModel();
|
moneyModel.setPayOrderId(dto.getPayOrderId());
|
moneyModel = payRequestMapper.queryMoney(moneyModel);
|
moneyModel.setStatus("3");
|
moneyModel.setUnpassReason(dto.getUnpassReason());
|
payRequestMapper.updateMoney(moneyModel);
|
return JsonResult.success();
|
}
|
|
|
public String addPayInfoImg(PayInfoModel model) {
|
Snowflake snowflake1 = IdUtil.getSnowflake(0, 3);
|
String payOrderId = "ZF" + snowflake1.nextIdStr();
|
RemittanceModel remittanceModel = new RemittanceModel();
|
remittanceModel.setBankName("长沙银行股份有限公司鑫泰支行");
|
remittanceModel.setCompany("湖南小棕熊环保科技有限公司");
|
remittanceModel.setCompanyAccount("800271283808014");
|
remittanceModel.setCreateTime(DateUtil.now());
|
remittanceModel.setRechargeName(model.getRechargeName());
|
remittanceModel.setRechargePhone(model.getRechargePhone());
|
remittanceModel.setPayOrderId(payOrderId);
|
CoreUser user = sessionUtil.getCurrentUser();
|
CityPartner partner = cityPartnerMapper.selectByPrimaryKey(user.getId());
|
if (null == partner) {
|
if (null != model.getPartnerId() && !"".equals(model.getPartnerId())) {
|
partner = cityPartnerMapper.selectByPrimaryKey(Long.parseLong(model.getPartnerId()));
|
}
|
}else{
|
if(null!=model.getPartnerId()&&!"".equals(model.getPartnerId())){
|
partner = cityPartnerMapper.selectByPrimaryKey(Long.parseLong(model.getPartnerId()));
|
|
}
|
}
|
remittanceModel.setCreateUserId(partner.getUserId() + "");
|
remittanceUserMapper.insertRemittance(remittanceModel);
|
|
|
model.setPayOrderId(payOrderId);
|
model.setCreateUserId(partner.getUserId() + "");
|
|
int num = payInfoMapper.addPayInfo(model);
|
// PartnerAccountLogModel log = new PartnerAccountLogModel();
|
// log.setFlowNo(payOrderId);
|
// log.setCreateTime(DateUtil.now());
|
// log.setApproverStatus("1");
|
// log.setMoney(model.getMoney());
|
// log.setHbb(model.getMoney());
|
// log.setDelFlag(0);
|
// log.setAccountId(partner.getAccountNo());
|
// log.setUserName(partner.getPartnerName());
|
// log.setType("1");
|
// log.setUserPhone(partner.getMobilePhone());
|
// if (partner.getPartnerType().equals("1")) {
|
// log.setRoleName("城市合伙人");
|
// } else {
|
// log.setRoleName("打包站");
|
// }
|
//
|
// partnerAccountLogMapper.addPartnerAccountLog(log);
|
|
|
//发送审核短信
|
if(SpringUtil.isProdOrCloud()) {
|
String phone = configService.findByCode(SysConfigConstant.PAT_AUDIT_PHONE).getConfigValue();
|
Map<String, String> map = new HashMap<>();
|
map.put("money", model.getMoney());
|
map.put("account", model.getRechargePhone());
|
String content = StrUtil.format("账号{account}提交一笔充值{money}元的申请,请尽快审核", map);
|
String[] strings = StrUtil.splitToArray(phone, Convert.toChar(","));
|
for (String string : strings) {
|
SmsUtil.sendPoint(string, content);
|
}
|
}
|
|
return num + "";
|
}
|
|
|
public void updatePayInfoPass(PayInfoModel model) {
|
String payOrderId = model.getPayOrderId();
|
String key=RedisKeyConstant.PAY_AUDIT+payOrderId;
|
|
if(redisUtil.setnx(key,"0")) {
|
try {
|
PayInfoModel payInfo = payInfoMapper.queryPayInfoById(payOrderId);
|
payInfoMapper.updatePayInfoPass(model);
|
PartnerAccountLogModel partnerAccountLogModel = new PartnerAccountLogModel();
|
//审核通过,需要修改用户可用余额
|
//1:查询合作人账号
|
PartnerAccountModel pAccount = partnerAccountMapper.getPartnerAccountByUserId(model.getCreateUserId());
|
String acc = platformAccountInfoMapper.queryAccountByAdminId();
|
String[] accArr = acc.split(",");
|
String adminMoney = accArr[1];
|
String adminhbb = accArr[2];
|
|
if (null != pAccount) {
|
if (null != pAccount.getHbb()) {
|
} else {
|
pAccount.setHbb("0");
|
}
|
BigDecimal oldhbb = new BigDecimal(pAccount.getHbb());
|
BigDecimal newhbb = oldhbb.add(new BigDecimal(payInfo.getMoney()));
|
//平台
|
BigDecimal oldAdminMoney = new BigDecimal(adminMoney);
|
BigDecimal oldAdminhbb = new BigDecimal(adminhbb);
|
CoreUser user = sessionUtil.getCurrentUser();
|
BigDecimal b3 = new BigDecimal(pAccount.getHbb());
|
//平台账户处理充值
|
BigDecimal newAdminMoney = oldAdminMoney.add(new BigDecimal(payInfo.getMoney()));
|
BigDecimal newAdminhbb = oldAdminhbb.subtract(new BigDecimal(payInfo.getMoney()));
|
partnerAccountLogModel.setApprover(user.getName());
|
partnerAccountLogModel.setUpdateTime(DateUtil.now());
|
partnerAccountLogModel.setApproverTime(DateUtil.now());
|
partnerAccountLogModel.setHbb(b3.add(new BigDecimal(payInfo.getMoney())).toString());
|
partnerAccountLogModel.setFlowNo(payOrderId);
|
partnerAccountLogModel.setApproverStatus("2");
|
if (pAccount.getType().equals(OrderEnum.账户合伙人.getValue())) {
|
//合伙人充值
|
if (model.getStatus().equals(PayEnum.已审核.getValue())) {
|
BigDecimal b1 = new BigDecimal(pAccount.getHbb());
|
BigDecimal b2 = new BigDecimal(model.getMoney());
|
partnerAccountMapper.updateParterAccountMoney(DoubleUtil.roundTwo(b3.add(b2).toString()), pAccount.getAccount());
|
platformAccountInfoMapper.updatePlatformMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountInfoMapper.updatePlatformHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
|
CityPartner partner = cityPartnerService.queryById(pAccount.getPartnerId());
|
PartnerAccountModel pAccount1 = partnerAccountMapper.getPartnerAccountByUserId(partner.getUserId());
|
String userM = "0";
|
if (null != pAccount1.getHbb() & !"".equals(pAccount1.getHbb())) {
|
userM = DoubleUtil.roundTwo(pAccount1.getHbb());
|
}
|
String packUserId = partner.getUserId();
|
log.debug("打包员金额为::" + userM + "打包员的UserId 为" + packUserId);
|
PlatformAccountLogModel platformAccountLogModel = new PlatformAccountLogModel();
|
platformAccountLogModel.setCreateTime(DateUtil.now());
|
platformAccountLogModel.setCreateUserId(pAccount.getPartnerId());
|
platformAccountLogModel.setMoney(DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setHbb("-" + DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setOldHbb(DoubleUtil.roundTwo(oldAdminhbb.toString()));
|
platformAccountLogModel.setOldMoney(DoubleUtil.roundTwo(oldAdminMoney.toString()));
|
platformAccountLogModel.setNewHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
platformAccountLogModel.setNewMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountLogModel.setCreateUserName(partner.getPartnerName());
|
platformAccountLogModel.setCreateUserType("2");
|
platformAccountLogModel.setCreateUserMobile(partner.getMobilePhone());
|
platformAccountLogModel.setFlowNo(payOrderId);
|
platformAccountLogMapper.insertPlatFormLog(platformAccountLogModel);
|
partnerAccountLogModel.setAccountMoney(b1.toString());
|
partnerAccountLogMapper.updateParterAccountLog(partnerAccountLogModel);
|
} else {
|
partnerAccountLogModel.setApproverStatus(PayEnum.审核不通过.getValue());
|
}
|
} else {
|
//打包站充值 查询打包站的账号
|
if (model.getStatus().equals(PayEnum.已审核.getValue())) {
|
CityPartner packagePartner = cityPartnerService.queryById(pAccount.getPartnerId());
|
CityPartner partner = cityPartnerService.queryById(packagePartner.getPackingStation());
|
platformAccountInfoMapper.updatePlatformMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountInfoMapper.updatePlatformHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
if (pAccount.getOverdraftLimit().equals(pAccount.getFixedLimit())||BusinessSimpleUtil.isEmptyOrZero(pAccount.getFixedLimit())) {
|
PartnerAccountModel newPackage = new PartnerAccountModel();
|
newPackage.setUserId(packagePartner.getUserId());
|
newPackage.setHbb(DoubleUtil.roundTwo(newhbb.toString()));
|
partnerAccountMapper.updatePartnerAccount(newPackage);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney(), null, null);
|
} else {
|
BigDecimal overdraftLimit = new BigDecimal(pAccount.getOverdraftLimit());
|
BigDecimal fixLimit = new BigDecimal(pAccount.getFixedLimit());
|
BigDecimal money = new BigDecimal(payInfo.getMoney());
|
//固定额度-可用额度
|
BigDecimal sfo = fixLimit.subtract(overdraftLimit);
|
//用了的额度 和充值的钱 关系
|
BigDecimal fla = sfo.subtract(money);
|
BigDecimal fla1 = money.subtract(sfo);
|
|
|
if (fla.compareTo(BigDecimal.ZERO) < 0) {
|
//先把可用额度充满再充到环保币
|
pAccount.setOverdraftLimit(pAccount.getFixedLimit());
|
pAccount.setHbb(fla1.add(new BigDecimal(pAccount.getHbb())).toString());
|
partnerAccountMapper.updatePartnerAccount(pAccount);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney(), fla1, sfo);
|
} else {
|
//充值到可用额度里
|
pAccount.setOverdraftLimit(DoubleUtil.roundTwo(overdraftLimit.add(money).toString()));
|
partnerAccountMapper.updatePartnerAccount(pAccount);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney(), null, null);
|
}
|
|
}
|
|
PlatformAccountLogModel platformAccountLogModel = new PlatformAccountLogModel();
|
platformAccountLogModel.setCreateTime(DateUtil.now());
|
platformAccountLogModel.setCreateUserId(pAccount.getPartnerId());
|
platformAccountLogModel.setMoney(DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setHbb("-" + DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setOldHbb(DoubleUtil.roundTwo(oldAdminhbb.toString()));
|
platformAccountLogModel.setOldMoney(DoubleUtil.roundTwo(oldAdminMoney.toString()));
|
platformAccountLogModel.setNewHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
platformAccountLogModel.setNewMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountLogModel.setCreateUserName(partner.getPartnerName());
|
platformAccountLogModel.setCreateUserType("2");
|
platformAccountLogModel.setCreateUserMobile(partner.getMobilePhone());
|
platformAccountLogModel.setFlowNo(payOrderId);
|
platformAccountLogMapper.insertPlatFormLog(platformAccountLogModel);
|
partnerAccountLogMapper.updateParterAccountLog(partnerAccountLogModel);
|
} else {
|
partnerAccountLogModel.setApproverStatus(PayEnum.审核不通过.getValue());
|
}
|
}
|
} else {
|
if (model.getStatus().equals(PayEnum.已审核.getValue())) {
|
updateOtherPayInfoPass(payInfo);
|
//平台
|
BigDecimal oldAdminMoney = new BigDecimal(adminMoney);
|
BigDecimal oldAdminhbb = new BigDecimal(adminhbb);
|
//平台账户处理充值
|
BigDecimal newAdminMoney = oldAdminMoney.add(new BigDecimal(payInfo.getMoney()));
|
BigDecimal newAdminhbb = oldAdminhbb.subtract(new BigDecimal(payInfo.getMoney()));
|
|
UserModel user = otherUserMapper.queryUserOtherInfoById(payInfo.getCreateUserId());
|
String userName = "";
|
String mobilePhone = "";
|
if (null != user) {
|
userName = user.getName();
|
mobilePhone = user.getMobilePhone();
|
} else {
|
user = userMapper.queryUserById(payInfo.getCreateUserId());
|
userName = cn.hutool.core.codec.Base64.decodeStr(user.getNickName());
|
mobilePhone = user.getMobilePhone();
|
}
|
PlatformAccountLogModel platformAccountLogModel = new PlatformAccountLogModel();
|
platformAccountLogModel.setCreateTime(DateUtil.now());
|
platformAccountLogModel.setCreateUserId(payInfo.getCreateUserId());
|
platformAccountLogModel.setMoney(DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setHbb("-" + DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setOldHbb(DoubleUtil.roundTwo(oldAdminhbb.toString()));
|
platformAccountLogModel.setOldMoney(DoubleUtil.roundTwo(oldAdminMoney.toString()));
|
platformAccountLogModel.setNewHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
platformAccountLogModel.setNewMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountLogModel.setCreateUserName(userName);
|
platformAccountLogModel.setCreateUserType("1");
|
platformAccountLogModel.setCreateUserMobile(mobilePhone);
|
platformAccountLogModel.setFlowNo(payOrderId);
|
platformAccountLogMapper.insertPlatFormLog(platformAccountLogModel);
|
platformAccountInfoMapper.updatePlatformMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountInfoMapper.updatePlatformHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
} else {
|
partnerAccountLogModel.setApproverStatus(PayEnum.审核不通过.getValue());
|
}
|
}
|
} catch (Exception e) {
|
ExceptionUtils.err("审核失败",e);
|
}finally {
|
redisUtil.del(key);
|
}
|
}else {
|
throw new RestException("请勿重复操作");
|
}
|
}
|
|
private void updateOtherPayInfoPass(PayInfoModel payInfo){
|
UserAccountModel userAccountModel = accountMapper.getAccountByUserId(payInfo.getCreateUserId());
|
//判断可用额度是否是固定额度
|
String ovLimit =userAccountModel.getOverdraftLimit();
|
String limitMoney = userAccountModel.getFixedLimit();
|
BigDecimal money = new BigDecimal(userAccountModel.getMoney());
|
BigDecimal bigOvlimit = new BigDecimal("0");
|
if(null!=ovLimit&&!"".equals(ovLimit)){
|
bigOvlimit = new BigDecimal(ovLimit);
|
BigDecimal bigLimitMoney = new BigDecimal(limitMoney);
|
BigDecimal subMoney =bigLimitMoney.subtract(bigOvlimit);
|
if(subMoney.compareTo(BigDecimal.ZERO)==0){
|
//全部加入用户余额
|
money = money.add(new BigDecimal(payInfo.getMoney()));
|
}else{
|
BigDecimal adMoney = new BigDecimal(payInfo.getMoney()).subtract(subMoney);
|
if(adMoney.compareTo(BigDecimal.ZERO)==1){
|
money = money.add(adMoney);
|
bigOvlimit = new BigDecimal(limitMoney);
|
}else if(adMoney.compareTo(BigDecimal.ZERO)==0){
|
bigOvlimit = new BigDecimal(limitMoney);
|
}else{
|
bigOvlimit = bigOvlimit.add(new BigDecimal(payInfo.getMoney()));
|
}
|
|
}
|
}else{
|
money=money.add(new BigDecimal(payInfo.getMoney()));
|
|
}
|
//添加日志
|
insertAccountLogByApp(userAccountModel,"1",money,DoubleUtil.roundTwo(bigOvlimit.toString()),payInfo.getPayOrderId());
|
userAccountModel.setOverdraftLimit(DoubleUtil.roundTwo(bigOvlimit.toString()));
|
userAccountModel.setMoney(Double.valueOf(DoubleUtil.roundTwo(money.toString())));
|
accountMapper.updateUserAccount(userAccountModel);
|
}
|
|
private void insertAccountLogByApp(UserAccountModel accountModel, String type, BigDecimal money,String newOv, String payOrderId) {
|
//写入日志
|
AccountLogModel log = new AccountLogModel();
|
log.setAccountId(accountModel.getAccountId());
|
log.setChannelType(type);
|
log.setCreateTime(DateUtil.now());
|
log.setCreateUserId(accountModel.getUserId());
|
log.setNewFixedLimit(accountModel.getFixedLimit());
|
log.setNewLimit(newOv);
|
log.setNewMoney(DoubleUtil.roundTwo(money.toString()));
|
log.setOldFixedLimit(accountModel.getFixedLimit());
|
log.setOldLimit(accountModel.getOverdraftLimit());
|
log.setOldMoney(DoubleUtil.roundTwo(accountModel.getMoney() + ""));
|
log.setOrderId(payOrderId);
|
accountLogMapper.insertAccountLog(log);
|
}
|
|
|
private void insertPackageAccountLog(PartnerAccountModel partnerAccountModel, String payOrderId, String money,BigDecimal hbbFp,BigDecimal edFp) {
|
CityPartner partner = cityPartnerMapper.queryEntityByUserIds(partnerAccountModel.getUserId());
|
PartnerAccountLogModel partnerLog = new PartnerAccountLogModel();
|
partnerLog.setFlowNo(payOrderId);
|
partnerLog.setCreateTime(DateUtil.now());
|
partnerLog.setApproverStatus("1");
|
if(null!=partnerAccountModel.getType()&&!"".equals(partnerAccountModel.getType())){
|
if(partnerAccountModel.getType().equals("7")){
|
AccountMoneyModel model = new AccountMoneyModel();
|
model.setAccountId(partnerAccountModel.getAccount());
|
AccountMoneyModel oldModel = partnerAccountMapper.queryPartnerByAccountId(model);
|
BigDecimal oldLimit = new BigDecimal(oldModel.getFixedLimit());
|
BigDecimal oldOverLimit = new BigDecimal(oldModel.getOverdraftLimit());
|
|
partnerLog.setManageLimit(DoubleUtil.roundTwo(money));
|
partnerLog.setManageLimitFix(DoubleUtil.roundTwo(money));
|
partnerLog.setOldLimitFix(DoubleUtil.roundTwo(oldLimit.toString()));
|
partnerLog.setNewLimitFix(DoubleUtil.roundTwo(partnerAccountModel.getFixedLimit()));
|
partnerLog.setOldLimit(DoubleUtil.roundTwo(oldOverLimit.toString()));
|
partnerLog.setNewLimit(DoubleUtil.roundTwo(partnerAccountModel.getOverdraftLimit()));
|
partnerLog.setMoney(DoubleUtil.roundTwo("0"));
|
partnerLog.setHbb(DoubleUtil.roundTwo(partnerAccountModel.getHbb()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb()));
|
}else{
|
//充值处理
|
if(null!=hbbFp){
|
//环保币分配
|
partnerLog.setMoney(DoubleUtil.roundTwo(hbbFp.toString()));
|
partnerLog.setHbb(DoubleUtil.roundTwo(hbbFp.add(new BigDecimal(partnerAccountModel.getHbb())).toString()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb() + ""));//额度分配
|
//额度分配
|
partnerLog.setOldLimit(partnerAccountModel.getOverdraftLimit());
|
partnerLog.setManageLimit(DoubleUtil.roundTwo(edFp.toString()));
|
partnerLog.setNewLimit(DoubleUtil.roundTwo(edFp.add(new BigDecimal(partnerAccountModel.getOverdraftLimit())).toString()));
|
|
partnerLog.setOldLimitFix(partnerAccountModel.getFixedLimit());
|
partnerLog.setManageLimitFix("0");
|
partnerLog.setNewLimitFix(partnerAccountModel.getFixedLimit());
|
}else{
|
partnerLog.setMoney(DoubleUtil.roundTwo(money));
|
partnerLog.setHbb(DoubleUtil.roundTwo(new BigDecimal(money).add(new BigDecimal(partnerAccountModel.getHbb())).toString()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb() + ""));
|
}
|
}
|
|
}else{
|
partnerLog.setMoney(DoubleUtil.roundTwo(money));
|
partnerLog.setHbb(DoubleUtil.roundTwo(new BigDecimal(money).add(new BigDecimal(partnerAccountModel.getHbb())).toString()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb() + ""));
|
}
|
partnerLog.setDelFlag(0);
|
partnerLog.setAccountId(partnerAccountModel.getAccount());
|
partnerLog.setUserName(partner.getPartnerName());
|
if(null!=partnerAccountModel.getType()&&!"".equals(partnerAccountModel.getType())){
|
partnerLog.setType(partnerAccountModel.getType());
|
}else{
|
partnerLog.setType("1");
|
}
|
|
partnerLog.setUserPhone(partner.getMobilePhone());
|
partnerLog.setRoleName("打包站");
|
partnerAccountLogMapper.addPartnerAccountLog(partnerLog);
|
}
|
|
public int insertPayRequestInfo(PayRequestInfo info){
|
CoreUser user = sessionUtil.getCurrentUser();
|
CityPartner partner = cityPartnerService.queryById(user.getId().toString());
|
PartnerAccountLogModel log = new PartnerAccountLogModel();
|
log.setFlowNo(info.getPayOrderId());
|
log.setCreateTime(DateUtil.now());
|
log.setApproverStatus("1");
|
log.setHbb(info.getMoney());
|
log.setDelFlag(0);
|
log.setAccountId(info.getAccountId());
|
log.setUserName(info.getCreateUserId());
|
log.setType("2");
|
log.setUserPhone(partner.getMobilePhone());
|
log.setRoleName("城市合伙人");
|
partnerAccountLogMapper.addPartnerAccountLog(log);
|
return payRequestMapper.insertPayRequestInfo(info);
|
}
|
|
public Map<String, Object> queryDetailsPresentation(PartnerPayMsgModel model) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
model.setPartnerIds(partnerIds);
|
Map<String, Object> map = new HashMap<>();
|
model.setUserId(model.getUserId());
|
|
PageHelper.startPage(model.getPage(),model.getLimit());
|
List<PartnerPayMsgModel> list = payRequestMapper.queryDetailsPresentation(model);
|
for (PartnerPayMsgModel model1 : list
|
) {
|
model1.setMoney(DoubleUtil.roundTwo(model1.getMoney()));
|
}
|
PageInfo<PartnerPayMsgModel> pageInfo=new PageInfo<>(list);
|
map.put("code", 0);
|
map.put("data", list);
|
map.put("count", pageInfo.getTotal());
|
return map;
|
}
|
|
public PageInfo<RkLimitDto> rkMessage(String userId, SimplePage simplePage) {
|
PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize());
|
List<RkLimitDto> list=payRequestMapper.rkMessage(userId);
|
if(CollUtil.isNotEmpty(list)){
|
for (RkLimitDto rkLimitDto : list) {
|
Short msgType = rkLimitDto.getMsgType();
|
if(PayEnum.额度恢复.getValue().equals(msgType.toString())){
|
rkLimitDto.setMoney("+"+businessUtil.changeMoney(rkLimitDto.getMoney()));
|
if(PayEnum.待审核.getValue().equals(rkLimitDto.getStatus())){
|
rkLimitDto.setStatusName("审核中");
|
}else if(PayEnum.已审核完成.getValue().equals(rkLimitDto.getStatus())){
|
rkLimitDto.setStatusName("已审核");
|
}else if(PayEnum.审核不通过.getValue().equals(rkLimitDto.getStatus())){
|
rkLimitDto.setStatusName("审核不通过");
|
}
|
}else{
|
rkLimitDto.setMoney("-"+businessUtil.changeMoney(rkLimitDto.getMoney()));
|
rkLimitDto.setStatusName("已完成");
|
}
|
//修复时间
|
// rkLimitDto.setCreateTime(DateUtil.format(DateUtil.parse(rkLimitDto.getCreateTime()),DateUtils.DATE_FORMAT_MD));
|
}
|
}
|
PageInfo<RkLimitDto> pageInfo = new PageInfo<>(list);
|
return pageInfo;
|
}
|
|
public Result quotaRestore(String userId){
|
PayRequestInfo info=new PayRequestInfo();
|
info.setCreateUserId(userId);
|
info.setPayType(PayEnum.额度恢复.getValue());
|
info.setStatus(PayEnum.待审核.getValue());
|
List<PayRequestInfo> select = payRequestMapper.select(info);
|
if(CollUtil.isNotEmpty(select)){
|
return Result.error(-1,"正在审核中,不能重复恢复");
|
}
|
|
Result result=new Result();
|
PayRequestInfo payRequestInfo=new PayRequestInfo();
|
payRequestInfo.setCreateUserId(userId);
|
AccountInfo accountInfo1 = accountService.findByUserId(userId);
|
if(accountInfo1!=null){
|
if(Convert.toBigDecimal(accountInfo1.getFixedLimit(),Constants.MONEY_INIT).compareTo(BigDecimal.ZERO)==0){
|
return Result.error(-1,"未设置固定额度");
|
}else if(Convert.toBigDecimal(accountInfo1.getOverdraftLimit(),Constants.MONEY_INIT).compareTo(Convert.toBigDecimal(accountInfo1.getFixedLimit(),Constants.MONEY_INIT))>=0){
|
return Result.error(-1,"额度已充足");
|
}
|
payRequestInfo.setMoney(Convert.toStr(NumberUtil.sub(Convert.toBigDecimal(accountInfo1.getFixedLimit()),Convert.toBigDecimal(accountInfo1.getOverdraftLimit()))));
|
}else{
|
return Result.error(-1,"账户不存在");
|
}
|
payRequestInfo.setPayType(PayEnum.额度恢复.getValue());
|
add(payRequestInfo);
|
return result;
|
}
|
|
/**
|
* 审核
|
* @param updateUserId 审核人id
|
* @param payOrderId 流水号
|
* @param reason 不通过原因
|
*/
|
public void audit(String updateUserId,String payOrderId,String reason,String payType,String auditUserId,String money,String auditUserType){
|
String now = DateUtil.now();
|
PayRequestInfo payRequestInfo=new PayRequestInfo();
|
payRequestInfo.setPayOrderId(payOrderId);
|
payRequestInfo.setExamineTime(now);
|
payRequestInfo.setUpdateTime(now);
|
payRequestInfo.setUpdateUserId(updateUserId);
|
|
//驳回
|
if(StrUtil.isNotBlank(reason)){
|
payRequestInfo.setStatus(PayEnum.审核不通过.getValue());
|
payRequestInfo.setUnpassReason(reason);
|
}else {
|
//同意
|
payRequestInfo.setStatus(PayEnum.已审核完成.getValue());
|
|
//资金操作
|
if(PayEnum.额度申请.getValue().equals(payType)){
|
accountService.increaseOverdraftLimit(auditUserId,Convert.toBigDecimal(money,BigDecimal.ZERO),payOrderId);
|
}else if(PayEnum.额度恢复.getValue().equals(payType)){
|
accountService.restoreFix(auditUserId,payOrderId,auditUserType);
|
}
|
}
|
payRequestMapper.updateByPrimaryKeySelective(payRequestInfo);
|
}
|
|
public Map<String,Object> queryStorageMoneyApi(PayStorageModel model){
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
model.setPartnerIds(partnerIds);
|
PageHelper.startPage(model.getPage(),model.getLimit());
|
List<PayStorageModel> modelList = orderStorageInfoMapper.queryStorageMoneyApi(model);
|
PageInfo<PayStorageModel> pageInfo=new PageInfo<>(modelList);
|
Map<String,Object> remap = new HashMap<>();
|
|
//今日支出 日均支出 总支出
|
PayStorageModel todayModel = new PayStorageModel();
|
todayModel.setStartTime(DateUtil.today()+" 00:00:00");
|
todayModel.setEndTime(DateUtil.today()+" 23:59:59");
|
todayModel.setPartnerIds(partnerIds);
|
String today = orderStorageInfoMapper.queryStorageMoneyToday(todayModel);
|
|
PayStorageModel todayModel1 = new PayStorageModel();
|
todayModel1.setPartnerIds(partnerIds);
|
String totalPay = orderStorageInfoMapper.queryStorageMoneyToday(todayModel1);
|
//计算日均支出
|
String endTimeStr = orderStorageInfoMapper.endStorageTime();
|
int num = 0;
|
BigDecimal avel = new BigDecimal("0");
|
try {
|
if(null!=endTimeStr&&!"".equals(endTimeStr)){
|
num = com.xzx.gc.util.DateUtil.daysBetween(endTimeStr,DateUtil.today());
|
|
}else{
|
num = 0 ;
|
}
|
if(null!=totalPay){
|
if(num!=0){
|
avel = new BigDecimal(totalPay).divide(new BigDecimal(num), 2, RoundingMode.HALF_UP);
|
}else{
|
avel = new BigDecimal(totalPay).divide(new BigDecimal("1"), 2, RoundingMode.HALF_UP);
|
}
|
}else{
|
totalPay = "0";
|
}
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
if(today==null){
|
today="0";
|
}
|
remap.put("todayPay",today);
|
remap.put("totalPay",totalPay);
|
remap.put("averagePay",avel);
|
if(null!=modelList&&modelList.size()>0){
|
for (PayStorageModel resModel:modelList) {
|
if(!org.apache.commons.lang3.StringUtils.isEmpty(resModel.getStorageUserName())){
|
if(com.xzx.gc.util.DateUtil.isBase64(resModel.getStorageUserName())){
|
resModel.setStorageUserName(com.xzx.gc.common.utils.StringUtils.decode(resModel.getStorageUserName()));
|
|
}else{
|
resModel.setStorageUserName(resModel.getStorageUserName());
|
}
|
}
|
}
|
remap.put("code",0);
|
remap.put("data",modelList);
|
remap.put("count",pageInfo.getTotal());
|
remap.put("msg","返回成功");
|
}else{
|
remap.put("code",-1);
|
remap.put("msg","没有记录");
|
}
|
return remap;
|
|
}
|
|
public Map<String,Object> queryStorageMoneyDetailApi(PayStorageModel model) {
|
//查询订单列表
|
String orderIds = orderStorageInfoMapper.queryUserOrderByStorageId(model.getStorageId());
|
String[] orderIdList = orderIds.split(",");
|
List<String> orderList = new ArrayList<>();
|
for (String orderId:orderIdList) {
|
orderList.add(orderId);
|
}
|
PageHelper.startPage(model.getPage(),model.getLimit());
|
List<PayRequestInfoModel> list = orderMapper.queryStorageMoneyDetailApi(orderList);
|
Map<String,Object> remap = new HashMap<>();
|
for (PayRequestInfoModel model1:list) {
|
model1.setMoney(DoubleUtil.roundTwo(model1.getMoney()));
|
model1.setWeight(DoubleUtil.roundThree(model1.getWeight()));
|
}
|
List<Map<String,Object>> totalMap = orderMapper.queryMoneyAndWeightByOrderIds(orderList);
|
BigDecimal totalmoney = new BigDecimal("0");
|
for (Map<String,Object> mw:totalMap) {
|
totalmoney = new BigDecimal(mw.get("money").toString()).add(totalmoney);
|
}
|
remap.put("totalmoney",totalmoney);
|
remap.put("code",0);
|
remap.put("data",list);
|
remap.put("count",orderList.size());
|
return remap;
|
}
|
|
public Map<String,Object> quotaDetail(StorageUserModel model) {
|
PageHelper.startPage(model.getPage(),model.getLimit());
|
List<StorageUserModel> list = orderMapper.quotaDetail(model);
|
PageInfo<StorageUserModel> pageInfo=new PageInfo<>(list);
|
for (StorageUserModel stModel:list) {
|
stModel.setMoney(DoubleUtil.roundTwo(stModel.getMoney()));
|
stModel.setWeight(DoubleUtil.roundThree(stModel.getWeight()));
|
}
|
Map<String,Object> map = new HashMap<>();
|
map.put("data",list);
|
map.put("code",0);
|
map.put("count",pageInfo.getTotal());
|
return map;
|
}
|
|
}
|