用户提现渠道
收款码
This commit is contained in:
parent
4ed575e7bb
commit
149c5ca4c4
|
@ -15,12 +15,12 @@ import com.ruoyi.system.domain.accessory.RlAccessory;
|
||||||
import com.ruoyi.system.domain.agent.RlAgentVO;
|
import com.ruoyi.system.domain.agent.RlAgentVO;
|
||||||
import com.ruoyi.system.domain.device.RlDeviceQuery;
|
import com.ruoyi.system.domain.device.RlDeviceQuery;
|
||||||
import com.ruoyi.system.domain.device.RlDeviceVO;
|
import com.ruoyi.system.domain.device.RlDeviceVO;
|
||||||
import com.ruoyi.system.domain.model.RlModel;
|
|
||||||
import com.ruoyi.system.domain.model.RlModelQuery;
|
import com.ruoyi.system.domain.model.RlModelQuery;
|
||||||
import com.ruoyi.system.domain.order.RlOrderQuery;
|
import com.ruoyi.system.domain.order.RlOrderQuery;
|
||||||
import com.ruoyi.system.domain.order.RlOrderVO;
|
import com.ruoyi.system.domain.order.RlOrderVO;
|
||||||
import com.ruoyi.system.domain.rule.RlFeeRule;
|
import com.ruoyi.system.domain.rule.RlFeeRule;
|
||||||
import com.ruoyi.system.domain.userExt.RlUserExt;
|
import com.ruoyi.system.domain.userExt.RlUserExt;
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.service.*;
|
||||||
import com.ruoyi.system.service.store.RlStoreService;
|
import com.ruoyi.system.service.store.RlStoreService;
|
||||||
import com.ruoyi.system.service.store.StoreAssembler;
|
import com.ruoyi.system.service.store.StoreAssembler;
|
||||||
|
@ -82,6 +82,9 @@ public class AppAgentController extends BaseController
|
||||||
@Autowired
|
@Autowired
|
||||||
private IRlAccessoryService rlAccessoryService;
|
private IRlAccessoryService rlAccessoryService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IRlUserWithdrawService userWithdrawService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 车辆列表
|
* 车辆列表
|
||||||
*/
|
*/
|
||||||
|
@ -264,4 +267,29 @@ public class AppAgentController extends BaseController
|
||||||
return success(list);
|
return success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据token获取提现渠道的列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/getUserWithdrawChannelList")
|
||||||
|
public AjaxResult getUserWithdrawChannelList()
|
||||||
|
{
|
||||||
|
logger.info("根据token获取提现渠道列表:【userId="+getUserId()+"】");
|
||||||
|
return AjaxResult.success(userWithdrawService.selectRlUserWithdrawListByUserId(getUserId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传收款码
|
||||||
|
*/
|
||||||
|
@Log(title = "上传收款码", businessType = BusinessType.UPLOADQRCODE)
|
||||||
|
@PostMapping("/uploadPaymentCode")
|
||||||
|
public AjaxResult edit(String collectionCode,Long userWithdrawChannelId)
|
||||||
|
{
|
||||||
|
logger.info("上传收款码:【collectionCode="+collectionCode+",用户提现渠道id[userWithdrawChannelId]="+userWithdrawChannelId+"】");
|
||||||
|
RlUserWithdraw userWithdraw = new RlUserWithdraw();
|
||||||
|
userWithdraw.setChannelId(userWithdrawChannelId);
|
||||||
|
userWithdraw.setCollectionCode(collectionCode);
|
||||||
|
int i = userWithdrawService.updateRlUserWithdraw(userWithdraw);
|
||||||
|
return toAjax(i);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,31 +175,31 @@ public class AppAdminController extends BaseController
|
||||||
return success(devices);
|
return success(devices);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 上传收款码
|
// * 上传收款码
|
||||||
* type:1-微信收款码,2-支付宝收款码
|
// * type:1-微信收款码,2-支付宝收款码
|
||||||
*/
|
// */
|
||||||
@Log(title = "上传收款码", businessType = BusinessType.UPDATE)
|
// @Log(title = "上传收款码", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping("/uploadPaymentCode")
|
// @PostMapping("/uploadPaymentCode")
|
||||||
public AjaxResult uploadPaymentCode(String collectionCode,String type)
|
// public AjaxResult uploadPaymentCode(String collectionCode,String type)
|
||||||
{
|
// {
|
||||||
log.info("【上传收款码】请求参数:collectionCode={}", collectionCode);
|
// log.info("【上传收款码】请求参数:collectionCode={}", collectionCode);
|
||||||
if(collectionCode == null || collectionCode.equals("")){
|
// if(collectionCode == null || collectionCode.equals("")){
|
||||||
return AjaxResult.warn("收款码不能为空");
|
// return AjaxResult.warn("收款码不能为空");
|
||||||
}
|
// }
|
||||||
if(type == null || type.equals("")){
|
// if(type == null || type.equals("")){
|
||||||
return AjaxResult.warn("收款码类型不能为空");
|
// return AjaxResult.warn("收款码类型不能为空");
|
||||||
}
|
// }
|
||||||
RlUserExt userExt = new RlUserExt();
|
// RlUserExt userExt = new RlUserExt();
|
||||||
userExt.setUserId(getUserId());
|
// userExt.setUserId(getUserId());
|
||||||
if(type.equals("1")){
|
// if(type.equals("1")){
|
||||||
userExt.setWxCollectionCode(collectionCode);
|
// userExt.setWxCollectionCode(collectionCode);
|
||||||
}else{
|
// }else{
|
||||||
userExt.setAliCollectionCode(collectionCode);
|
// userExt.setAliCollectionCode(collectionCode);
|
||||||
}
|
// }
|
||||||
int result = rlUserExtService.updateRlUserExt(userExt);
|
// int result = rlUserExtService.updateRlUserExt(userExt);
|
||||||
return toAjax(result);
|
// return toAjax(result);
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -154,8 +154,6 @@ public class RlUserController extends BaseController
|
||||||
userExt.setDividendProportion(user.getDividendProportion().divide(BigDecimal.valueOf(100)));
|
userExt.setDividendProportion(user.getDividendProportion().divide(BigDecimal.valueOf(100)));
|
||||||
userExt.setCooperationTime(user.getCooperationTime());
|
userExt.setCooperationTime(user.getCooperationTime());
|
||||||
userExt.setDividendStatus(user.getDividendStatus());
|
userExt.setDividendStatus(user.getDividendStatus());
|
||||||
userExt.setHandlingChargeType(user.getHandlingChargeType());
|
|
||||||
userExt.setWithdrawHandlingCharge(user.getWithdrawHandlingCharge());
|
|
||||||
RlAgentVO agentVO = agentService.selectRlAgentByCityId(user.getCityId());
|
RlAgentVO agentVO = agentService.selectRlAgentByCityId(user.getCityId());
|
||||||
userExt.setAgentId(agentVO.getAgentId());
|
userExt.setAgentId(agentVO.getAgentId());
|
||||||
int i1 = userExtService.insertRlUserExt(userExt);
|
int i1 = userExtService.insertRlUserExt(userExt);
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
package com.ruoyi.web.controller.rl;
|
||||||
|
|
||||||
|
import com.ruoyi.common.annotation.Log;
|
||||||
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
|
import com.ruoyi.system.service.IRlUserWithdrawService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户提现渠道Controller
|
||||||
|
*
|
||||||
|
* @author qzz
|
||||||
|
* @date 2024-10-21
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/system/userWithdraw")
|
||||||
|
public class RlUserWithdrawController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IRlUserWithdrawService rlUserWithdrawService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<RlUserWithdraw> list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出用户提现渠道列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:export')")
|
||||||
|
@Log(title = "用户提现渠道", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(HttpServletResponse response, RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
List<RlUserWithdraw> list = rlUserWithdrawService.selectRlUserWithdrawList(rlUserWithdraw);
|
||||||
|
ExcelUtil<RlUserWithdraw> util = new ExcelUtil<RlUserWithdraw>(RlUserWithdraw.class);
|
||||||
|
util.exportExcel(response, list, "用户提现渠道数据");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户提现渠道详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:query')")
|
||||||
|
@GetMapping(value = "/{userChannelId}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("userChannelId") Long userChannelId)
|
||||||
|
{
|
||||||
|
return success(rlUserWithdrawService.selectRlUserWithdrawByUserChannelId(userChannelId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户提现渠道
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:add')")
|
||||||
|
@Log(title = "用户提现渠道", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
return toAjax(rlUserWithdrawService.insertRlUserWithdraw(rlUserWithdraw));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户提现渠道
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:edit')")
|
||||||
|
@Log(title = "用户提现渠道", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
return toAjax(rlUserWithdrawService.updateRlUserWithdraw(rlUserWithdraw));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户提现渠道
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('system:userWithdraw:remove')")
|
||||||
|
@Log(title = "用户提现渠道", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{userChannelIds}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] userChannelIds)
|
||||||
|
{
|
||||||
|
return toAjax(rlUserWithdrawService.deleteRlUserWithdrawByUserChannelIds(userChannelIds));
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ public class RlUserVO extends RlUser{
|
||||||
private BigDecimal totalWithdrawAmount = new BigDecimal("0.00");
|
private BigDecimal totalWithdrawAmount = new BigDecimal("0.00");
|
||||||
|
|
||||||
/** 余额 */
|
/** 余额 */
|
||||||
private String balance;
|
private BigDecimal balance;
|
||||||
|
|
||||||
/** 店铺名称 */
|
/** 店铺名称 */
|
||||||
private String storeName;
|
private String storeName;
|
||||||
|
@ -31,4 +31,7 @@ public class RlUserVO extends RlUser{
|
||||||
|
|
||||||
/** 分账状态:0-禁用;1-启动 */
|
/** 分账状态:0-禁用;1-启动 */
|
||||||
private Boolean dividendStatus;
|
private Boolean dividendStatus;
|
||||||
|
|
||||||
|
/** 可提现金额 */
|
||||||
|
private BigDecimal withdrawableAmount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,5 +139,9 @@ public enum BusinessType
|
||||||
/**
|
/**
|
||||||
* 保存店铺
|
* 保存店铺
|
||||||
*/
|
*/
|
||||||
SAVESTORE
|
SAVESTORE,
|
||||||
|
/**
|
||||||
|
* 上传收款码
|
||||||
|
*/
|
||||||
|
UPLOADQRCODE,
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,10 @@ import com.ruoyi.common.utils.http.HttpUtils;
|
||||||
import com.ruoyi.common.utils.wx.AccessTokenUtil;
|
import com.ruoyi.common.utils.wx.AccessTokenUtil;
|
||||||
import com.ruoyi.common.utils.wx.vo.WeChatMiniAuthorizeVo;
|
import com.ruoyi.common.utils.wx.vo.WeChatMiniAuthorizeVo;
|
||||||
import com.ruoyi.common.core.domain.entity.RlUser;
|
import com.ruoyi.common.core.domain.entity.RlUser;
|
||||||
|
import com.ruoyi.system.domain.channelWithdraw.ChannelWithdrawVO;
|
||||||
import com.ruoyi.system.domain.userExt.RlUserExt;
|
import com.ruoyi.system.domain.userExt.RlUserExt;
|
||||||
import com.ruoyi.system.service.IRlUserExtService;
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
import com.ruoyi.system.service.IRlUserService;
|
import com.ruoyi.system.service.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -43,9 +44,10 @@ import com.ruoyi.common.utils.ip.IpUtils;
|
||||||
import com.ruoyi.framework.manager.AsyncManager;
|
import com.ruoyi.framework.manager.AsyncManager;
|
||||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
import com.ruoyi.framework.manager.factory.AsyncFactory;
|
||||||
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
|
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
|
||||||
import com.ruoyi.system.service.ISysConfigService;
|
|
||||||
import com.ruoyi.system.service.IRlUserService;
|
import com.ruoyi.system.service.IRlUserService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录校验方法
|
* 登录校验方法
|
||||||
*
|
*
|
||||||
|
@ -73,6 +75,12 @@ public class SysLoginService
|
||||||
@Autowired
|
@Autowired
|
||||||
private IRlUserExtService rlUserExtService;
|
private IRlUserExtService rlUserExtService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RlChannelWithdrawService channelWithdrawService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IRlUserWithdrawService userWithdrawService;
|
||||||
|
|
||||||
@Value("${wx.appid1}")
|
@Value("${wx.appid1}")
|
||||||
private String appId1;
|
private String appId1;
|
||||||
|
|
||||||
|
@ -343,9 +351,32 @@ public class SysLoginService
|
||||||
RlUserExt rlUserExt = new RlUserExt();
|
RlUserExt rlUserExt = new RlUserExt();
|
||||||
rlUserExt.setUserId(asUser.getUserId());
|
rlUserExt.setUserId(asUser.getUserId());
|
||||||
rlUserExt.setExtId(asUser.getUserId());
|
rlUserExt.setExtId(asUser.getUserId());
|
||||||
|
/** 将系统的全局配置复制到用户提现渠道表中 新建用户提现渠道 */
|
||||||
|
userWithdrawalChannel(rlUserExt);
|
||||||
return rlUserExtService.insertRlUserExt(rlUserExt);
|
return rlUserExtService.insertRlUserExt(rlUserExt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void userWithdrawalChannel(RlUserExt rlUserExt) {
|
||||||
|
List<ChannelWithdrawVO> channelWithdrawVOS = channelWithdrawService.selectAllChannelWithdrawList();
|
||||||
|
for (ChannelWithdrawVO channelWithdrawVO : channelWithdrawVOS) {
|
||||||
|
RlUserWithdraw rlUserWithdraw = new RlUserWithdraw();
|
||||||
|
rlUserWithdraw.setHandlingChargeType(channelWithdrawVO.getHandlingChargeType());
|
||||||
|
rlUserWithdraw.setWithdrawHandlingCharge(channelWithdrawVO.getWithdrawHandlingCharge());
|
||||||
|
rlUserWithdraw.setUserId(rlUserExt.getUserId());
|
||||||
|
rlUserWithdraw.setChannelId(channelWithdrawVO.getChannelId());
|
||||||
|
rlUserWithdraw.setIsOpen("1");
|
||||||
|
rlUserWithdraw.setMaxAmount(channelWithdrawVO.getMaxAmount());
|
||||||
|
rlUserWithdraw.setMinAmount(channelWithdrawVO.getMinAmount());
|
||||||
|
rlUserWithdraw.setName(channelWithdrawVO.getName());
|
||||||
|
rlUserWithdraw.setPicture(channelWithdrawVO.getPicture());
|
||||||
|
rlUserWithdraw.setIsNeedCode(channelWithdrawVO.getIsNeedCode());
|
||||||
|
int i = userWithdrawService.insertRlUserWithdraw(rlUserWithdraw);
|
||||||
|
if(i>0){
|
||||||
|
log.info("【微信登录/wxlogin】用户【{}】创建用户提现渠道【{}】", rlUserExt.getUserId(), JSON.toJSON(rlUserWithdraw));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录app登录信息
|
* 记录app登录信息
|
||||||
*
|
*
|
||||||
|
|
|
@ -53,4 +53,8 @@ public class ChannelWithdraw extends BaseEntity
|
||||||
@Min(value = 0, message = "单笔最高提现金额不能小于0")
|
@Min(value = 0, message = "单笔最高提现金额不能小于0")
|
||||||
private BigDecimal maxAmount;
|
private BigDecimal maxAmount;
|
||||||
|
|
||||||
|
/** 是否需要上传收款码:0-不需要;1-需要 */
|
||||||
|
@Excel(name = "是否需要上传收款码")
|
||||||
|
private String isNeedCode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,9 +52,9 @@ public class RlUserExt extends BaseEntity
|
||||||
/** 代理商id */
|
/** 代理商id */
|
||||||
private Long agentId;
|
private Long agentId;
|
||||||
|
|
||||||
/** 提现手续费类型:1-按比例,2-按每笔 */
|
// /** 提现手续费类型:1-按比例,2-按每笔 */
|
||||||
private String handlingChargeType;
|
// private String handlingChargeType;
|
||||||
|
|
||||||
/** 服务费 */
|
// /** 服务费 */
|
||||||
private BigDecimal withdrawHandlingCharge;
|
// private BigDecimal withdrawHandlingCharge;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
package com.ruoyi.system.domain.userWithdraw;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户提现渠道对象 rl_user_withdraw
|
||||||
|
*
|
||||||
|
* @author qzz
|
||||||
|
* @date 2024-10-21
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RlUserWithdraw extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** id */
|
||||||
|
private Long userChannelId;
|
||||||
|
|
||||||
|
/** 用户 */
|
||||||
|
@Excel(name = "用户")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/** 提现渠道ID */
|
||||||
|
@Excel(name = "提现渠道ID")
|
||||||
|
private Long channelId;
|
||||||
|
|
||||||
|
/** 渠道名称 */
|
||||||
|
@Excel(name = "渠道名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/** 提现手续费类型:1-按比例,2-按每笔 */
|
||||||
|
@Excel(name = "提现手续费类型:1-按比例,2-按每笔")
|
||||||
|
private String handlingChargeType;
|
||||||
|
|
||||||
|
/** 提现手续费 */
|
||||||
|
@Excel(name = "提现手续费")
|
||||||
|
private BigDecimal withdrawHandlingCharge;
|
||||||
|
|
||||||
|
/** 单笔最低提现金额 */
|
||||||
|
@Excel(name = "单笔最低提现金额")
|
||||||
|
private BigDecimal minAmount;
|
||||||
|
|
||||||
|
/** 单笔最高提现金额 */
|
||||||
|
@Excel(name = "单笔最高提现金额")
|
||||||
|
private BigDecimal maxAmount;
|
||||||
|
|
||||||
|
/** 是否开通 */
|
||||||
|
@Excel(name = "是否开通")
|
||||||
|
private String isOpen;
|
||||||
|
|
||||||
|
/** 渠道图片 */
|
||||||
|
@Excel(name = "渠道图片")
|
||||||
|
private String picture;
|
||||||
|
|
||||||
|
/** 收款码 */
|
||||||
|
@Excel(name = "收款码")
|
||||||
|
private String collectionCode;
|
||||||
|
|
||||||
|
/** 是否需要上传收款码:0-不需要;1-需要 */
|
||||||
|
@Excel(name = "是否需要上传收款码")
|
||||||
|
private String isNeedCode;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.ruoyi.system.domain.userWithdraw;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RlUserWithdrawQuery extends RlUserWithdraw{
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
package com.ruoyi.system.domain.userWithdraw;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class RlUserWithdrawVO extends RlUserWithdraw{
|
||||||
|
|
||||||
|
}
|
|
@ -62,6 +62,10 @@ public class RlWithdraw extends BaseEntity
|
||||||
@Excel(name = "提现渠道id")
|
@Excel(name = "提现渠道id")
|
||||||
private Long withdrawChannelId;
|
private Long withdrawChannelId;
|
||||||
|
|
||||||
|
/** 用户提现渠道id */
|
||||||
|
@Excel(name = "用户提现渠道id")
|
||||||
|
private Long userWithdrawChannelId;
|
||||||
|
|
||||||
/** 提现手续费类型:1-按比例,2-按每笔 */
|
/** 提现手续费类型:1-按比例,2-按每笔 */
|
||||||
private String handlingChargeType;
|
private String handlingChargeType;
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,8 @@ public interface RlChannelWithdrawMapper
|
||||||
*/
|
*/
|
||||||
public List<ChannelWithdrawVO> selectChannelWithdrawList(@Param("query") ChannelWithdrawQuery query);
|
public List<ChannelWithdrawVO> selectChannelWithdrawList(@Param("query") ChannelWithdrawQuery query);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增提现渠道
|
* 新增提现渠道
|
||||||
*
|
*
|
||||||
|
@ -62,4 +64,11 @@ public interface RlChannelWithdrawMapper
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteChannelWithdrawByChannelIds(Long[] channelIds);
|
public int deleteChannelWithdrawByChannelIds(Long[] channelIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有提现渠道列表
|
||||||
|
*
|
||||||
|
* @return 提现渠道
|
||||||
|
*/
|
||||||
|
List<ChannelWithdrawVO> selectAllChannelWithdrawList();
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,4 +199,9 @@ public interface RlUserMapper
|
||||||
* 更新用户余额
|
* 更新用户余额
|
||||||
*/
|
*/
|
||||||
int changeBalance(@Param("changeAmount")BigDecimal changeAmount,@Param("userId")Long userId);
|
int changeBalance(@Param("changeAmount")BigDecimal changeAmount,@Param("userId")Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取今日订单金额
|
||||||
|
*/
|
||||||
|
BigDecimal selectTodayOrderAmount(Long userId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.ruoyi.system.mapper;
|
||||||
|
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户提现渠道Mapper接口
|
||||||
|
*
|
||||||
|
* @author qzz
|
||||||
|
* @date 2024-10-21
|
||||||
|
*/
|
||||||
|
public interface RlUserWithdrawMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 用户提现渠道
|
||||||
|
*/
|
||||||
|
public RlUserWithdraw selectRlUserWithdrawByUserChannelId(Long userChannelId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 用户提现渠道集合
|
||||||
|
*/
|
||||||
|
public List<RlUserWithdraw> selectRlUserWithdrawList(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertRlUserWithdraw(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateRlUserWithdraw(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteRlUserWithdrawByUserChannelId(Long userChannelId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelIds 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteRlUserWithdrawByUserChannelIds(Long[] userChannelIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据userId查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 用户提现渠道集合
|
||||||
|
*/
|
||||||
|
List<RlUserWithdraw> selectRlUserWithdrawListByUserId(Long userId);
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.ruoyi.system.service;
|
||||||
|
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户提现渠道Service接口
|
||||||
|
*
|
||||||
|
* @author qzz
|
||||||
|
* @date 2024-10-21
|
||||||
|
*/
|
||||||
|
public interface IRlUserWithdrawService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 用户提现渠道
|
||||||
|
*/
|
||||||
|
public RlUserWithdraw selectRlUserWithdrawByUserChannelId(Long userChannelId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 用户提现渠道集合
|
||||||
|
*/
|
||||||
|
public List<RlUserWithdraw> selectRlUserWithdrawList(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据userId查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 用户提现渠道集合
|
||||||
|
*/
|
||||||
|
public List<RlUserWithdraw> selectRlUserWithdrawListByUserId(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertRlUserWithdraw(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateRlUserWithdraw(RlUserWithdraw rlUserWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelIds 需要删除的用户提现渠道主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteRlUserWithdrawByUserChannelIds(Long[] userChannelIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户提现渠道信息
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteRlUserWithdrawByUserChannelId(Long userChannelId);
|
||||||
|
}
|
|
@ -31,6 +31,13 @@ public interface RlChannelWithdrawService
|
||||||
*/
|
*/
|
||||||
public List<ChannelWithdrawVO> selectChannelWithdrawList(ChannelWithdrawQuery channelWithdraw);
|
public List<ChannelWithdrawVO> selectChannelWithdrawList(ChannelWithdrawQuery channelWithdraw);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有提现渠道列表
|
||||||
|
*
|
||||||
|
* @return 提现渠道集合
|
||||||
|
*/
|
||||||
|
public List<ChannelWithdrawVO> selectAllChannelWithdrawList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增提现渠道
|
* 新增提现渠道
|
||||||
*
|
*
|
||||||
|
|
|
@ -49,6 +49,16 @@ public class RlChannelWithdrawServiceImpl implements RlChannelWithdrawService
|
||||||
return rlChannelWithdrawMapper.selectChannelWithdrawList(channelWithdraw);
|
return rlChannelWithdrawMapper.selectChannelWithdrawList(channelWithdraw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有提现渠道列表
|
||||||
|
*
|
||||||
|
* @return 提现渠道
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<ChannelWithdrawVO> selectAllChannelWithdrawList() {
|
||||||
|
return rlChannelWithdrawMapper.selectAllChannelWithdrawList();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增提现渠道
|
* 新增提现渠道
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,6 +25,7 @@ import com.ruoyi.system.domain.channel.ChannelVO;
|
||||||
import com.ruoyi.system.domain.channelWithdraw.ChannelWithdrawVO;
|
import com.ruoyi.system.domain.channelWithdraw.ChannelWithdrawVO;
|
||||||
import com.ruoyi.system.domain.query.AuthenticationQuery;
|
import com.ruoyi.system.domain.query.AuthenticationQuery;
|
||||||
import com.ruoyi.system.domain.userExt.RlUserExt;
|
import com.ruoyi.system.domain.userExt.RlUserExt;
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
import com.ruoyi.system.domain.vo.RlUserQuery;
|
import com.ruoyi.system.domain.vo.RlUserQuery;
|
||||||
import com.ruoyi.system.domain.withdraw.RlWithdraw;
|
import com.ruoyi.system.domain.withdraw.RlWithdraw;
|
||||||
import com.ruoyi.system.domain.withdraw.RlWithdrawQuery;
|
import com.ruoyi.system.domain.withdraw.RlWithdrawQuery;
|
||||||
|
@ -60,15 +61,6 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
@Resource
|
@Resource
|
||||||
private RlUserMapper rlUserMapper;
|
private RlUserMapper rlUserMapper;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IRlUserExtService userExtService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IRlAgentService agentService;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RlChannelService channelService;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected Validator validator;
|
protected Validator validator;
|
||||||
|
|
||||||
|
@ -99,6 +91,9 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
@Autowired
|
@Autowired
|
||||||
private IRlChangeBalanceService changeBalanceService;
|
private IRlChangeBalanceService changeBalanceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IRlUserWithdrawService userWithdrawService;
|
||||||
|
|
||||||
@Value("${aliyun.accessKeyId}")
|
@Value("${aliyun.accessKeyId}")
|
||||||
private String accessKeyId;
|
private String accessKeyId;
|
||||||
|
|
||||||
|
@ -219,6 +214,10 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
totalWithdrawAmount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
totalWithdrawAmount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
|
||||||
}
|
}
|
||||||
users.setTotalWithdrawAmount(totalWithdrawAmount);
|
users.setTotalWithdrawAmount(totalWithdrawAmount);
|
||||||
|
/** 可提现金额 等于余额-今日订单金额 */
|
||||||
|
BigDecimal balance = users.getBalance();
|
||||||
|
BigDecimal todayOrderAmount = rlUserMapper.selectTodayOrderAmount(userId);
|
||||||
|
users.setWithdrawableAmount(balance.subtract(todayOrderAmount));
|
||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -751,11 +750,9 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
String orderNo = IdUtils.getOrderNo("tx");
|
String orderNo = IdUtils.getOrderNo("tx");
|
||||||
/** 1. 获取当前用户*/
|
/** 1. 获取当前用户*/
|
||||||
RlUser user = rlUserMapper.selectUserById(SecurityUtils.getUserId());
|
RlUser user = rlUserMapper.selectUserById(SecurityUtils.getUserId());
|
||||||
RlUserExt rlUserExt = userExtService.selectRlUserExtByUserId(user.getUserId());
|
|
||||||
|
|
||||||
Boolean execute = transactionTemplate.execute(e -> {
|
Boolean execute = transactionTemplate.execute(e -> {
|
||||||
/** 2. 记录提现记录*/
|
/** 2. 记录提现记录*/
|
||||||
withdrawalRecord(withdraw, orderNo, user, rlUserExt);
|
withdrawalRecord(withdraw, orderNo, user);
|
||||||
/** 3. 扣余额,记录账变 */
|
/** 3. 扣余额,记录账变 */
|
||||||
int i = changeBalanceService.generateChanggeBalance(orderNo, null, ServiceConstants.FLOW_TYPE_DISBURSE,
|
int i = changeBalanceService.generateChanggeBalance(orderNo, null, ServiceConstants.FLOW_TYPE_DISBURSE,
|
||||||
ServiceConstants.WITHDRAWAL, withdraw.getAmount(), user.getUserId(), user.getUserName(), user.getPhonenumber());
|
ServiceConstants.WITHDRAWAL, withdraw.getAmount(), user.getUserId(), user.getUserName(), user.getPhonenumber());
|
||||||
|
@ -776,7 +773,7 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
return rlUserMapper.changeBalance(changeAmount, userId);
|
return rlUserMapper.changeBalance(changeAmount, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void withdrawalRecord(RlWithdrawQuery withdraw, String orderNo, RlUser user, RlUserExt rlUserExt) {
|
private void withdrawalRecord(RlWithdrawQuery withdraw, String orderNo, RlUser user) {
|
||||||
RlWithdraw rlWithdraw = new RlWithdraw();
|
RlWithdraw rlWithdraw = new RlWithdraw();
|
||||||
rlWithdraw.setWithdrawNo(orderNo);
|
rlWithdraw.setWithdrawNo(orderNo);
|
||||||
rlWithdraw.setCreateTime(DateUtils.getNowDate());
|
rlWithdraw.setCreateTime(DateUtils.getNowDate());
|
||||||
|
@ -798,16 +795,17 @@ public class RlUserServiceImpl implements IRlUserService{
|
||||||
rlWithdraw.setCost(cost);
|
rlWithdraw.setCost(cost);
|
||||||
rlWithdraw.setWithdrawChannelId(withdraw.getWithdrawChannelId());
|
rlWithdraw.setWithdrawChannelId(withdraw.getWithdrawChannelId());
|
||||||
BigDecimal handlingCharge;
|
BigDecimal handlingCharge;
|
||||||
if(rlUserExt.getHandlingChargeType().equals(ServiceConstants.HANDLING_CHARGE_TYPE_PERCENT)){
|
RlUserWithdraw rlUserWithdraw = userWithdrawService.selectRlUserWithdrawByUserChannelId(withdraw.getUserWithdrawChannelId());
|
||||||
BigDecimal handlingCharge1 = rlUserExt.getWithdrawHandlingCharge();// 5.4
|
if(rlUserWithdraw.getHandlingChargeType().equals(ServiceConstants.HANDLING_CHARGE_TYPE_PERCENT)){
|
||||||
|
BigDecimal handlingCharge1 = rlUserWithdraw.getWithdrawHandlingCharge();// 5.4
|
||||||
BigDecimal bigDecimal = handlingCharge1.divide(new BigDecimal(100), 6, BigDecimal.ROUND_HALF_UP);// 0.0054
|
BigDecimal bigDecimal = handlingCharge1.divide(new BigDecimal(100), 6, BigDecimal.ROUND_HALF_UP);// 0.0054
|
||||||
handlingCharge = bigDecimal.multiply(withdraw.getAmount()).setScale(2, RoundingMode.HALF_UP);// 0.0054 * 1000 = 0.54
|
handlingCharge = bigDecimal.multiply(withdraw.getAmount()).setScale(2, RoundingMode.HALF_UP);// 0.0054 * 1000 = 0.54
|
||||||
}else{
|
}else{
|
||||||
handlingCharge = rlUserExt.getWithdrawHandlingCharge();
|
handlingCharge = rlUserWithdraw.getWithdrawHandlingCharge();
|
||||||
}
|
}
|
||||||
rlWithdraw.setHandlingCharge(handlingCharge);
|
rlWithdraw.setHandlingCharge(handlingCharge);
|
||||||
rlWithdraw.setHandlingChargeType(rlUserExt.getHandlingChargeType());
|
rlWithdraw.setHandlingChargeType(rlUserWithdraw.getHandlingChargeType());
|
||||||
rlWithdraw.setWithdrawHandlingCharge(rlUserExt.getWithdrawHandlingCharge());
|
rlWithdraw.setWithdrawHandlingCharge(rlUserWithdraw.getWithdrawHandlingCharge());
|
||||||
int i = rlWithdrawService.insertRlWithdraw(rlWithdraw);
|
int i = rlWithdrawService.insertRlWithdraw(rlWithdraw);
|
||||||
if(i == 0){
|
if(i == 0){
|
||||||
throw new ServiceException("新增记录提现记录失败");
|
throw new ServiceException("新增记录提现记录失败");
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
package com.ruoyi.system.service.impl;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import com.ruoyi.system.domain.userWithdraw.RlUserWithdraw;
|
||||||
|
import com.ruoyi.system.mapper.RlUserWithdrawMapper;
|
||||||
|
import com.ruoyi.system.service.IRlUserWithdrawService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户提现渠道Service业务层处理
|
||||||
|
*
|
||||||
|
* @author qzz
|
||||||
|
* @date 2024-10-21
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class RlUserWithdrawServiceImpl implements IRlUserWithdrawService
|
||||||
|
{
|
||||||
|
@Resource
|
||||||
|
private RlUserWithdrawMapper rlUserWithdrawMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 用户提现渠道
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public RlUserWithdraw selectRlUserWithdrawByUserChannelId(Long userChannelId)
|
||||||
|
{
|
||||||
|
return rlUserWithdrawMapper.selectRlUserWithdrawByUserChannelId(userChannelId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 用户提现渠道
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<RlUserWithdraw> selectRlUserWithdrawList(RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
return rlUserWithdrawMapper.selectRlUserWithdrawList(rlUserWithdraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据userId查询用户提现渠道列表
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 用户提现渠道集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<RlUserWithdraw> selectRlUserWithdrawListByUserId(Long userId) {
|
||||||
|
return rlUserWithdrawMapper.selectRlUserWithdrawListByUserId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertRlUserWithdraw(RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
rlUserWithdraw.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return rlUserWithdrawMapper.insertRlUserWithdraw(rlUserWithdraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改用户提现渠道
|
||||||
|
*
|
||||||
|
* @param rlUserWithdraw 用户提现渠道
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateRlUserWithdraw(RlUserWithdraw rlUserWithdraw)
|
||||||
|
{
|
||||||
|
return rlUserWithdrawMapper.updateRlUserWithdraw(rlUserWithdraw);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除用户提现渠道
|
||||||
|
*
|
||||||
|
* @param userChannelIds 需要删除的用户提现渠道主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteRlUserWithdrawByUserChannelIds(Long[] userChannelIds)
|
||||||
|
{
|
||||||
|
return rlUserWithdrawMapper.deleteRlUserWithdrawByUserChannelIds(userChannelIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除用户提现渠道信息
|
||||||
|
*
|
||||||
|
* @param userChannelId 用户提现渠道主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteRlUserWithdrawByUserChannelId(Long userChannelId)
|
||||||
|
{
|
||||||
|
return rlUserWithdrawMapper.deleteRlUserWithdrawByUserChannelId(userChannelId);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.system.service.store.impl;
|
package com.ruoyi.system.service.store.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.ruoyi.common.constant.ServiceConstants;
|
import com.ruoyi.common.constant.ServiceConstants;
|
||||||
import com.ruoyi.common.core.domain.entity.RlUser;
|
import com.ruoyi.common.core.domain.entity.RlUser;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
@ -542,7 +543,7 @@ public class StoreServiceImpl implements RlStoreService
|
||||||
List<StoreVo> nearbyStores = allStores.stream()
|
List<StoreVo> nearbyStores = allStores.stream()
|
||||||
.map(store -> {
|
.map(store -> {
|
||||||
List<RlModelVO> list = modelService.selectEModelListByStoreId(store.getStoreId());
|
List<RlModelVO> list = modelService.selectEModelListByStoreId(store.getStoreId());
|
||||||
log.info("店铺【{}】的车型列表:{}", store.getStoreId(), list);
|
log.info("店铺【{}】的车型列表:{}", store.getStoreId(), JSON.toJSON(list));
|
||||||
// 如果 list 为空或为 null,直接返回 null
|
// 如果 list 为空或为 null,直接返回 null
|
||||||
if (list == null || list.isEmpty()) {
|
if (list == null || list.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -19,7 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
scw.cost_rate,
|
scw.cost_rate,
|
||||||
scw.picture,
|
scw.picture,
|
||||||
scw.min_amount,
|
scw.min_amount,
|
||||||
scw.max_amount
|
scw.max_amount,
|
||||||
|
scw.is_need_code
|
||||||
from rl_channel_withdraw scw
|
from rl_channel_withdraw scw
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
@ -42,6 +43,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where channel_id = #{channelId}
|
where channel_id = #{channelId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectAllChannelWithdrawList" resultMap="ChannelWithdrawResult">
|
||||||
|
<include refid="selectChannelWithdrawVo"/> where scw.enabled != 0
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertChannelWithdraw" parameterType="ChannelWithdraw" useGeneratedKeys="true" keyProperty="channelId">
|
<insert id="insertChannelWithdraw" parameterType="ChannelWithdraw" useGeneratedKeys="true" keyProperty="channelId">
|
||||||
insert into rl_channel_withdraw
|
insert into rl_channel_withdraw
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
@ -53,6 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="picture != null">picture,</if>
|
<if test="picture != null">picture,</if>
|
||||||
<if test="minAmount != null">min_amount,</if>
|
<if test="minAmount != null">min_amount,</if>
|
||||||
<if test="maxAmount != null">max_amount,</if>
|
<if test="maxAmount != null">max_amount,</if>
|
||||||
|
<if test="isNeedCode != null">is_need_code,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="name != null and name != ''">#{name},</if>
|
<if test="name != null and name != ''">#{name},</if>
|
||||||
|
@ -63,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="picture != null">#{picture},</if>
|
<if test="picture != null">#{picture},</if>
|
||||||
<if test="minAmount != null">#{minAmount},</if>
|
<if test="minAmount != null">#{minAmount},</if>
|
||||||
<if test="maxAmount != null">#{maxAmount},</if>
|
<if test="maxAmount != null">#{maxAmount},</if>
|
||||||
|
<if test="isNeedCode != null">#{isNeedCode},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -77,6 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="data.picture != null">picture = #{data.picture},</if>
|
<if test="data.picture != null">picture = #{data.picture},</if>
|
||||||
<if test="data.minAmount != null">min_amount = #{data.minAmount},</if>
|
<if test="data.minAmount != null">min_amount = #{data.minAmount},</if>
|
||||||
<if test="data.maxAmount != null">max_amount = #{data.maxAmount},</if>
|
<if test="data.maxAmount != null">max_amount = #{data.maxAmount},</if>
|
||||||
|
<if test="data.isNeedCode != null">is_need_code = #{data.isNeedCode},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where channel_id = #{data.channelId}
|
where channel_id = #{data.channelId}
|
||||||
</update>
|
</update>
|
||||||
|
|
|
@ -201,6 +201,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where user_id = #{userId}
|
where user_id = #{userId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectTodayOrderAmount" resultType="java.math.BigDecimal">
|
||||||
|
SELECT
|
||||||
|
COALESCE(SUM(CASE WHEN type = '1' THEN amount ELSE 0 END), 0) -
|
||||||
|
COALESCE(SUM(CASE WHEN type = '2' THEN amount ELSE 0 END), 0) AS net_amount
|
||||||
|
FROM
|
||||||
|
rl_change_balance
|
||||||
|
WHERE
|
||||||
|
DATE(create_time) = CURDATE()
|
||||||
|
AND owner_id = #{ownerId}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
<insert id="insertUser" parameterType="RlUser" useGeneratedKeys="true" keyProperty="userId">
|
<insert id="insertUser" parameterType="RlUser" useGeneratedKeys="true" keyProperty="userId">
|
||||||
insert into rl_user(
|
insert into rl_user(
|
||||||
<if test="userId != null and userId != 0">user_id,</if>
|
<if test="userId != null and userId != 0">user_id,</if>
|
||||||
|
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.system.mapper.RlUserWithdrawMapper">
|
||||||
|
|
||||||
|
<resultMap type="RlUserWithdrawVO" id="RlUserWithdrawResult" autoMapping="true" />
|
||||||
|
|
||||||
|
<sql id="selectRlUserWithdrawVo">
|
||||||
|
select user_channel_id, user_id, channel_id, name, handling_charge_type, withdraw_handling_charge,
|
||||||
|
min_amount, max_amount, create_time, is_open, picture, collection_code, is_need_code
|
||||||
|
from rl_user_withdraw
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectRlUserWithdrawList" parameterType="RlUserWithdraw" resultMap="RlUserWithdrawResult">
|
||||||
|
<include refid="selectRlUserWithdrawVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="userId != null "> and user_id = #{userId}</if>
|
||||||
|
<if test="channelId != null "> and channel_id = #{channelId}</if>
|
||||||
|
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||||
|
<if test="handlingChargeType != null and handlingChargeType != ''"> and handling_charge_type = #{handlingChargeType}</if>
|
||||||
|
<if test="withdrawHandlingCharge != null "> and withdraw_handling_charge = #{withdrawHandlingCharge}</if>
|
||||||
|
<if test="minAmount != null "> and min_amount = #{minAmount}</if>
|
||||||
|
<if test="maxAmount != null "> and max_amount = #{maxAmount}</if>
|
||||||
|
<if test="isOpen != null and isOpen != ''"> and is_open = #{isOpen}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRlUserWithdrawByUserChannelId" parameterType="Long" resultMap="RlUserWithdrawResult">
|
||||||
|
<include refid="selectRlUserWithdrawVo"/>
|
||||||
|
where user_channel_id = #{userChannelId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRlUserWithdrawListByUserId" parameterType="Long" resultMap="RlUserWithdrawResult">
|
||||||
|
<include refid="selectRlUserWithdrawVo"/>
|
||||||
|
where user_id = #{userId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertRlUserWithdraw" parameterType="RlUserWithdraw">
|
||||||
|
insert into rl_user_withdraw
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="userChannelId != null">user_channel_id,</if>
|
||||||
|
<if test="userId != null">user_id,</if>
|
||||||
|
<if test="channelId != null">channel_id,</if>
|
||||||
|
<if test="name != null and name != ''">name,</if>
|
||||||
|
<if test="handlingChargeType != null">handling_charge_type,</if>
|
||||||
|
<if test="withdrawHandlingCharge != null">withdraw_handling_charge,</if>
|
||||||
|
<if test="minAmount != null">min_amount,</if>
|
||||||
|
<if test="maxAmount != null">max_amount,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="isOpen != null">is_open,</if>
|
||||||
|
<if test="picture != null">picture,</if>
|
||||||
|
<if test="collectionCode != null">collection_code,</if>
|
||||||
|
<if test="isNeedCode != null">is_need_code,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="userChannelId != null">#{userChannelId},</if>
|
||||||
|
<if test="userId != null">#{userId},</if>
|
||||||
|
<if test="channelId != null">#{channelId},</if>
|
||||||
|
<if test="name != null and name != ''">#{name},</if>
|
||||||
|
<if test="handlingChargeType != null">#{handlingChargeType},</if>
|
||||||
|
<if test="withdrawHandlingCharge != null">#{withdrawHandlingCharge},</if>
|
||||||
|
<if test="minAmount != null">#{minAmount},</if>
|
||||||
|
<if test="maxAmount != null">#{maxAmount},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="isOpen != null">#{isOpen},</if>
|
||||||
|
<if test="picture != null">#{picture},</if>
|
||||||
|
<if test="collectionCode != null">#{collectionCode},</if>
|
||||||
|
<if test="isNeedCode != null">#{isNeedCode},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateRlUserWithdraw" parameterType="RlUserWithdraw">
|
||||||
|
update rl_user_withdraw
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="userId != null">user_id = #{userId},</if>
|
||||||
|
<if test="channelId != null">channel_id = #{channelId},</if>
|
||||||
|
<if test="name != null and name != ''">name = #{name},</if>
|
||||||
|
<if test="handlingChargeType != null">handling_charge_type = #{handlingChargeType},</if>
|
||||||
|
<if test="withdrawHandlingCharge != null">withdraw_handling_charge = #{withdrawHandlingCharge},</if>
|
||||||
|
<if test="minAmount != null">min_amount = #{minAmount},</if>
|
||||||
|
<if test="maxAmount != null">max_amount = #{maxAmount},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="isOpen != null">is_open = #{isOpen},</if>
|
||||||
|
<if test="picture != null">picture = #{picture},</if>
|
||||||
|
<if test="collectionCode != null">collection_code = #{collectionCode},</if>
|
||||||
|
<if test="isNeedCode != null">is_need_code = #{isNeedCode},</if>
|
||||||
|
</trim>
|
||||||
|
where user_channel_id = #{userChannelId}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteRlUserWithdrawByUserChannelId" parameterType="Long">
|
||||||
|
delete from rl_user_withdraw where user_channel_id = #{userChannelId}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteRlUserWithdrawByUserChannelIds" parameterType="String">
|
||||||
|
delete from rl_user_withdraw where user_channel_id in
|
||||||
|
<foreach item="userChannelId" collection="array" open="(" separator="," close=")">
|
||||||
|
#{userChannelId}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user