|  |  |  | 
|---|
|  |  |  | package com.xcong.excoin.modules.home.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import javax.validation.Valid; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import org.apache.commons.codec.digest.Md5Crypt; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | 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.RequestBody; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMethod; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestParam; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RestController; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.druid.util.StringUtils; | 
|---|
|  |  |  | import com.xcong.excoin.common.annotations.UserAuth; | 
|---|
|  |  |  | import com.xcong.excoin.common.LoginUserUtils; | 
|---|
|  |  |  | import com.xcong.excoin.common.response.Result; | 
|---|
|  |  |  | import com.xcong.excoin.modules.home.dao.MemberQuickBuySaleDao; | 
|---|
|  |  |  | import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleCommitDto; | 
|---|
|  |  |  | import com.xcong.excoin.modules.home.dto.MemberQuickBuySaleDto; | 
|---|
|  |  |  | import com.xcong.excoin.modules.home.entity.MemberQuickBuySaleEntity; | 
|---|
|  |  |  | import com.xcong.excoin.modules.home.service.MemberQuickBuySaleService; | 
|---|
|  |  |  | import com.xcong.excoin.modules.member.entity.MemberEntity; | 
|---|
|  |  |  | import com.xcong.excoin.modules.member.service.MemberService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.hutool.crypto.SecureUtil; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | import io.swagger.annotations.ApiImplicitParam; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @RequestMapping(value = "/api/quick") | 
|---|
|  |  |  | @Api(value = "USDT快捷买卖类", tags = "USDT快捷买卖类") | 
|---|
|  |  |  | @Api(value = "MemberQuickBuySaleController", tags = "USDT快捷买卖类") | 
|---|
|  |  |  | public class MemberQuickBuySaleController { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | MemberQuickBuySaleDao memberQuickBuySaleDao; | 
|---|
|  |  |  | MemberQuickBuySaleService memberQuickBuySaleService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | MemberService memberService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "USDT快速充值", notes = "USDT快速充值") | 
|---|
|  |  |  | @ApiOperation(value = "recharge", notes = "USDT快速充值") | 
|---|
|  |  |  | @RequestMapping(value = "/recharge", method = RequestMethod.POST) | 
|---|
|  |  |  | public Result recharge(@RequestBody MemberQuickBuySaleDto memberQuickBuySaleDto, | 
|---|
|  |  |  | @UserAuth MemberEntity memberEntity) { | 
|---|
|  |  |  | public Result recharge(@RequestBody @Valid MemberQuickBuySaleDto memberQuickBuySaleDto) { | 
|---|
|  |  |  | log.info("入参----->{}", memberQuickBuySaleDto); | 
|---|
|  |  |  | //获取用户ID | 
|---|
|  |  |  | MemberEntity member = LoginUserUtils.getAppLoginUser(); | 
|---|
|  |  |  | log.info("查询到的会员----->{}", member); | 
|---|
|  |  |  | // 验证是否实名认证 | 
|---|
|  |  |  | if (MemberEntity.CERTIFY_STATUS_Y.equals(memberEntity.getCertifyStatus())) { | 
|---|
|  |  |  | return Result.fail("请先实名认证"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) { | 
|---|
|  |  |  | //   return Result.fail("请先实名认证"); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 验证支付密码 | 
|---|
|  |  |  | String tradePassword = memberEntity.getTradePassword(); | 
|---|
|  |  |  | String tradePassword = member.getTradePassword(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword); | 
|---|
|  |  |  | if (StringUtils.isEmpty(tradePassword)) { | 
|---|
|  |  |  | return Result.fail("请先配置交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isEmpty(tradePasswordWeb)) { | 
|---|
|  |  |  | return Result.fail("请输入交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // System.out.println("交易密码:"+MD5.GetMD5Code(tradePasswordWeb)+" tradePassword = | 
|---|
|  |  |  | // "+tradePassword); | 
|---|
|  |  |  | // 验证交易密码 | 
|---|
|  |  |  | if (!Md5Crypt.apr1Crypt(tradePasswordWeb).equals(tradePassword)) { | 
|---|
|  |  |  | if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) { | 
|---|
|  |  |  | return Result.fail("请输入正确的交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 生成订单号 | 
|---|
|  |  |  | Long timestamp = System.currentTimeMillis(); | 
|---|
|  |  |  | int random = (int) (Math.random() * 10); | 
|---|
|  |  |  | String chargeNo = String.valueOf(timestamp).substring(2) + random; | 
|---|
|  |  |  | // 插入订单表 | 
|---|
|  |  |  | MemberQuickBuySaleEntity memberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setOrderStatus(memberQuickBuySaleEntity.CHARGE_STATUS_CREATE); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setMemberId(memberEntity.getId()); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setCreateTime(new Date()); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setOrderNo(chargeNo); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setOrderType("B"); | 
|---|
|  |  |  | // 支付码 ID+四位随机数 | 
|---|
|  |  |  | int ran = (int) (Math.random() * 10000000); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setPaymentCode(ran + ""); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setPaymentAccount(memberQuickBuySaleDto.getPaymentAccount()); | 
|---|
|  |  |  | memberQuickBuySaleEntity.setPaymentName(memberQuickBuySaleDto.getPaymentName()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | System.out.println("实体对象:"+memberQuickBuySaleEntity); | 
|---|
|  |  |  | memberQuickBuySaleDao.insert(memberQuickBuySaleEntity); | 
|---|
|  |  |  | // 返回前台付款方式 | 
|---|
|  |  |  | //      memberChargeUsdt.setReceiveMethod(payMethodList.get(index)); | 
|---|
|  |  |  | return Result.ok("购买成功,请及时付款"); | 
|---|
|  |  |  | return memberQuickBuySaleService.recharge(member, memberQuickBuySaleDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "USDT充值支付确认", notes = "USDT充值支付确认") | 
|---|
|  |  |  | @ApiImplicitParam(name = "token", value = "token", required = false, dataType = "String", paramType = "body") | 
|---|
|  |  |  | @RequestMapping(value = "/commitPay", method = RequestMethod.GET) | 
|---|
|  |  |  | public Result commitPay(@PathVariable(value = "id") Long id) { | 
|---|
|  |  |  | // 用户提交支付确认 将状态改为付款中 | 
|---|
|  |  |  | MemberQuickBuySaleEntity MemberQuickBuySaleEntity = new MemberQuickBuySaleEntity(); | 
|---|
|  |  |  | MemberQuickBuySaleEntity.setId(id); | 
|---|
|  |  |  | MemberQuickBuySaleEntity.setOrderStatus(MemberQuickBuySaleEntity.CHARGE_STATUS_PAID); | 
|---|
|  |  |  | memberQuickBuySaleDao.updateById(MemberQuickBuySaleEntity); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // TODO dingtalk | 
|---|
|  |  |  | @ApiOperation(value = "commitPay", notes = "USDT充值支付确认") | 
|---|
|  |  |  | @RequestMapping(value = "/commitPay", method = RequestMethod.POST) | 
|---|
|  |  |  | public Result commitPay(@RequestBody @Valid MemberQuickBuySaleCommitDto memberQuickBuySaleCommitDto) { | 
|---|
|  |  |  | return memberQuickBuySaleService.commitPay(memberQuickBuySaleCommitDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "selectById", notes = "查询单个买卖记录") | 
|---|
|  |  |  | @GetMapping(value = "/selectById/{id}") | 
|---|
|  |  |  | public Result selectById(@PathVariable(value = "id") Long id) { | 
|---|
|  |  |  | return memberQuickBuySaleService.selectById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "selectAll", notes = "查询用户所有的买卖记录") | 
|---|
|  |  |  | @GetMapping(value = "/selectAll") | 
|---|
|  |  |  | public Result selectAll(@RequestParam(value = "type") String type) { | 
|---|
|  |  |  | return memberQuickBuySaleService.selectAll(type); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "cancel", notes = "充值撤销") | 
|---|
|  |  |  | @GetMapping(value = "/cancel") | 
|---|
|  |  |  | public Result cancel(@RequestParam(value = "id") Long id) { | 
|---|
|  |  |  | return memberQuickBuySaleService.cancelRecharge(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "sell", notes = "USDT快速卖出") | 
|---|
|  |  |  | @RequestMapping(value = "/sell", method = RequestMethod.POST) | 
|---|
|  |  |  | public Result sell(@RequestBody @Valid MemberQuickBuySaleDto memberQuickBuySaleDto) { | 
|---|
|  |  |  | // 获取当前登录用户 | 
|---|
|  |  |  | Long memberId = LoginUserUtils.getAppLoginUser().getId(); | 
|---|
|  |  |  | MemberEntity member = memberService.getById(memberId); | 
|---|
|  |  |  | if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) { | 
|---|
|  |  |  | return Result.fail("请先实名认证"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String tradePasswordWeb = memberQuickBuySaleDto.getTradePassword(); | 
|---|
|  |  |  | // 验证支付密码 | 
|---|
|  |  |  | String tradePassword = member.getTradePassword(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return Result.ok("确认成功"); | 
|---|
|  |  |  | log.info("入参交易密码{},用户设置的交易密码{}", tradePasswordWeb,tradePassword); | 
|---|
|  |  |  | if (StringUtils.isEmpty(tradePassword)) { | 
|---|
|  |  |  | return Result.fail("请先配置交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isEmpty(tradePasswordWeb)) { | 
|---|
|  |  |  | return Result.fail("请输入交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 验证交易密码 | 
|---|
|  |  |  | if (!tradePassword.equals(SecureUtil.md5(tradePasswordWeb))) { | 
|---|
|  |  |  | return Result.fail("请输入正确的交易密码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return memberQuickBuySaleService.sell(member,memberQuickBuySaleDto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ApiOperation(value = "cancelSell", notes = "提现撤销") | 
|---|
|  |  |  | @GetMapping(value = "/cancelSell") | 
|---|
|  |  |  | public Result cancelSell(@RequestParam(value = "id") Long id) { | 
|---|
|  |  |  | return memberQuickBuySaleService.cancelSell(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|