1 files copied
19 files added
1 files renamed
6 files deleted
11 files modified
| | |
| | | .web(WebApplicationType.SERVLET) |
| | | .run(args); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.xcong.excoin.common.controller.BaseController; |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; |
| | | import com.xcong.excoin.modules.member.service.IMemberService; |
| | | import com.xcong.excoin.system.entity.User; |
| | | |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Map; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | /** |
| | |
| | | public FebsResponse getList(MemberEntity member, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(memberService.findMemberListInPage(member, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 实名认证---确认 |
| | | * @return |
| | | */ |
| | | @PostMapping("memberDetailConfirm") |
| | | @ControllerEndpoint(operation = "实名认证---确认", exceptionMessage = "认证失败") |
| | | public FebsResponse memberDetailConfirm(@Valid MemberDetailConfirmDto memberDetailConfirmDto) { |
| | | return memberService.memberDetailConfirm(memberDetailConfirmDto); |
| | | } |
| | | |
| | | /** |
| | |
| | | public FebsResponse memberChargeUsdtCancel(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return memberService.memberChargeUsdtCancel(id); |
| | | } |
| | | |
| | | /** |
| | | * 会员USDT提现---列表 |
| | | */ |
| | | @GetMapping("memberExtractUsdt") |
| | | public FebsResponse memberExtractUsdt(MemberQuickBuySaleEntity memberQuickBuySaleEntity, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(memberService.findmemberQuickSaleListInPage(memberQuickBuySaleEntity, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 会员USDT提现---确认 |
| | | * @return |
| | | */ |
| | | @GetMapping("memberExtractUsdtConfirm/{id}") |
| | | @ControllerEndpoint(operation = "会员USDT提现---确认", exceptionMessage = "划转失败") |
| | | public FebsResponse memberExtractUsdtConfirm(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return memberService.memberExtractUsdtConfirm(id); |
| | | } |
| | | |
| | | /** |
| | | * 会员USDT提现---取消 |
| | | * @return |
| | | */ |
| | | @GetMapping("memberExtractUsdtCancel/{id}") |
| | | @ControllerEndpoint(operation = "会员USDT提现---取消", exceptionMessage = "取消失败") |
| | | public FebsResponse memberExtractUsdtCancel(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return memberService.memberExtractUsdtCancel(id); |
| | | } |
| | | |
| | | /** |
| | | * 充币记录---列表 |
| | | */ |
| | | @GetMapping("memberApplyCoin") |
| | | public FebsResponse memberApplyCoin(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(memberService.findMemberApplyCoinListInPage(memberCoinChargeEntity, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 提币记录---列表 |
| | | */ |
| | | @GetMapping("memberWithdrawCoin") |
| | | public FebsResponse memberWithdrawCoin(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) { |
| | | String isInside = memberCoinWithdrawEntity.getIsInside(); |
| | | if(!"".equals(isInside) && isInside != null) { |
| | | if("1".equals(isInside)) { |
| | | memberCoinWithdrawEntity.setIsInside("Y"); |
| | | }else { |
| | | memberCoinWithdrawEntity.setIsInside("N"); |
| | | } |
| | | } |
| | | Map<String, Object> data = getDataTable(memberService.findmemberWithdrawCoinListInPage(memberCoinWithdrawEntity, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 提币记录---确认 |
| | | * @return |
| | | */ |
| | | @GetMapping("memberWithdrawCoinConfirm/{id}") |
| | | @ControllerEndpoint(operation = "提币记录---确认", exceptionMessage = "划转失败") |
| | | public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return memberService.memberWithdrawCoinConfirm(id); |
| | | } |
| | | |
| | | /** |
| | | * 提币记录---取消 |
| | | * @return |
| | | */ |
| | | @GetMapping("memberWithdrawCoinCancel/{id}") |
| | | @ControllerEndpoint(operation = "提币记录---取消", exceptionMessage = "取消失败") |
| | | public FebsResponse memberWithdrawCoinCancel(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return memberService.memberWithdrawCoinCancel(id); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.xcong.excoin.modules.member.controller; |
| | | |
| | | import com.xcong.excoin.common.controller.BaseController; |
| | | import com.xcong.excoin.common.entity.FebsConstant; |
| | | import com.xcong.excoin.common.utils.FebsUtil; |
| | | import com.xcong.excoin.modules.member.service.IMemberService; |
| | | import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; |
| | | |
| | | import lombok.RequiredArgsConstructor; |
| | | |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | |
| | | /** |
| | |
| | | **/ |
| | | @Controller("memberView") |
| | | @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/member") |
| | | public class ViewController { |
| | | |
| | | @RequiredArgsConstructor |
| | | public class ViewController extends BaseController{ |
| | | |
| | | private final IMemberService memberService; |
| | | |
| | | @GetMapping("member") |
| | | @RequiresPermissions("member:view") |
| | | public String member() { |
| | | return FebsUtil.view("modules/member/member"); |
| | | } |
| | | |
| | | /** |
| | | @GetMapping("memberDetail/{id}") |
| | | @RequiresPermissions("member:update") |
| | | public String memberDetail(@PathVariable long id, Model model) { |
| | | MemberAuthenticationVo data = memberService.selectMemberAuthenticationById(id); |
| | | model.addAttribute("member", data); |
| | | return FebsUtil.view("modules/member/memberDetail"); |
| | | } |
| | | |
| | | /** |
| | | * 会员充值USDT记录 |
| | | * @return |
| | | */ |
| | |
| | | return FebsUtil.view("modules/member/chargeUsdt"); |
| | | } |
| | | |
| | | /** |
| | | * 会员USDT提现记录 |
| | | * @return |
| | | */ |
| | | @GetMapping("extractUsdt") |
| | | @RequiresPermissions("extractUsdt:view") |
| | | public String extractUsdt() { |
| | | return FebsUtil.view("modules/member/extractUsdt"); |
| | | } |
| | | |
| | | /** |
| | | * 充币记录 |
| | | * @return |
| | | */ |
| | | @GetMapping("applyCoin") |
| | | @RequiresPermissions("applyCoins:view") |
| | | public String applyCoin() { |
| | | return FebsUtil.view("modules/member/applyCoin"); |
| | | } |
| | | |
| | | /** |
| | | * 提币记录 |
| | | * @return |
| | | */ |
| | | @GetMapping("withdrawCoin") |
| | | @RequiresPermissions("withdrawCoins:view") |
| | | public String withdrawCoin() { |
| | | return FebsUtil.view("modules/member/withdrawCoin"); |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.xcong.excoin.modules.member.dto;
|
| | |
|
| | | import javax.validation.constraints.NotNull;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | public class MemberDetailConfirmDto {
|
| | | |
| | | @NotNull(message = "ID不能为空")
|
| | | private Long id;
|
| | | |
| | | }
|
File was renamed from src/main/java/com/xcong/excoin/modules/authentication/entity/MemberAuthenticationEntity.java |
| | |
| | | package com.xcong.excoin.modules.authentication.entity;
|
| | | package com.xcong.excoin.modules.member.entity;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.entity;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | /**
|
| | | * 会员币地址
|
| | | * @author Administrator
|
| | | *
|
| | | */
|
| | | @Data
|
| | | @TableName("member_coin_address")
|
| | | public class MemberCoinAddressEntity extends BaseEntity {
|
| | | /**
|
| | | * |
| | | */
|
| | | private static final long serialVersionUID = 1L;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 地址
|
| | | */
|
| | | private String address;
|
| | | /**
|
| | | * 私钥
|
| | | */
|
| | | private String privateKey;
|
| | | /**
|
| | | * 币种
|
| | | */
|
| | | private String symbol;
|
| | | /**
|
| | | * 是否是本平台地址1:是 0:否
|
| | | */
|
| | | private String isBiyict;
|
| | | public static final String IS_BIYICT_YES = "1";
|
| | | public static final String IS_BIYICT_NO = "0";
|
| | | /**
|
| | | * |
| | | */
|
| | | private String label;
|
| | | /**
|
| | | * |
| | | */
|
| | | private String tag;
|
| | | /**
|
| | | * 币种ID
|
| | | */
|
| | | private Long symbolscoinId;
|
| | | |
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.entity;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableField;
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | /**
|
| | | * 会员充币表
|
| | | *
|
| | | * @author wzy
|
| | | * @date 2020-05-12
|
| | | **/
|
| | | @Data
|
| | | @TableName("member_coin_charge")
|
| | | public class MemberCoinChargeEntity extends BaseEntity{
|
| | | /**
|
| | | * |
| | | */
|
| | | private static final long serialVersionUID = 1L;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 凭证
|
| | | */
|
| | | private Long certificate;
|
| | | /**
|
| | | * 充值金额
|
| | | */
|
| | | private BigDecimal amount;
|
| | | /**
|
| | | * 上次更新时钱包金额
|
| | | */
|
| | | private BigDecimal lastAmount;
|
| | | /**
|
| | | * 状态
|
| | | */
|
| | | private int status;
|
| | | /**
|
| | | * 币种
|
| | | */
|
| | | private String symbol;
|
| | | /**
|
| | | * 地址
|
| | | */
|
| | | private String address;
|
| | | private String tag;
|
| | | private String hash;
|
| | | /**
|
| | | * 订单编号
|
| | | */
|
| | | private String orderCode;
|
| | | |
| | | /**
|
| | | * 查询条件:第一查询条件
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String account;
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.entity;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableField;
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | /**
|
| | | * 会员提币表
|
| | | *
|
| | | * @author wzy
|
| | | * @date 2020-05-12
|
| | | **/
|
| | | @Data
|
| | | @TableName("member_coin_withdraw")
|
| | | public class MemberCoinWithdrawEntity extends BaseEntity{
|
| | | /**
|
| | | * |
| | | */
|
| | | private static final long serialVersionUID = 1L;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 地址
|
| | | */
|
| | | private String address;
|
| | | /**
|
| | | * 提币数量
|
| | | */
|
| | | private BigDecimal amount;
|
| | | /**
|
| | | * 手续费
|
| | | */
|
| | | private BigDecimal feeAmount;
|
| | | /**
|
| | | * 币种
|
| | | */
|
| | | private String symbol;
|
| | | /**
|
| | | * 状态
|
| | | */
|
| | | private int status;
|
| | | //等待审核
|
| | | public static final int IS_STATUS_ING = 1;
|
| | | //同意
|
| | | public static final int IS_STATUS_Y = 2;
|
| | | //拒绝
|
| | | public static final int IS_STATUS_N = 3;
|
| | | private String label;
|
| | | private String tag;
|
| | | |
| | | /**
|
| | | * 是否内部转账 Y-是N-不是
|
| | | */
|
| | | private String isInside;
|
| | | |
| | | /**
|
| | | * 查询条件:第一查询条件
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String account;
|
| | | |
| | |
|
| | | }
|
| | |
| | | /** |
| | | * 实名认证 审核通过 |
| | | */ |
| | | public static final Integer CERTIFY_STATUS_Y = 1; |
| | | public static final Integer CERTIFY_STATUS_Y = 2; |
| | | /** |
| | | * 实名认证 审核不通过 |
| | | */ |
| | |
| | | /** |
| | | * 实名认证 审核中 |
| | | */ |
| | | public static final Integer CERTIFY_STATUS_ING = 2; |
| | | public static final Integer CERTIFY_STATUS_ING = 1; |
| | | /** |
| | | * 实名认证 未提交 |
| | | */ |
| | |
| | | private static final long serialVersionUID = 1L;
|
| | |
|
| | | /**
|
| | | * 订单状态 1-新建
|
| | | * 订单状态 买入 1-新建 卖出 1-待付款 |
| | | */
|
| | | public static final Integer CHARGE_STATUS_CREATE = 1;
|
| | |
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.mapper;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
| | | import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity;
|
| | | import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
|
| | |
|
| | | public interface MemberAuthenticationMapper extends BaseMapper<MemberAuthenticationEntity> {
|
| | |
|
| | | MemberAuthenticationVo findMemberAuthenticationByMemberId(long id);
|
| | | |
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.mapper;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
| | | import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity;
|
| | |
|
| | | public interface MemberCoinAddressMapper extends BaseMapper<MemberCoinAddressEntity> {
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.mapper;
|
| | |
|
| | | import org.apache.ibatis.annotations.Param;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
| | | import com.baomidou.mybatisplus.core.metadata.IPage;
|
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
|
| | | import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo;
|
| | |
|
| | | public interface MemberCoinChargeMapper extends BaseMapper<MemberCoinChargeEntity> {
|
| | |
|
| | | IPage<MemberCoinChargeVo> findMemberApplyCoinListInPage(Page<MemberCoinChargeEntity> page,
|
| | | @Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.mapper;
|
| | |
|
| | | import org.apache.ibatis.annotations.Param;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
| | | import com.baomidou.mybatisplus.core.metadata.IPage;
|
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
|
| | | import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo;
|
| | |
|
| | | public interface MemberCoinWithdrawMapper extends BaseMapper<MemberCoinWithdrawEntity> {
|
| | |
|
| | | IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage(Page<MemberCoinWithdrawEntity> page,
|
| | | @Param("record")MemberCoinWithdrawEntity memberCoinWithdrawEntity);
|
| | |
|
| | | }
|
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
| | | import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity;
|
| | | import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo;
|
| | | import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo;
|
| | |
|
| | | public interface MemberQuickBuySaleMapper extends BaseMapper<MemberQuickBuySaleEntity> {
|
| | |
|
| | | IPage<MemberQuickBuySaleVo> findmemberQuickBuySaleListInPage(Page<MemberQuickBuySaleEntity> page,
|
| | | @Param("record")MemberQuickBuySaleEntity memberQuickBuySaleEntity);
|
| | |
|
| | | IPage<MemberQuickSaleVo> findmemberQuickSaleListInPage(Page<MemberQuickBuySaleEntity> page,
|
| | | @Param("record")MemberQuickBuySaleEntity memberQuickBuySaleEntity);
|
| | |
|
| | | }
|
| | |
| | | package com.xcong.excoin.modules.member.service; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; |
| | | import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo; |
| | | |
| | | /** |
| | | * @author helius |
| | |
| | | |
| | | FebsResponse memberChargeUsdtCancel(@NotNull(message = "{required}") Long id); |
| | | |
| | | IPage<MemberQuickSaleVo> findmemberQuickSaleListInPage(MemberQuickBuySaleEntity memberQuickBuySaleEntity, QueryRequest request); |
| | | |
| | | FebsResponse memberExtractUsdtCancel(@NotNull(message = "{required}") Long id); |
| | | |
| | | FebsResponse memberExtractUsdtConfirm(@NotNull(message = "{required}") Long id); |
| | | |
| | | IPage<MemberCoinChargeVo> findMemberApplyCoinListInPage(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request); |
| | | |
| | | IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage(MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request); |
| | | |
| | | FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id); |
| | | |
| | | FebsResponse memberWithdrawCoinCancel(@NotNull(message = "{required}") Long id); |
| | | |
| | | MemberAuthenticationVo selectMemberAuthenticationById(@NotNull(message = "{required}") long id); |
| | | |
| | | FebsResponse memberDetailConfirm(@Valid MemberDetailConfirmDto memberDetailConfirmDto); |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; |
| | | import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberCoinChargeMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberCoinWithdrawMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; |
| | | import com.xcong.excoin.modules.member.service.IMemberService; |
| | | import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo; |
| | | import com.xcong.excoin.modules.member.vo.MemberQuickSaleVo; |
| | | |
| | | import lombok.RequiredArgsConstructor; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | @RequiredArgsConstructor |
| | | public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberEntity> implements IMemberService { |
| | | |
| | | private final MemberMapper memberMapper; |
| | | |
| | | private final MemberQuickBuySaleMapper memberQuickBuySaleMapper; |
| | | |
| | | private final MemberWalletCoinMapper memberWalletCoinMapper; |
| | | |
| | | private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper; |
| | | |
| | | private final MemberCoinChargeMapper memberCoinChargeMapper; |
| | | |
| | | private final MemberCoinWithdrawMapper memberCoinWithdrawMapper; |
| | | |
| | | private final MemberCoinAddressMapper memberCoinAddressMapper; |
| | | |
| | | private final MemberAuthenticationMapper memberAuthenticationMapper; |
| | | |
| | | |
| | | @Override |
| | |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); |
| | | memberAccountMoneyChangeEntity.setSymbol("USDT"); |
| | | memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setCreateTime(new Date()); |
| | | memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setUpdateTime(new Date()); |
| | | |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | /** |
| | | * todo |
| | |
| | | SmsUtils.hxSmsSend(member.getPhone(), smsContent); |
| | | |
| | | */ |
| | | return new FebsResponse().message("拨币成功"); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | |
| | | return new FebsResponse().success(); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MemberQuickSaleVo> findmemberQuickSaleListInPage(MemberQuickBuySaleEntity memberQuickBuySaleEntity, |
| | | QueryRequest request) { |
| | | Page<MemberQuickBuySaleEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MemberQuickSaleVo> findmemberQuickBuySaleListInPage = memberQuickBuySaleMapper.findmemberQuickSaleListInPage(page, memberQuickBuySaleEntity); |
| | | return findmemberQuickBuySaleListInPage; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberExtractUsdtCancel(@NotNull(message = "{required}") Long id) { |
| | | MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); |
| | | |
| | | if(!MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE.equals(memberQuickBuySaleEntity.getOrderStatus())) { |
| | | return new FebsResponse().message("只允许待付款状态操作"); |
| | | } |
| | | |
| | | Long memberId = memberQuickBuySaleEntity.getMemberId(); |
| | | BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt(); |
| | | String walletCode = "USDT"; |
| | | |
| | | MemberEntity selectById = this.baseMapper.selectById(memberId); |
| | | if(ObjectUtils.isEmpty(selectById)) { |
| | | return new FebsResponse().message("用户已不存在"); |
| | | } |
| | | //获取币币钱包 |
| | | MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); |
| | | BigDecimal frozenBalance = memberWalletCoinEntity.getFrozenBalance(); |
| | | BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance(); |
| | | BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance(); |
| | | memberWalletCoinEntity.setFrozenBalance(frozenBalance.subtract(amountUsdt)); |
| | | memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt)); |
| | | memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt)); |
| | | // 更新 |
| | | memberWalletCoinMapper.updateById(memberWalletCoinEntity); |
| | | // 更新状态 |
| | | memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_CANCEL_SYSTEM); |
| | | memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); |
| | | |
| | | /** |
| | | * todo |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | | String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式 |
| | | String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT"; |
| | | //发送短信提醒 |
| | | String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。"; |
| | | SmsUtils.hxSmsSend(member.getPhone(), smsContent); |
| | | |
| | | */ |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberExtractUsdtConfirm(@NotNull(message = "{required}") Long id) { |
| | | |
| | | MemberQuickBuySaleEntity memberQuickBuySaleEntity = memberQuickBuySaleMapper.selectById(id); |
| | | |
| | | if(!MemberQuickBuySaleEntity.CHARGE_STATUS_CREATE.equals(memberQuickBuySaleEntity.getOrderStatus())) { |
| | | return new FebsResponse().message("只允许待付款状态操作"); |
| | | } |
| | | |
| | | Long memberId = memberQuickBuySaleEntity.getMemberId(); |
| | | BigDecimal amountUsdt = memberQuickBuySaleEntity.getAmountUsdt(); |
| | | String walletCode = "USDT"; |
| | | |
| | | MemberEntity selectById = this.baseMapper.selectById(memberId); |
| | | if(ObjectUtils.isEmpty(selectById)) { |
| | | return new FebsResponse().message("用户已不存在"); |
| | | } |
| | | |
| | | //获取币币钱包 |
| | | MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode); |
| | | BigDecimal frozenBalance = memberWalletCoinEntity.getFrozenBalance(); |
| | | memberWalletCoinEntity.setFrozenBalance(frozenBalance.subtract(amountUsdt)); |
| | | memberWalletCoinMapper.updateById(memberWalletCoinEntity); |
| | | |
| | | memberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_PAID); |
| | | memberQuickBuySaleMapper.updateById(memberQuickBuySaleEntity); |
| | | |
| | | //添加币币资金划转历史记录 |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("提现"); |
| | | memberAccountMoneyChangeEntity.setMemberId(memberId); |
| | | memberAccountMoneyChangeEntity.setAmount(amountUsdt); |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); |
| | | memberAccountMoneyChangeEntity.setSymbol(walletCode); |
| | | memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setCreateTime(new Date()); |
| | | memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setUpdateTime(new Date()); |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | |
| | | /** |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | | String chargeTime = format.format(memberQuickBuySaleEntity.getUpdateTime()); // 将当前时间袼式化为指定的格式 |
| | | String usdt = amountUsdt+"USDT"; |
| | | //发送短信提醒 |
| | | String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"提现"+usdt+"已成功到账,请您及时查收!订单号为:"+memberQuickBuySaleEntity.getOrderCode()+"。"; |
| | | SmsUtils.hxSmsSend(selectById.getPhone(), smsContent); |
| | | * |
| | | */ |
| | | |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MemberCoinChargeVo> findMemberApplyCoinListInPage(MemberCoinChargeEntity memberCoinChargeEntity, |
| | | QueryRequest request) { |
| | | Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MemberCoinChargeVo> findmemberQuickBuySaleListInPage = memberCoinChargeMapper.findMemberApplyCoinListInPage(page, memberCoinChargeEntity); |
| | | return findmemberQuickBuySaleListInPage; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage( |
| | | MemberCoinWithdrawEntity memberCoinWithdrawEntity, QueryRequest request) { |
| | | Page<MemberCoinWithdrawEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MemberCoinWithdrawVo> findmemberQuickBuySaleListInPage = memberCoinWithdrawMapper.findmemberWithdrawCoinListInPage(page, memberCoinWithdrawEntity); |
| | | return findmemberQuickBuySaleListInPage; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) { |
| | | |
| | | MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id); |
| | | Long memberId = selectById.getMemberId(); |
| | | String symbol = selectById.getSymbol(); |
| | | String address = selectById.getAddress(); |
| | | int status = selectById.getStatus(); |
| | | if(status != 1) { |
| | | return new FebsResponse().fail().message("只有等待审核的状态才能确认!"); |
| | | } |
| | | |
| | | // 查询币币钱包 |
| | | MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol); |
| | | |
| | | BigDecimal total = walletCoin.getTotalBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); |
| | | walletCoin.setTotalBalance(total); |
| | | BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); |
| | | walletCoin.setFrozenBalance(frozen); |
| | | |
| | | memberWalletCoinMapper.updateById(walletCoin); |
| | | |
| | | if ("Y".equals(selectById.getIsInside())) { |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("symbol", symbol); |
| | | columnMap.put("address", address); |
| | | // 如果是内部转账 则需要将币加到内部地址 |
| | | List<MemberCoinAddressEntity> selectByMap = memberCoinAddressMapper.selectByMap(columnMap); |
| | | if(selectByMap == null || selectByMap.isEmpty()) { |
| | | return new FebsResponse().fail().message("地址有误,请拒绝!"); |
| | | } |
| | | Long aimMemberId = selectByMap.get(0).getMemberId(); |
| | | MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol); |
| | | |
| | | BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(selectById.getAmount()); |
| | | BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(selectById.getAmount()); |
| | | aimWalletCoin.setTotalBalance(addTotal); |
| | | aimWalletCoin.setAvailableBalance(addAvailable); |
| | | |
| | | memberWalletCoinMapper.updateById(aimWalletCoin); |
| | | |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("收款"); |
| | | memberAccountMoneyChangeEntity.setMemberId(aimMemberId); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); |
| | | memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); |
| | | memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setCreateTime(new Date()); |
| | | memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setUpdateTime(new Date()); |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | } |
| | | |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("提币"); |
| | | memberAccountMoneyChangeEntity.setMemberId(memberId); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER); |
| | | memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); |
| | | memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setCreateTime(new Date()); |
| | | memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setUpdateTime(new Date()); |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | |
| | | selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_Y); |
| | | memberCoinWithdrawMapper.updateById(selectById); |
| | | /** |
| | | //短信提醒 |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
| | | String chargeTime = format.format(new Date()); // 将当前时间袼式化为指定的格式 |
| | | String usdt = selectById.getAmount()+"USDT"; |
| | | * 发送短信提醒 todo |
| | | String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"提现"+usdt+"已成功到账,请您及时查收!"; |
| | | SmsUtils.hxSmsSend(member.getPhone(), smsContent); |
| | | */ |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberWithdrawCoinCancel(@NotNull(message = "{required}") Long id) { |
| | | |
| | | MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id); |
| | | Long memberId = selectById.getMemberId(); |
| | | String symbol = selectById.getSymbol(); |
| | | int status = selectById.getStatus(); |
| | | if(status != 1) { |
| | | return new FebsResponse().fail().message("只有等待审核的状态才能拒绝!"); |
| | | } |
| | | // 查询币币钱包 |
| | | MemberWalletCoinEntity walletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, symbol); |
| | | |
| | | BigDecimal available = walletCoin.getAvailableBalance().add(selectById.getAmount()).add(selectById.getFeeAmount()); |
| | | walletCoin.setAvailableBalance(available); |
| | | BigDecimal frozen = walletCoin.getFrozenBalance().subtract(selectById.getAmount()).subtract(selectById.getFeeAmount()); |
| | | walletCoin.setFrozenBalance(frozen); |
| | | |
| | | memberWalletCoinMapper.updateById(walletCoin); |
| | | |
| | | // 提币退款记录 |
| | | MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity(); |
| | | memberAccountMoneyChangeEntity.setContent("提币"); |
| | | memberAccountMoneyChangeEntity.setMemberId(memberId); |
| | | memberAccountMoneyChangeEntity.setAmount(selectById.getAmount()); |
| | | memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_FAIL_INTEGER); |
| | | memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol()); |
| | | memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setCreateTime(new Date()); |
| | | memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy()); |
| | | memberAccountMoneyChangeEntity.setUpdateTime(new Date()); |
| | | memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity); |
| | | |
| | | selectById.setStatus(MemberCoinWithdrawEntity.IS_STATUS_N); |
| | | memberCoinWithdrawMapper.updateById(selectById); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public MemberAuthenticationVo selectMemberAuthenticationById(long id) { |
| | | MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id); |
| | | String firstName = memberAuthenticationEntity.getFirstName(); |
| | | String secondName = memberAuthenticationEntity.getSecondName(); |
| | | memberAuthenticationEntity.setRealName(firstName+"-"+secondName); |
| | | return memberAuthenticationEntity; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse memberDetailConfirm(@Valid MemberDetailConfirmDto memberDetailConfirmDto) { |
| | | Long id = memberDetailConfirmDto.getId(); |
| | | MemberEntity selectById = memberMapper.selectById(id); |
| | | Integer certifyStatus = selectById.getCertifyStatus(); |
| | | if(!MemberEntity.CERTIFY_STATUS_ING.equals(certifyStatus)) { |
| | | return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); |
| | | } |
| | | |
| | | MemberAuthenticationVo memberAuthenticationEntity = memberAuthenticationMapper.findMemberAuthenticationByMemberId(id); |
| | | selectById.setCertifyStatus(MemberEntity.CERTIFY_STATUS_Y); |
| | | selectById.setIdcardNo(memberAuthenticationEntity.getIdcardNo()); |
| | | |
| | | memberMapper.updateById(selectById); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | } |
copy from src/main/java/com/xcong/excoin/modules/authentication/entity/MemberAuthenticationEntity.java
copy to src/main/java/com/xcong/excoin/modules/member/vo/MemberAuthenticationVo.java
File was copied from src/main/java/com/xcong/excoin/modules/authentication/entity/MemberAuthenticationEntity.java |
| | |
| | | package com.xcong.excoin.modules.authentication.entity;
|
| | | package com.xcong.excoin.modules.member.vo;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
| | | import com.baomidou.mybatisplus.annotation.IdType;
|
| | | import com.baomidou.mybatisplus.annotation.TableId;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | @TableName("member_authentication")
|
| | | public class MemberAuthenticationEntity extends BaseEntity{
|
| | | /**
|
| | | * |
| | | */
|
| | | private static final long serialVersionUID = 1L;
|
| | | public class MemberAuthenticationVo {
|
| | |
|
| | | @TableId(value = "id",type = IdType.AUTO)
|
| | | private Long id;
|
| | | |
| | | /**
|
| | | * 实名认证状态 0-审核未通过 1-审核通过 2-等待审核
|
| | | */
|
| | | private Integer certifyStatus;
|
| | | |
| | | /**
|
| | | * 用户ID
|
| | | */
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.vo;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.IdType;
|
| | | import com.baomidou.mybatisplus.annotation.TableId;
|
| | | import com.fasterxml.jackson.annotation.JsonFormat;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | public class MemberCoinChargeVo {
|
| | | @TableId(value = "id",type = IdType.AUTO)
|
| | | private Long id;
|
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
| | | private Date createTime; |
| | | /**
|
| | | * 手机号(包含国际手机号)
|
| | | */
|
| | | private String phone;
|
| | |
|
| | | /**
|
| | | * 邮箱
|
| | | */
|
| | | private String email;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 凭证
|
| | | */
|
| | | private Long certificate;
|
| | | /**
|
| | | * 充值金额
|
| | | */
|
| | | private BigDecimal amount;
|
| | | /**
|
| | | * 上次更新时钱包金额
|
| | | */
|
| | | private BigDecimal lastAmount;
|
| | | /**
|
| | | * 状态
|
| | | */
|
| | | private int status;
|
| | | /**
|
| | | * 币种
|
| | | */
|
| | | private String symbol;
|
| | | /**
|
| | | * 地址
|
| | | */
|
| | | private String address;
|
| | | private String tag;
|
| | | private String hash;
|
| | | /**
|
| | | * 订单编号
|
| | | */
|
| | | private String orderCode;
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.vo;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.IdType;
|
| | | import com.baomidou.mybatisplus.annotation.TableId;
|
| | | import com.fasterxml.jackson.annotation.JsonFormat;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | public class MemberCoinWithdrawVo {
|
| | | |
| | | @TableId(value = "id",type = IdType.AUTO)
|
| | | private Long id;
|
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
| | | private Date createTime; |
| | | /**
|
| | | * 手机号(包含国际手机号)
|
| | | */
|
| | | private String phone;
|
| | | /**
|
| | | * 邮箱
|
| | | */
|
| | | private String email;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 地址
|
| | | */
|
| | | private String address;
|
| | | /**
|
| | | * 提币数量
|
| | | */
|
| | | private BigDecimal amount;
|
| | | /**
|
| | | * 手续费
|
| | | */
|
| | | private BigDecimal feeAmount;
|
| | | /**
|
| | | * 币种
|
| | | */
|
| | | private String symbol;
|
| | | /**
|
| | | * 状态
|
| | | */
|
| | | private int status;
|
| | | private String label;
|
| | | private String tag;
|
| | | |
| | | /**
|
| | | * 是否内部转账 Y-是N-不是
|
| | | */
|
| | | private String isInside;
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.vo;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Date;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.IdType;
|
| | | import com.baomidou.mybatisplus.annotation.TableId;
|
| | | import com.fasterxml.jackson.annotation.JsonFormat;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | public class MemberQuickSaleVo {
|
| | |
|
| | | @TableId(value = "id",type = IdType.AUTO)
|
| | | private Long id;
|
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
| | | private Date createTime;
|
| | | /**
|
| | | * 手机号(包含国际手机号)
|
| | | */
|
| | | private String phone;
|
| | |
|
| | | /**
|
| | | * 邮箱
|
| | | */
|
| | | private String email;
|
| | | /**
|
| | | * 用户Id
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 单价
|
| | | */
|
| | | private BigDecimal unitPrice;
|
| | | /**
|
| | | * 金额(人民币)
|
| | | */
|
| | | private BigDecimal amountCny;
|
| | | /**
|
| | | * 金额(USDT)
|
| | | */
|
| | | private BigDecimal amountUsdt;
|
| | | /**
|
| | | * 订单状态 1-待审核2-已付款3-已审核4-撤单5-系统取消
|
| | | */
|
| | | private int orderStatus;
|
| | | /**
|
| | | * 收款姓名
|
| | | */
|
| | | private String name;
|
| | | /**
|
| | | * 收款账号
|
| | | */
|
| | | private String account;
|
| | | /**
|
| | | * 收款二维码
|
| | | */
|
| | | private String paymentQrcode;
|
| | | /**
|
| | | * 银行
|
| | | */
|
| | | private String bank;
|
| | | /**
|
| | | * 付款方式 1-支付宝2-微信3-银行卡
|
| | | */
|
| | | private Integer paymentType;
|
| | | /**
|
| | | * 订单编号
|
| | | */
|
| | | private String orderNo;
|
| | |
|
| | | }
|
New file |
| | |
| | | <?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.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper">
|
| | |
|
| | | <select id="findMemberAuthenticationByMemberId" resultType="com.xcong.excoin.modules.member.vo.MemberAuthenticationVo">
|
| | | select * from member a LEFT JOIN member_authentication m on m.member_id = a.id where a.id = #{id}
|
| | | </select>
|
| | | |
| | | </mapper> |
New file |
| | |
| | | <?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.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper">
|
| | |
|
| | | <select id="findMemberApplyCoinListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberCoinChargeVo">
|
| | | select * from member_coin_charge s left join member m on m.id = s.member_id
|
| | | <where>
|
| | | <if test="record != null" >
|
| | | <if test="record.account!=null and record.account!=''">
|
| | | and (m.phone = #{record.account} or m.email = #{record.account} or s.member_id=#{record.account})
|
| | | </if>
|
| | | <if test="record.address!=null and record.address!=''">
|
| | | and s.address=#{record.address}
|
| | | </if>
|
| | | </if>
|
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | |
|
| | | </mapper> |
New file |
| | |
| | | <?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.xcong.excoin.modules.member.mapper.MemberCoinChargeMapper">
|
| | |
|
| | | <select id="findMemberApplyCoinListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberCoinChargeVo">
|
| | | select * from member_coin_charge s left join member m on m.id = s.member_id
|
| | | <where>
|
| | | <if test="record != null" >
|
| | | <if test="record.account!=null and record.account!=''">
|
| | | and (m.phone = #{record.account} or m.email = #{record.account} or s.member_id=#{record.account})
|
| | | </if>
|
| | | <if test="record.address!=null and record.address!=''">
|
| | | and s.address=#{record.address}
|
| | | </if>
|
| | | </if>
|
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | |
|
| | | </mapper> |
New file |
| | |
| | | <?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.xcong.excoin.modules.member.mapper.MemberCoinWithdrawMapper">
|
| | |
|
| | | <select id="findmemberWithdrawCoinListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo">
|
| | | SELECT
|
| | | *
|
| | | FROM
|
| | | member_coin_withdraw s left join member m on m.id = s.member_id
|
| | | <where>
|
| | | <if test="record != null" >
|
| | | <if test="record.account!=null and record.account!=''">
|
| | | and (m.phone = #{record.account} or m.email = #{record.account} or s.member_id=#{record.account})
|
| | | </if>
|
| | | <if test="record.isInside!=null and record.isInside!=''">
|
| | | and s.is_inside= #{record.isInside}
|
| | | </if>
|
| | | <if test="record.status!=null and record.status!='' and record.status!='0'">
|
| | | and s.status= #{record.status}
|
| | | </if>
|
| | | </if>
|
| | | </where> |
| | | </select>
|
| | |
|
| | | </mapper> |
| | |
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | | |
| | | <select id="findmemberQuickSaleListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberQuickSaleVo">
|
| | | SELECT
|
| | | s.id,
|
| | | s.create_time createTime,
|
| | | a.phone,
|
| | | a.email,
|
| | | s.member_id memberId,
|
| | | s.unit_price unitPrice,
|
| | | s.amount_cny amountCny,
|
| | | s.amount_usdt amountUsdt,
|
| | | s.order_status orderStatus,
|
| | | m.name,
|
| | | m.account,
|
| | | m.payment_qrcode paymentQrcode,
|
| | | m.bank,
|
| | | m.payment_type paymentType,
|
| | | s.order_no orderNo
|
| | | FROM
|
| | | member_quick_buy_sale s
|
| | | LEFT JOIN member_payment_method m ON m.id = s.member_id
|
| | | LEFT JOIN member a ON a.id = s.member_id
|
| | | <where>
|
| | | s.order_type = 'S' |
| | | <if test="record != null" >
|
| | | <if test="record.account!=null and record.account!=''">
|
| | | and (a.phone = #{record.account} or a.email = #{record.account} or s.member_id=#{record.account}) |
| | | </if>
|
| | | <if test="record.orderStatus!=null and record.orderStatus!= 0" >
|
| | | and s.order_status = #{record.orderStatus}
|
| | | </if>
|
| | | </if>
|
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | |
|
| | | </mapper> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="充币审核管理">
|
| | | <div class="layui-row febs-container">
|
| | | <div class="layui-col-md12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body febs-table-full">
|
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form">
|
| | | <div class="layui-row">
|
| | | <div class="layui-col-md10">
|
| | | <div class="layui-form-item">
|
| | | <div class="layui-inline">
|
| | | <div class="layui-input-inline">
|
| | | <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-inline">
|
| | | <div class="layui-input-inline">
|
| | | <input type="text" placeholder="充币地址" name="address" autocomplete="off" class="layui-input">
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </form>
|
| | | <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <!-- 表格字段状态格式化 start -->
|
| | | <script type="text/html" id="status">
|
| | | {{#
|
| | | var status = {
|
| | | 1: {title: '已到账' , color: 'green'},
|
| | | 0: {title: '已到账' },
|
| | | 2: {title: '已到账' },
|
| | | 3: {title: '已到账' },
|
| | | 4: {title: '已到账' }
|
| | | }[d.status];
|
| | | }}
|
| | | <span class="layui-badge febs-tag-{{status.color}}">{{ status.title }}</span>
|
| | | </script>
|
| | |
|
| | | <!-- 表格字段状态格式化 start -->
|
| | |
|
| | | <!-- 表格操作栏 end -->
|
| | | <script data-th-inline="none" type="text/javascript">
|
| | | // 引入组件并初始化
|
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
|
| | | var $ = layui.jquery,
|
| | | laydate = layui.laydate,
|
| | | febs = layui.febs,
|
| | | form = layui.form,
|
| | | table = layui.table,
|
| | | treeSelect = layui.treeSelect,
|
| | | dropdown = layui.dropdown,
|
| | | $view = $('#febs-user'),
|
| | | $query = $view.find('#query'),
|
| | | $reset = $view.find('#reset'),
|
| | | $searchForm = $view.find('form'),
|
| | | sortObject = {field: 'createTime', type: null},
|
| | | tableIns;
|
| | |
|
| | | form.render();
|
| | |
|
| | | // 表格初始化
|
| | | initTable();
|
| | |
|
| | | // 下拉框选择器
|
| | | treeSelect.render({
|
| | | elem: $view.find('#dept'),
|
| | | type: 'get',
|
| | | data: ctx + 'dept/select/tree',
|
| | | placeholder: '请选择',
|
| | | search: false
|
| | | });
|
| | |
|
| | | // 查询按钮
|
| | | $query.on('click', function () {
|
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
|
| | | tableIns.reload({where: params, page: {curr: 1}});
|
| | | });
|
| | |
|
| | | // 刷新按钮
|
| | | $reset.on('click', function () {
|
| | | $searchForm[0].reset();
|
| | | treeSelect.revokeNode('dept');
|
| | | sortObject.type = 'null';
|
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
|
| | | });
|
| | |
|
| | | function initTable() {
|
| | | tableIns = febs.table.init({
|
| | | elem: $view.find('table'),
|
| | | id: 'userTable',
|
| | | url: ctx + 'member/memberApplyCoin',
|
| | | cols: [[
|
| | | {field: 'phone', title: '手机号码', minWidth: 120,align:'left'},
|
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
|
| | | {field: 'memberId', title: '邀请码UID', minWidth: 100,align:'center'},
|
| | | {field: 'symbol', title: '币种', minWidth: 60,align:'center'},
|
| | | {field: 'tag', title: 'USDT类型', minWidth: 60,align:'center'},
|
| | | {field: 'amount', title: '充币数量', minWidth: 100,align:'center'},
|
| | | {field: 'lastAmount', title: '本次余额', minWidth: 100,align:'center'},
|
| | | {field: 'address', title: '平台钱包地址', minWidth: 280,align:'center'},
|
| | | {field: 'createTime', title: '创建时间', minWidth: 200,align:'center'},
|
| | | {title: '状态', templet: '#status', minWidth: 100,align:'center'}
|
| | | ]]
|
| | | });
|
| | | }
|
| | |
|
| | | // 获取查询参数
|
| | | function getQueryParams() {
|
| | | return {
|
| | | account: $searchForm.find('input[name="account"]').val().trim(),
|
| | | address: $searchForm.find('input[name="address"]').val().trim(),
|
| | | };
|
| | | }
|
| | | |
| | | })
|
| | | </script> |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="会员充值USDT记录">
|
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="会员充值USDT">
|
| | | <div class="layui-row febs-container">
|
| | | <div class="layui-col-md12">
|
| | | <div class="layui-card">
|
| | |
| | | id: 'userTable',
|
| | | url: ctx + 'member/memberChargeUsdt',
|
| | | cols: [[
|
| | | {field: 'phone', title: '手机号码'},
|
| | | {field: 'email', title: '邮箱'},
|
| | | {field: 'memberId', title: '邀请码UID'},
|
| | | {field: 'amountCny', title: '人民币金额'},
|
| | | {field: 'amountUsdt', title: 'USDT金额'},
|
| | | {field: 'unitPrice', title: '单价'},
|
| | | {field: 'createTime', title: '充值时间', minWidth: 180},
|
| | | {title: '付款状态', templet: '#order-Status'},
|
| | | {field: 'orderNo', title: '订单编号'},
|
| | | {field: 'paymentName', title: '收款人'},
|
| | | {field: 'paymentAccount', title: '收款账号'},
|
| | | {title: '收款方式', templet: '#payment-Type'},
|
| | | {title: '操作', toolbar: '#user-option', minWidth: 140, fixed : 'right'}
|
| | | {field: 'phone', title: '手机号码', minWidth: 120,align:'left'},
|
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
|
| | | {field: 'memberId', title: '邀请码UID', minWidth: 100,align:'center'},
|
| | | {field: 'amountCny', title: '人民币金额', minWidth: 120,align:'center'},
|
| | | {field: 'amountUsdt', title: 'USDT金额', minWidth: 120,align:'center'},
|
| | | {field: 'unitPrice', title: '单价', minWidth: 80,align:'center'},
|
| | | {field: 'createTime', title: '充值时间', minWidth: 180,align:'center'},
|
| | | {title: '付款状态', templet: '#order-Status', minWidth: 100,align:'center'},
|
| | | {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'},
|
| | | {field: 'paymentName', title: '收款人', minWidth: 150,align:'center'},
|
| | | {field: 'paymentAccount', title: '收款账号', minWidth: 150,align:'center'},
|
| | | {title: '收款方式', templet: '#payment-Type', minWidth: 100,align:'center'},
|
| | | {title: '操作', toolbar: '#user-option', minWidth: 150, fixed : 'right'}
|
| | | ]]
|
| | | });
|
| | | }
|
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="会员USDT提现">
|
| | | <div class="layui-row febs-container">
|
| | | <div class="layui-col-md12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body febs-table-full">
|
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form">
|
| | | <div class="layui-row">
|
| | | <div class="layui-col-md10">
|
| | | <div class="layui-form-item">
|
| | | <div class="layui-inline">
|
| | | <div class="layui-input-inline">
|
| | | <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-inline">
|
| | | <label class="layui-form-label layui-form-label-sm">订单状态</label>
|
| | | <div class="layui-input-inline">
|
| | | <select name="orderStatus">
|
| | | <option value="0"></option>
|
| | | <option value="1">待审核</option>
|
| | | <option value="2">已付款</option>
|
| | | <option value="3">已审核</option>
|
| | | <option value="4">撤单</option>
|
| | | <option value="5">系统取消</option>
|
| | | </select>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary table-action action-more"
|
| | | shiro:hasAnyPermissions="user:add,user:update,user:password:reset,user:export">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </form>
|
| | | <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <!-- 表格字段状态格式化 start -->
|
| | | <script type="text/html" id="order-Status">
|
| | | {{#
|
| | | var orderStatus = {
|
| | | 1: {title: '待审核' , color: 'gray'},
|
| | | 2: {title: '已付款' , color: 'red'},
|
| | | 3: {title: '已审核' , color: 'green'},
|
| | | 4: {title: '撤单' , color: 'gray'},
|
| | | 5: {title: '系统取消' , color: 'blue'}
|
| | | }[d.orderStatus];
|
| | | }}
|
| | | <span class="layui-badge febs-tag-{{orderStatus.color}}">{{ orderStatus.title }}</span>
|
| | | </script>
|
| | | <script type="text/html" id="payment-Type">
|
| | | {{#
|
| | | var paymentType = {
|
| | | null: {title: '无' },
|
| | | 1: {title: '支付宝' },
|
| | | 2: {title: '微信'},
|
| | | 3: {title: '银行卡' }
|
| | | }[d.paymentType];
|
| | | }}
|
| | | <span >{{ paymentType.title }}</span>
|
| | | </script>
|
| | |
|
| | | <!-- 表格字段状态格式化 start -->
|
| | |
|
| | | <!-- 表格操作栏 start -->
|
| | | <script type="text/html" id="user-option">
|
| | | <span shiro:lacksPermission="user:view,user:update,user:delete">
|
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限
|
| | | </span>
|
| | | <a lay-event="confirm" shiro:hasPermission="user:delete">付款</a>
|
| | | <i class="layui-icon febs-edit-area febs-blue"></i>
|
| | | <a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>
|
| | | </script>
|
| | | <!-- 表格操作栏 end -->
|
| | | <script data-th-inline="none" type="text/javascript">
|
| | | // 引入组件并初始化
|
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
|
| | | var $ = layui.jquery,
|
| | | laydate = layui.laydate,
|
| | | febs = layui.febs,
|
| | | form = layui.form,
|
| | | table = layui.table,
|
| | | treeSelect = layui.treeSelect,
|
| | | dropdown = layui.dropdown,
|
| | | $view = $('#febs-user'),
|
| | | $query = $view.find('#query'),
|
| | | $reset = $view.find('#reset'),
|
| | | $searchForm = $view.find('form'),
|
| | | sortObject = {field: 'createTime', type: null},
|
| | | tableIns;
|
| | |
|
| | | form.render();
|
| | |
|
| | | // 表格初始化
|
| | | initTable();
|
| | |
|
| | | // 下拉框选择器
|
| | | treeSelect.render({
|
| | | elem: $view.find('#dept'),
|
| | | type: 'get',
|
| | | data: ctx + 'dept/select/tree',
|
| | | placeholder: '请选择',
|
| | | search: false
|
| | | });
|
| | |
|
| | | // 初始化表格操作栏各个按钮功能
|
| | | table.on('tool(userTable)', function (obj) {
|
| | | var data = obj.data,
|
| | | layEvent = obj.event;
|
| | | if (layEvent === 'confirm') {
|
| | | febs.modal.confirm('询问', '您是否确认已付款到该会员?', function () {
|
| | | confirmUsers(data.id);
|
| | | });
|
| | | }
|
| | | if (layEvent === 'cancel') {
|
| | | febs.modal.confirm('询问', '您是否确认拒绝?', function () {
|
| | | cancelUsers(data.id);
|
| | | });
|
| | | }
|
| | | });
|
| | | |
| | | function confirmUsers(id) {
|
| | | febs.get(ctx + 'member/memberExtractUsdtConfirm/' + id, null, function () {
|
| | | febs.alert.success('划转成功');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | | |
| | | function cancelUsers(id) {
|
| | | febs.get(ctx + 'member/memberExtractUsdtCancel/' + id, null, function () {
|
| | | febs.alert.success('设置为系统取消');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | |
|
| | | // 查询按钮
|
| | | $query.on('click', function () {
|
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
|
| | | tableIns.reload({where: params, page: {curr: 1}});
|
| | | });
|
| | |
|
| | | // 刷新按钮
|
| | | $reset.on('click', function () {
|
| | | $searchForm[0].reset();
|
| | | treeSelect.revokeNode('dept');
|
| | | sortObject.type = 'null';
|
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
|
| | | });
|
| | |
|
| | | function initTable() {
|
| | | tableIns = febs.table.init({
|
| | | elem: $view.find('table'),
|
| | | id: 'userTable',
|
| | | url: ctx + 'member/memberExtractUsdt',
|
| | | cols: [[
|
| | | {field: 'phone', title: '手机号码', minWidth: 120,align:'left'},
|
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
|
| | | {field: 'memberId', title: '邀请码UID', minWidth: 100,align:'center'},
|
| | | {field: 'amountCny', title: '人民币金额', minWidth: 120,align:'center'},
|
| | | {field: 'amountUsdt', title: 'USDT金额', minWidth: 120,align:'center'},
|
| | | {field: 'unitPrice', title: '单价', minWidth: 80,align:'center'},
|
| | | {field: 'createTime', title: '提现时间', minWidth: 180,align:'center'},
|
| | | {title: '提现状态', templet: '#order-Status', minWidth: 100,align:'center'},
|
| | | {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'},
|
| | | {field: 'paymentQrcode', title: '支付码', minWidth: 120,align:'center'},
|
| | | {field: 'name', title: '收款人', minWidth: 150,align:'center'},
|
| | | {field: 'account', title: '收款账号', minWidth: 150,align:'center'},
|
| | | {title: '收款方式', templet: '#payment-Type', minWidth: 100,align:'center'},
|
| | | {field: 'paymentAccount', title: '二维码', minWidth: 150,align:'center'},
|
| | | {field: 'bank', title: '所属银行', minWidth: 150,align:'center'},
|
| | | {title: '操作', toolbar: '#user-option', minWidth: 150, fixed : 'right'}
|
| | | ]]
|
| | | });
|
| | | }
|
| | |
|
| | | // 获取查询参数
|
| | | function getQueryParams() {
|
| | | return {
|
| | | account: $searchForm.find('input[name="account"]').val().trim(),
|
| | | orderStatus: $searchForm.find("select[name='orderStatus']").val(),
|
| | | };
|
| | | }
|
| | | |
| | | })
|
| | | </script> |
| | |
| | | {{# |
| | | var certifyStatus = { |
| | | 0: {title: '未通过', color: 'red'}, |
| | | 1: {title: '审核中', color: 'blue'}, |
| | | 1: {title: '待审核', color: 'blue'}, |
| | | 2: {title: '审核通过', color: 'green'}, |
| | | 3: {title: '未实名', color: 'cyan'} |
| | | 3: {title: '未实名'} |
| | | }[d.certifyStatus]; |
| | | }} |
| | | <span class="layui-badge febs-tag-{{certifyStatus.color}}">{{ certifyStatus.title }}</span> |
| | |
| | | <span shiro:lacksPermission="user:view,user:update,user:delete"> |
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限 |
| | | </span> |
| | | <a lay-event="detail" shiro:hasPermission="user:view"><i |
| | | class="layui-icon febs-edit-area febs-green"></i></a> |
| | | <a lay-event="edit" shiro:hasPermission="user:update"><i |
| | | class="layui-icon febs-edit-area febs-blue"></i></a> |
| | | <a lay-event="del" shiro:hasPermission="user:delete"><i class="layui-icon febs-edit-area febs-red"></i></a> |
| | | class="layui-icon febs-edit-area febs-blue"></i></a> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | |
| | | }); |
| | | |
| | | // 新增下拉组件 |
| | | /** |
| | | |
| | | dropdown.render({ |
| | | elem: $view.find('.action-more'), |
| | | click: function (name, elem, event) { |
| | | var checkStatus = table.checkStatus('userTable'); |
| | | if (name === 'add') { |
| | | febs.modal.open('新增用户', 'system/user/add', { |
| | | btn: ['提交', '重置'], |
| | | area: $(window).width() <= 750 ? '95%' : '50%', |
| | | offset: '30px', |
| | | yes: function (index, layero) { |
| | | $('#user-add').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | $('#user-add').find('#reset').trigger('click'); |
| | | return false; |
| | | } |
| | | }); |
| | | } |
| | | if (name === 'delete') { |
| | | if (!checkStatus.data.length) { |
| | | febs.alert.warn('请选择需要删除的用户'); |
| | | } else { |
| | | febs.modal.confirm('删除用户', '确定删除该用户?', function () { |
| | | var userIds = []; |
| | | layui.each(checkStatus.data, function (key, item) { |
| | | userIds.push(item.userId) |
| | | }); |
| | | deleteUsers(userIds.join(',')); |
| | | }); |
| | | } |
| | | } |
| | | if (name === 'reset') { |
| | | if (!checkStatus.data.length) { |
| | | febs.alert.warn('请选择需要重置密码的用户'); |
| | | } else { |
| | | var usernames = []; |
| | | layui.each(checkStatus.data, function (key, item) { |
| | | usernames.push(item.username) |
| | | }); |
| | | febs.post(ctx + 'user/password/reset/' + usernames.join(','), null, function () { |
| | | febs.alert.success('所选用户密码已重置为1234qwer'); |
| | | }); |
| | | } |
| | | } |
| | | if (name === 'export') { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | | params.pageSize = $view.find(".layui-laypage-limits option:selected").val(); |
| | | params.pageNum = $view.find(".layui-laypage-em").next().html(); |
| | | febs.download(ctx + 'user/excel', params, '用户信息表.xlsx'); |
| | | } |
| | | }, |
| | | options: [{ |
| | | name: 'add', |
| | | title: '新增用户', |
| | | perms: 'user:add' |
| | | }, { |
| | | name: 'delete', |
| | | title: '删除用户', |
| | | perms: 'user:delete' |
| | | }, { |
| | | name: 'reset', |
| | | title: '密码重置', |
| | | perms: 'user:password:reset' |
| | | }, { |
| | | name: 'export', |
| | | title: '导出Excel', |
| | | perms: 'user:export' |
| | | }] |
| | | }); |
| | | */ |
| | | |
| | | // 下拉框选择器 |
| | | treeSelect.render({ |
| | | elem: $view.find('#dept'), |
| | |
| | | table.on('tool(userTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | if (layEvent === 'detail') { |
| | | febs.modal.view('用户信息', 'system/user/detail/' + data.username, { |
| | | area: $(window).width() <= 750 ? '95%' : '660px' |
| | | }); |
| | | } |
| | | if (layEvent === 'del') { |
| | | febs.modal.confirm('删除用户', '确定删除该用户?', function () { |
| | | deleteUsers(data.userId); |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'edit') { |
| | | febs.modal.open('修改用户', 'system/user/update/' + data.username, { |
| | | area: $(window).width() <= 750 ? '90%' : '50%', |
| | | offset: '30px', |
| | | febs.modal.open('身份认证', 'modules/member/memberDetail/' + data.id, { |
| | | area: $(window).width() <= 1000 ? '100%' : '50%', |
| | | btn: ['提交', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#user-update').find('#submit').trigger('click'); |
| | |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | |
| | | // 查询按钮 |
| | | $query.on('click', function () { |
| | |
| | | id: 'userTable', |
| | | url: ctx + 'member/getList', |
| | | cols: [[ |
| | | {type: 'checkbox'}, |
| | | {field: 'phone', title: '手机号', minWidth: 165}, |
| | | {field: 'email', title: '邮箱', minWidth: 200}, |
| | | {field: 'inviteId', title: '邀请码UID'}, |
| | | {field: 'refererId', title: '上级邀请码UID'}, |
| | | {title: '账号类型', templet: '#account-type'}, |
| | | {title: '账号状态', templet: '#account-status'}, |
| | | {title: '审核状态', templet: '#certify-status'}, |
| | | {field: 'createTime', title: '注册时间', minWidth: 180}, |
| | | {field: 'phone', title: '手机号', minWidth: 100,align:'left'}, |
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'}, |
| | | {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'}, |
| | | {field: 'refererId', title: '上级邀请码UID', minWidth: 80,align:'center'}, |
| | | {title: '账号类型', templet: '#account-type', minWidth: 80,align:'center'}, |
| | | {title: '账号状态', templet: '#account-status', minWidth: 50,align:'center'}, |
| | | {title: '审核状态', templet: '#certify-status', minWidth: 80,align:'center'}, |
| | | {field: 'createTime', title: '注册时间', minWidth: 180,align:'center'}, |
| | | {title: '操作', toolbar: '#user-option', minWidth: 140, fixed : 'right'} |
| | | ]] |
| | | }); |
New file |
| | |
| | | <style>
|
| | | #user-update {
|
| | | padding: 20px 25px 25px 0;
|
| | | }
|
| | |
|
| | | #user-update .layui-treeSelect .ztree li a, .ztree li span {
|
| | | margin: 0 0 2px 3px !important;
|
| | | }
|
| | | #user-update #data-permission-tree-block {
|
| | | border: 1px solid #eee;
|
| | | border-radius: 2px;
|
| | | padding: 3px 0;
|
| | | }
|
| | | #user-add .layui-treeSelect .ztree li span.button.switch {
|
| | | top: 1px;
|
| | | left: 3px;
|
| | | }
|
| | |
|
| | | </style>
|
| | | <div class="layui-fluid" id="user-update">
|
| | | <form class="layui-form" action="" lay-filter="user-update-form">
|
| | | <div class="layui-form-item febs-hide">
|
| | | <label class="layui-form-label febs-form-item-require">用户id:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="id" data-th-value="${member.id}">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">真实姓名:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="realName" minlength="4" maxlength="10" data-th-id="${member.realName}"
|
| | | lay-verify="range|realName" autocomplete="off" class="layui-input" readonly>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">姓:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="firstName" minlength="4" maxlength="10" data-th-id="${member.firstName}"
|
| | | lay-verify="range|firstName" autocomplete="off" class="layui-input" readonly>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">名:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="secondName" minlength="4" maxlength="10" data-th-id="${member.secondName}"
|
| | | lay-verify="range|secondName" autocomplete="off" class="layui-input" readonly>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">国家:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="nation" minlength="4" maxlength="10" data-th-id="${member.nation}"
|
| | | lay-verify="range|nation" autocomplete="off" class="layui-input" readonly>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">身份证号:</label>
|
| | | <div class="layui-input-block">
|
| | | <input type="text" name="idcardNo" minlength="4" maxlength="10" data-th-id="${member.idcardNo}"
|
| | | lay-verify="range|idcardNo" autocomplete="off" class="layui-input" readonly>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">身份证正面:</label>
|
| | | <div class="layui-input-block">
|
| | | <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageFront}">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">身份证背面:</label>
|
| | | <div class="layui-input-block">
|
| | | <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageBack}">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item">
|
| | | <label class="layui-form-label febs-form-item-require">手持身份证:</label>
|
| | | <div class="layui-input-block">
|
| | | <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageInHand}">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-form-item febs-hide">
|
| | | <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button>
|
| | | </div>
|
| | | </form>
|
| | | </div>
|
| | |
|
| | | <script data-th-inline="javascript">
|
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
|
| | | var $ = layui.$,
|
| | | febs = layui.febs,
|
| | | layer = layui.layer,
|
| | | formSelects = layui.formSelects,
|
| | | treeSelect = layui.treeSelect,
|
| | | form = layui.form,
|
| | | eleTree = layui.eleTree,
|
| | | member = [[${member}]],
|
| | | $view = $('#user-update'),
|
| | | validate = layui.validate,
|
| | | _deptTree;
|
| | |
|
| | | form.render();
|
| | |
|
| | | initUserValue();
|
| | |
|
| | | formSelects.render();
|
| | |
|
| | | function initUserValue() {
|
| | | form.val("user-update-form", {
|
| | | "id": member.id,
|
| | | "realName": member.realName,
|
| | | "firstName": member.firstName,
|
| | | "secondName": member.secondName,
|
| | | "nation": member.nation,
|
| | | "idcardNo": member.idcardNo,
|
| | | "idcardImageFront": member.idcardImageFront,
|
| | | "idcardImageBack": member.idcardImageBack,
|
| | | "idcardImageInHand": member.idcardImageInHand
|
| | | });
|
| | | }
|
| | |
|
| | | form.on('submit(user-update-form-submit)', function (data) {
|
| | | febs.post(ctx + 'member/memberDetailConfirm', data.field, function () {
|
| | | layer.closeAll();
|
| | | febs.alert.success('认证成功');
|
| | | $('#febs-user').find('#query').click();
|
| | | });
|
| | | return false;
|
| | | });
|
| | | });
|
| | | </script> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="提币审核管理">
|
| | | <div class="layui-row febs-container">
|
| | | <div class="layui-col-md12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body febs-table-full">
|
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form">
|
| | | <div class="layui-row">
|
| | | <div class="layui-col-md10">
|
| | | <div class="layui-form-item">
|
| | | <div class="layui-inline">
|
| | | <div class="layui-input-inline">
|
| | | <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-inline">
|
| | | <label class="layui-form-label layui-form-label-sm">状态</label>
|
| | | <div class="layui-input-inline">
|
| | | <select name="statusOption">
|
| | | <option value="0"></option>
|
| | | <option value="1">等待审核</option>
|
| | | <option value="2">同意</option>
|
| | | <option value="3">拒绝</option>
|
| | | </select>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-inline">
|
| | | <label class="layui-form-label layui-form-label-sm">内部转账</label>
|
| | | <div class="layui-input-inline">
|
| | | <select name="isInsideOption">
|
| | | <option value=""></option>
|
| | | <option value="1">是</option>
|
| | | <option value="0">否</option>
|
| | | </select>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </form>
|
| | | <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <!-- 表格字段状态格式化 start -->
|
| | | <script type="text/html" id="isInside-table">
|
| | | {{#
|
| | | var isInside = {
|
| | | Y: {title: '是' , color: 'red'},
|
| | | N: {title: '否' , color: 'green'},
|
| | | }[d.isInside];
|
| | | }}
|
| | | <span class="layui-badge febs-tag-{{isInside.color}}">{{ isInside.title }}</span>
|
| | | </script>
|
| | | <script type="text/html" id="status-table">
|
| | | {{#
|
| | | var status = {
|
| | | 1: {title: '等待审核' , color: 'blue'},
|
| | | 2: {title: '同意', color: 'green'},
|
| | | 3: {title: '拒绝' , color: 'red'}
|
| | | }[d.status];
|
| | | }}
|
| | | <span class="layui-badge febs-tag-{{status.color}}">{{ status.title }}</span>
|
| | | </script>
|
| | |
|
| | | <!-- 表格字段状态格式化 start -->
|
| | |
|
| | | <!-- 表格操作栏 start -->
|
| | | <script type="text/html" id="user-option">
|
| | | <span shiro:lacksPermission="user:view,user:update,user:delete">
|
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限
|
| | | </span>
|
| | | <a lay-event="confirm" shiro:hasPermission="user:delete">确认</a>
|
| | | <i class="layui-icon febs-edit-area febs-blue"></i>
|
| | | <a lay-event="cancel" shiro:hasPermission="user:delete">拒绝</a>
|
| | | </script>
|
| | | <!-- 表格操作栏 end -->
|
| | | <script data-th-inline="none" type="text/javascript">
|
| | | // 引入组件并初始化
|
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
|
| | | var $ = layui.jquery,
|
| | | laydate = layui.laydate,
|
| | | febs = layui.febs,
|
| | | form = layui.form,
|
| | | table = layui.table,
|
| | | treeSelect = layui.treeSelect,
|
| | | dropdown = layui.dropdown,
|
| | | $view = $('#febs-user'),
|
| | | $query = $view.find('#query'),
|
| | | $reset = $view.find('#reset'),
|
| | | $searchForm = $view.find('form'),
|
| | | sortObject = {field: 'createTime', type: null},
|
| | | tableIns;
|
| | |
|
| | | form.render();
|
| | |
|
| | | // 表格初始化
|
| | | initTable();
|
| | |
|
| | | // 下拉框选择器
|
| | | treeSelect.render({
|
| | | elem: $view.find('#dept'),
|
| | | type: 'get',
|
| | | data: ctx + 'dept/select/tree',
|
| | | placeholder: '请选择',
|
| | | search: false
|
| | | });
|
| | |
|
| | | // 初始化表格操作栏各个按钮功能
|
| | | table.on('tool(userTable)', function (obj) {
|
| | | var data = obj.data,
|
| | | layEvent = obj.event;
|
| | | if (layEvent === 'confirm') {
|
| | | febs.modal.confirm('确认', '您是否要进行确认提币操作?', function () {
|
| | | confirmUsers(data.id);
|
| | | });
|
| | | }
|
| | | if (layEvent === 'cancel') {
|
| | | febs.modal.confirm('系统取消', '您是否要进行取消操作?', function () {
|
| | | cancelUsers(data.id);
|
| | | });
|
| | | }
|
| | | });
|
| | | |
| | | function confirmUsers(id) {
|
| | | febs.get(ctx + 'member/memberWithdrawCoinConfirm/' + id, null, function () {
|
| | | febs.alert.success('提币成功');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | | function cancelUsers(id) {
|
| | | febs.get(ctx + 'member/memberWithdrawCoinCancel/' + id, null, function () {
|
| | | febs.alert.success('取消成功');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | |
|
| | | // 查询按钮
|
| | | $query.on('click', function () {
|
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
|
| | | tableIns.reload({where: params, page: {curr: 1}});
|
| | | });
|
| | |
|
| | | // 刷新按钮
|
| | | $reset.on('click', function () {
|
| | | $searchForm[0].reset();
|
| | | treeSelect.revokeNode('dept');
|
| | | sortObject.type = 'null';
|
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
|
| | | });
|
| | |
|
| | | function initTable() {
|
| | | tableIns = febs.table.init({
|
| | | elem: $view.find('table'),
|
| | | id: 'userTable',
|
| | | url: ctx + 'member/memberWithdrawCoin',
|
| | | cols: [[
|
| | | {field: 'phone', title: '手机号码', minWidth: 120,align:'left'},
|
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
|
| | | {field: 'memberId', title: '邀请码UID', minWidth: 100,align:'center'},
|
| | | {field: 'symbol', title: '币种', minWidth: 100,align:'center'},
|
| | | {field: 'amount', title: '提币数量', minWidth: 120,align:'center'},
|
| | | {field: 'address', title: '提币地址', minWidth: 300,align:'center'},
|
| | | {field: 'feeAmount', title: '提币手续费', minWidth: 100,align:'center'},
|
| | | {field: 'createTime', title: '提币时间', minWidth: 180,align:'center'},
|
| | | {title: '内部转账', templet: '#isInside-table', minWidth: 100,align:'center'},
|
| | | {title: '状态', templet: '#status-table', minWidth: 100,align:'center'},
|
| | | {title: '操作', toolbar: '#user-option', minWidth: 150, fixed : 'right'}
|
| | | ]]
|
| | | });
|
| | | }
|
| | |
|
| | | // 获取查询参数
|
| | | function getQueryParams() {
|
| | | return {
|
| | | account: $searchForm.find('input[name="account"]').val().trim(),
|
| | | status: $searchForm.find("select[name='statusOption']").val(),
|
| | | isInside: $searchForm.find("select[name='isInsideOption']").val()
|
| | | };
|
| | | }
|
| | | |
| | | })
|
| | | </script> |