package com.stylefeng.guns.modular.account.controller;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.modular.account.req.UserWithdrawalReq;
|
import com.stylefeng.guns.modular.account.server.ElectronicLedgerService;
|
import com.stylefeng.guns.modular.account.server.UserBankAccountService;
|
import com.stylefeng.guns.modular.account.server.UserWithdrawalService;
|
import com.stylefeng.guns.modular.system.model.UserInfo;
|
import com.stylefeng.guns.modular.system.model.UserWithdrawal;
|
import com.stylefeng.guns.modular.system.service.IBankCardService;
|
import com.stylefeng.guns.modular.system.service.IUserInfoService;
|
import com.stylefeng.guns.modular.system.service.IUserService;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.UnsupportedEncodingException;
|
import java.math.BigDecimal;
|
import java.util.List;
|
import java.util.Objects;
|
|
@Api(tags = "用户进件(提现操作)/创建电子账簿")
|
@RestController
|
@Slf4j
|
@RequestMapping("/api/electronicLedger")
|
public class ElectronicLedgerController {
|
@Autowired
|
private ElectronicLedgerService electronicLedgerService;
|
|
@Resource
|
private UserWithdrawalService userWithdrawalService;
|
|
@Resource
|
private UserBankAccountService userBankAccountService;
|
@Resource
|
private IUserService userService;
|
@Autowired
|
private IBankCardService bankCardService;
|
|
@ResponseBody
|
@RequestMapping(value = "/addElectronicLedger", method = RequestMethod.POST)
|
@ApiOperation(value = "用户进件(提现操作)", tags = {"用户端-用户进件(提现操作)"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil addElectronicLedger( UserWithdrawalReq userWithdrawalReq,HttpServletRequest request) throws UnsupportedEncodingException {
|
// System.out.println("进件信息:"+userWithdrawalReq);
|
// // TODO 用户有无提现密码,无则设置开户密码
|
// if(StringUtils.hasLength(userWithdrawalReq.getBankName())){
|
// userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #40;","("));
|
// userWithdrawalReq.setBankName(userWithdrawalReq.getBankName().replace("& #41;",")"));
|
//
|
// }
|
//
|
//
|
//
|
//// userWithdrawalReq.setOpenAccountName(new String(userWithdrawalReq.getOpenAccountName().getBytes("ISO-8859-1"),"UTF-8"));
|
//// userWithdrawalReq.setBankName(new String(userWithdrawalReq.getBankName().getBytes("ISO-8859-1"),"UTF-8"));
|
//// userWithdrawalReq.setCertificateName(new String(userWithdrawalReq.getCertificateName().getBytes("ISO-8859-1"),"UTF-8"));
|
//// userWithdrawalReq.setLicenceIssuingAuthority(new String(userWithdrawalReq.getLicenceIssuingAuthority().getBytes("ISO-8859-1"),"UTF-8"));
|
// System.out.println("编码后:"+userWithdrawalReq);
|
//
|
//
|
//
|
// userWithdrawalReq.setOutRequestNo(ToolUtil.getRandomString(32));
|
// UserWithdrawal userWithdrawal = new UserWithdrawal();
|
// BeanUtils.copyProperties(userWithdrawalReq,userWithdrawal);
|
// try {
|
// String password=userWithdrawal.getTransactionAuthorizationCode();
|
// Integer id = userInfoService.getUserIdFormRedis(request);
|
// if(null == id){
|
// return ResultUtil.tokenErr();
|
// }
|
// System.out.println("验证码:"+userWithdrawalReq.getCode());
|
// userWithdrawalReq.setCopy1(userWithdrawalReq.getCopy1().replaceAll(" ","+"));
|
// userWithdrawalReq.setCopy2(userWithdrawalReq.getCopy2().replaceAll(" ","+"));
|
// // 用户进件
|
// CusApplicationResp cusApplicationResp = CusApplicationExample.create(userWithdrawalReq);
|
// System.out.println("进件状态:"+cusApplicationResp);
|
// if("succeeded".equals(cusApplicationResp.getApplicationStatus())) {
|
// userWithdrawal.setTransactionAuthorizationCode(Base64Util.encode(password));
|
// userWithdrawal.setUserType(1);
|
// userWithdrawal.setUserId(id);
|
// userWithdrawal.setImgUrl(userWithdrawalReq.getIdCardFrontPicture());
|
// userWithdrawal.setImgUrlOne(userWithdrawalReq.getIdCardReversePicture());
|
// userWithdrawal.setIdCardFrontPicture(userWithdrawalReq.getCopy1());
|
// userWithdrawal.setIdCardReversePicture(userWithdrawalReq.getCopy2());
|
//
|
// userWithdrawalService.insert(userWithdrawal);
|
// UserWithdrawal userWithdrawal1 = new UserWithdrawal();
|
// userWithdrawal1.setId(userWithdrawal.getId());
|
// BeanUtils.copyProperties(cusApplicationResp, userWithdrawal1);
|
// userWithdrawalService.updateById(userWithdrawal1);
|
// // 开通电子账簿
|
// BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
|
// balanceAcctReq.setCusId(userWithdrawal1.getCusId());
|
// balanceAcctReq.setOutRequestNo(ToolUtil.getRandomString(32));
|
// balanceAcctReq.setPassword(password);
|
// ElectronicLedger electronicLedger = new ElectronicLedger();
|
// electronicLedger.setBalanceAcctId(cusApplicationResp.getBalanceAcctId());
|
// electronicLedger.setCreateTime(new Date());
|
// electronicLedger.setCusId(cusApplicationResp.getCusId());
|
// electronicLedger.setOutRequestNo(cusApplicationResp.getOutRequestNo());
|
// electronicLedger.setUserId(userWithdrawal.getUserId());
|
// electronicLedger.setPassword(SecureUtil.md5(password));
|
// electronicLedger.setRelAcctNo(cusApplicationResp.getRelAcctNo());
|
// electronicLedger.setUserType(1);
|
// electronicLedgerService.insert(electronicLedger);
|
// // 绑卡 存卡
|
// UserBankAccount userBankAccount = new UserBankAccount();
|
// userBankAccount.setBankAcctType("1");
|
// userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
|
// userBankAccount.setUserType(1);
|
// userBankAccount.setCreateTime(new Date());
|
// userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
|
// // TODO 页面没有输入地方 需要查询
|
// userBankAccount.setBankCode(userWithdrawal.getBankCode());
|
// // TODO 行联号
|
// userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
|
// userBankAccount.setPhone(userWithdrawal.getPhone());
|
//
|
// userBankAccount.setUserId(userWithdrawal.getUserId());
|
// userBankAccount.setBankName(userWithdrawal.getBankName());
|
// userBankAccount.setOpenAccountName(userWithdrawalReq.getOpenAccountName());
|
// int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
|
// .eq("bankCardCode", userWithdrawalReq.getBankCardCode()).eq("phone",userWithdrawalReq.getPhone()).eq("status",1));
|
// if(count<1){
|
// userBankAccountService.insert(userBankAccount);
|
// }
|
// BankCard bankCard = new BankCard();
|
// bankCard.setDriverId(userWithdrawal.getUserId());
|
// bankCard.setBankAcctType("1");
|
// bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
|
// bankCard.setInsertTime(new Date());
|
// bankCard.setCode(userWithdrawal.getBankCardCode());
|
// bankCard.setBankCode(userWithdrawal.getBankCode());
|
// bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
|
// bankCard.setBank(userWithdrawal.getBankName());
|
// bankCard.setPhone(userWithdrawal.getPhone());
|
// bankCard.setName(userWithdrawal.getOpenAccountName());
|
// bankCard.setIfDefault(true);
|
// bankCardService.insert(bankCard);
|
//
|
//
|
// UserBankAccountReq userBankAccountReq = new UserBankAccountReq();
|
// BeanUtils.copyProperties(userBankAccount, userBankAccountReq);
|
// System.err.println(userWithdrawalReq.getCode());
|
// userBankAccountReq.setCusId(cusApplicationResp.getCusId());
|
// userBankAccountReq.setCode(userWithdrawalReq.getCode());
|
// return ResultUtil.success();
|
// }
|
// if("failed".equals(cusApplicationResp.getApplicationStatus())){
|
// List<FailureMsgParam> failureMsgs = cusApplicationResp.getFailureMsgs();
|
// if(failureMsgs != null && failureMsgs.size()>0){
|
// return ResultUtil.error(failureMsgs.get(0).getReason());
|
// }
|
// }
|
// return ResultUtil.success();
|
// }catch (UpyztException e){
|
// if(e.getCode().equals("100101")){
|
// return ResultUtil.error(e.getIssue());
|
// }
|
// e.printStackTrace();
|
// String message = e.getMessage();
|
// return ResultUtil.error(message);
|
// }catch (Exception e){
|
// String message = e.getMessage();
|
// return ResultUtil.error(message);
|
// }
|
return ResultUtil.success();
|
}
|
|
|
@ResponseBody
|
@RequestMapping(value = "/updateElectronicLedgerInfo", method = RequestMethod.POST)
|
@ApiOperation(value = "用户修改进件信息", tags = {"用户端-用户修改进件信息"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil updateElectronicLedgerInfo(String idCardFrontPicture,
|
String idCardReversePicture,
|
String certificateCode,
|
String certificateName,
|
String certificateExpireTime,
|
String openAccountName,
|
String bankCardCode,
|
String phone,
|
String bankBranchCode,
|
String bankName,
|
String copy1,
|
String copy2,
|
String code,
|
String bankCode,
|
HttpServletRequest request) {
|
// try {
|
// Integer driverId = userInfoService.getUserIdFormRedis(request);
|
// if(null == driverId){
|
// return ResultUtil.tokenErr();
|
// }
|
// UserInfo userInfo = userInfoService.selectById(driverId);
|
// UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
|
// .eq("phone", userInfo.getPhone())
|
// .last("LIMIT 1"));
|
// if(userWithdrawal1==null|| userWithdrawal1.getCusId()==null){
|
// return ResultUtil.runErr();
|
// }
|
// UserWithdrawal userWithdrawal = new UserWithdrawal();
|
// userWithdrawal.setIdCardFrontPicture(copy1);
|
// userWithdrawal.setIdCardReversePicture(copy2);
|
// userWithdrawal.setCertificateCode(certificateCode);
|
// userWithdrawal.setCertificateName(certificateName);
|
// userWithdrawal.setCertificateExpireTime(certificateExpireTime);
|
// userWithdrawal.setOpenAccountName(openAccountName);
|
// userWithdrawal.setBankCardCode(bankCardCode);
|
// userWithdrawal.setPhone(phone);
|
// userWithdrawal.setCusId(userWithdrawal1.getCusId());
|
// userWithdrawal.setBankBranchCode(bankBranchCode);
|
// userWithdrawal.setBankName(bankName);
|
// userWithdrawal.setCode(code);
|
// userWithdrawal.setBankCode(bankCode);
|
// CusApplicationResp renew = CusApplicationExample.renew(userWithdrawal);
|
// log.info("修改个人用户进件信息返回:{}",renew);
|
// if("succeeded".equals(renew.getApplicationStatus())){
|
// userWithdrawal1.setIdCardFrontPicture(copy1);
|
// userWithdrawal1.setIdCardReversePicture(copy2);
|
// userWithdrawal1.setCertificateCode(certificateCode);
|
// userWithdrawal1.setCertificateName(certificateName);
|
// userWithdrawal1.setCertificateExpireTime(certificateExpireTime);
|
// userWithdrawal1.setOpenAccountName(openAccountName);
|
// userWithdrawal1.setBankCardCode(bankCardCode);
|
// userWithdrawal1.setPhone(phone);
|
// userWithdrawal1.setBankName(bankName);
|
// userWithdrawal1.setImgUrl(idCardFrontPicture);
|
// userWithdrawal1.setImgUrlOne(idCardReversePicture);
|
// userWithdrawalService.updateById(userWithdrawal1);
|
//
|
// int count = userBankAccountService.selectCount(new EntityWrapper<UserBankAccount>()
|
// .eq("bankCardCode", bankCardCode).eq("userId",driverId).eq("userType",1).eq("status",1));
|
// System.out.println(count);
|
// if(count<1){
|
// UserBankAccount userBankAccount = new UserBankAccount();
|
// userBankAccount.setBankAcctType("1");
|
// userBankAccount.setOutRequestNo(ToolUtil.getRandomString(32));
|
// userBankAccount.setUserType(1);
|
// userBankAccount.setCreateTime(new Date());
|
// userBankAccount.setBankCardCode(userWithdrawal.getBankCardCode());
|
// userBankAccount.setBankCode(userWithdrawal.getBankCode());
|
// userBankAccount.setBankBranchCode(userWithdrawal.getBankBranchCode());
|
// userBankAccount.setPhone(userWithdrawal.getPhone());
|
//
|
// userBankAccount.setUserId(driverId);
|
// userBankAccount.setBankName(userWithdrawal.getBankName());
|
// userBankAccountService.insert(userBankAccount);
|
//
|
//
|
// BankCard bankCard = new BankCard();
|
// bankCard.setDriverId(userWithdrawal.getUserId());
|
// bankCard.setBankAcctType("1");
|
// bankCard.setOutRequestNo(ToolUtil.getRandomString(32));
|
// bankCard.setInsertTime(new Date());
|
// bankCard.setCode(userWithdrawal.getBankCardCode());
|
// bankCard.setBankCode(userWithdrawal.getBankCode());
|
// bankCard.setBankBranchCode(userWithdrawal.getBankBranchCode());
|
// bankCard.setBank(userWithdrawal.getBankName());
|
// bankCard.setPhone(userWithdrawal.getPhone());
|
// bankCard.setName(userWithdrawal.getOpenAccountName());
|
// bankCard.setIfDefault(true);
|
// bankCardService.insert(bankCard);
|
// }
|
// return ResultUtil.success();
|
// }
|
// if("failed".equals(renew.getApplicationStatus())){
|
// List<FailureMsgParam> failureMsgs = renew.getFailureMsgs();
|
// if(failureMsgs != null && failureMsgs.size()>0){
|
// return ResultUtil.error(failureMsgs.get(0).getReason());
|
// }
|
// }
|
// return ResultUtil.success();
|
// }catch (UpyztException e) {
|
// e.printStackTrace();
|
// String message = e.getMessage();
|
// return ResultUtil.error(message);
|
// }catch (Exception e){
|
// e.printStackTrace();
|
// return ResultUtil.runErr();
|
// }
|
return ResultUtil.success();
|
}
|
|
|
@Autowired
|
private IUserInfoService userInfoService;
|
|
@ResponseBody
|
@RequestMapping(value = "/isElectronicLedger", method = RequestMethod.POST)
|
@ApiOperation(value = "用户是否需要创建电子账簿", tags = {"用户端-用户是否需要创建电子账簿"}, notes = "")
|
@ApiImplicitParams({
|
})
|
public ResultUtil addElectronicLedger(HttpServletRequest request){
|
try {
|
Integer id = userInfoService.getUserIdFormRedis(request);
|
if(null == id){
|
return ResultUtil.tokenErr();
|
}
|
UserInfo userInfo = userInfoService.selectById(id);
|
List<UserWithdrawal> userId = userWithdrawalService.selectList(new EntityWrapper<UserWithdrawal>().eq("phone", userInfo.getPhone()));
|
if(userId.size()==0){
|
return ResultUtil.success("yes");
|
}
|
return ResultUtil.success("no");
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
@ResponseBody
|
@RequestMapping(value = "/getUserInfo", method = RequestMethod.POST)
|
@ApiOperation(value = "用户进件信息", tags = {"用户端-用户进件信息"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil getUserInfo(HttpServletRequest request){
|
try {
|
Integer id = userInfoService.getUserIdFormRedis(request);
|
if(null == id){
|
return ResultUtil.tokenErr();
|
}
|
UserInfo userInfo = userInfoService.selectById(id);
|
UserWithdrawal userWithdrawal = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>().eq("phone", userInfo.getPhone()));
|
return ResultUtil.success(userWithdrawal==null?new UserWithdrawal():userWithdrawal);
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
|
@ResponseBody
|
@RequestMapping(value = "/withdrawDeposit", method = RequestMethod.POST)
|
@ApiOperation(value = "用户提现", tags = {"用户端-用户提现"}, notes = "amount-提现金额,password-交易授权码")
|
@ApiImplicitParams({
|
})
|
public ResultUtil withdrawDeposit(Integer amount,String bankAcctNo){
|
|
UserInfo user = userInfoService.selectById(Objects.requireNonNull(ShiroKit.getUser()).getId());
|
UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
|
.eq("phone", user.getPhone())
|
.last("LIMIT 1"));
|
Boolean b = userWithdrawalService.withdrawDeposit(amount,bankAcctNo,driverWith.getTransactionAuthorizationCode());
|
if(b){
|
return ResultUtil.success();
|
}else {
|
return ResultUtil.runErr();
|
}
|
}
|
|
|
|
@ResponseBody
|
@RequestMapping(value = "/withdrawDepositGetMoney", method = RequestMethod.POST)
|
@ApiOperation(value = "用户获取可提现余额", tags = {"用户端-用户获取可提现余额"}, notes = "")
|
@ApiImplicitParams({
|
})
|
public ResultUtil withdrawDepositGetMoney(HttpServletRequest request) throws Exception {
|
|
UserInfo user = userInfoService.selectById(userInfoService.getUserIdFormRedis(request));
|
UserWithdrawal driverWith = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
|
.eq("phone", user.getPhone())
|
.last("LIMIT 1"));
|
if (driverWith == null) {
|
return ResultUtil.error("请先进行进件操作");
|
}
|
// try {
|
// BalanceAcctReq balanceAcctReq = new BalanceAcctReq();
|
// balanceAcctReq.setCusId(driverWith.getCusId());
|
// BalanceAcctListResp balanceAcctListResp = BalanceAcctExample.retrieveByUserId(balanceAcctReq);
|
// List<BalanceAcctItem> balanceAccts = balanceAcctListResp.getBalanceAccts();
|
// for (BalanceAcctItem balanceAcct : balanceAccts) {
|
// if(balanceAcct.getBalanceAcctId().equals(driverWith.getBalanceAcctId())){
|
// if(balanceAcct.getSettledAmount().doubleValue()==0){
|
// return ResultUtil.success(new BigDecimal(0));
|
// }
|
// return ResultUtil.success(new BigDecimal(balanceAcct.getSettledAmount()).divide(new BigDecimal(100)));
|
// }
|
// }
|
// } catch (UpyztException e) {
|
// e.printStackTrace();
|
// System.out.println("用户获取可提现余额:"+e);
|
// return ResultUtil.error(e.getMessage());
|
// }
|
return ResultUtil.success(new BigDecimal(0));
|
}
|
|
|
|
@ResponseBody
|
@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)
|
@ApiOperation(value = "进件上传图片", tags = {"用户端-进件上传图片"}, notes = "")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
|
})
|
public ResultUtil uploadImg(MultipartFile multipartFile,HttpServletRequest request){
|
try {
|
// MediaResp mediaResp = MediaExample.uploadImage(multipartFile);
|
// String pictureName = OssUploadUtil.ossUpload(request, multipartFile);
|
// String mediaId = mediaResp.getMediaId();
|
// userService.insertImg(mediaId,pictureName);
|
// return ResultUtil.success(mediaId);
|
return ResultUtil.success();
|
}catch (Exception e){
|
e.printStackTrace();
|
return ResultUtil.runErr();
|
}
|
}
|
|
}
|