| | |
| | | import com.ruoyi.account.mapper.AppUserMapper; |
| | | import com.ruoyi.account.service.*; |
| | | import com.ruoyi.account.util.ObsUploadUtil; |
| | | import com.ruoyi.account.util.UUIDUtil; |
| | | import com.ruoyi.account.util.weChat.EnvVersion; |
| | | import com.ruoyi.account.util.weChat.WeChatUtil; |
| | | import com.ruoyi.account.vo.*; |
| | | import com.ruoyi.common.core.constant.CacheConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.poi.ExcelUtil; |
| | | import com.ruoyi.common.core.web.controller.BaseController; |
| | |
| | | import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; |
| | | import com.ruoyi.order.model.Order; |
| | | import com.ruoyi.other.api.domain.Shop; |
| | | import com.ruoyi.other.api.domain.ShopBalanceStatement; |
| | | import com.ruoyi.other.api.domain.ShopWithdraw; |
| | | import com.ruoyi.other.api.feignClient.ShopClient; |
| | | import com.ruoyi.system.api.domain.SysConfig; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.net.URLDecoder; |
| | | import java.net.URLEncoder; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.temporal.ChronoUnit; |
| | |
| | | @Resource |
| | | private AppUserService appUserService; |
| | | @Resource |
| | | private IUserWithdrawService userWithdrawService; |
| | | @Resource |
| | | private UserPointService userPointService; |
| | | @Resource |
| | | private AppUserBankService appUserBankService; |
| | | @Resource |
| | | private AppUserMapper appUserMapper; |
| | | @Resource |
| | | private ShopClient shopClient; |
| | |
| | | @Value("${file.upload.location}") |
| | | private String filePath; |
| | | |
| | | @PostMapping("/verifyBankInfo") |
| | | @ApiOperation(value = "用户提现前校验银行卡信息") |
| | | public R<Boolean> mobileLogin() { |
| | | LoginUser loginUserApplet = tokenService.getLoginUserApplet(); |
| | | AppUser appUser = appUserService.getById(loginUserApplet.getUserid()); |
| | | AppUserBank bank = appUserBankService.lambdaQuery().eq(AppUserBank::getAppUserId, appUser.getId()).last("limit 1") |
| | | .one(); |
| | | if (bank == null){ |
| | | return R.ok(false); |
| | | }else{ |
| | | return R.ok(true); |
| | | } |
| | | } |
| | | @ApiOperation(value = "提现申请") |
| | | @GetMapping("/withdrawalApplication") |
| | | @ResponseBody |
| | | public R withdrawalApplication(@ApiParam("提现金额") @RequestParam BigDecimal money) { |
| | | LoginUser loginUser = tokenService.getLoginUserApplet(); |
| | | SysConfig data = sysConfigClient.getInfo(8L).getData(); |
| | | AppUser appUser = appUserService.getById(loginUser.getUserid()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); |
| | | money=money.setScale(2, BigDecimal.ROUND_HALF_DOWN); |
| | | if (money.compareTo(BigDecimal.ZERO)==0){ |
| | | throw new ServiceException("提现金额必须大于零"); |
| | | } |
| | | Integer rate = Integer.valueOf(data.getConfigValue()); |
| | | BigDecimal availablePoint = new BigDecimal(appUser.getAvailablePoint()); |
| | | BigDecimal unMoney = availablePoint.divide(BigDecimal.valueOf(rate), 2, RoundingMode.HALF_DOWN); |
| | | if (unMoney.compareTo( money)<0){ |
| | | throw new ServiceException("提现金额不能大于可提现金额,当前可提现金额为:"+unMoney); |
| | | } |
| | | AppUserBank bank = appUserBankService.lambdaQuery().eq(AppUserBank::getAppUserId, appUser.getId()).last("limit 1") |
| | | .one(); |
| | | if(bank==null){ |
| | | throw new ServiceException("请完善账户信息后再申请提现!"); |
| | | } |
| | | if(!org.springframework.util.StringUtils.hasLength(bank.getBankNumber())){ |
| | | throw new ServiceException("请完善银行卡后再申请提现!"); |
| | | } |
| | | // 增加用户提现积分变动记录 |
| | | UserPoint one = userPointService.lambdaQuery().eq(UserPoint::getAppUserId, appUser.getId()) |
| | | .orderByDesc(UserPoint::getCreateTime).last("limit 1").one(); |
| | | UserWithdraw userWithdraw = new UserWithdraw(); |
| | | userWithdraw.setAppUserId(appUser.getId()); |
| | | userWithdraw.setMoney(money); |
| | | BigDecimal multiply = money.multiply(BigDecimal.valueOf(rate)); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint()-multiply.setScale(0, RoundingMode.HALF_UP).intValue()); |
| | | if (multiply.compareTo(new BigDecimal(appUser.getAvailablePoint()))>0){ |
| | | throw new ServiceException("积分不足!"); |
| | | } |
| | | userWithdraw.setIntegral(Integer.valueOf(multiply.setScale(0, RoundingMode.HALF_UP).toString())); |
| | | userWithdraw.setAuditStatus(0); |
| | | userWithdraw.setStatus(1); |
| | | userWithdraw.setCode(code); |
| | | userWithdraw.setCreateTime(LocalDateTime.now()); |
| | | if (one.getBalance() - Integer.valueOf(multiply.setScale(0, RoundingMode.HALF_UP).toString())<0){ |
| | | throw new ServiceException("积分不足!"); |
| | | } |
| | | userWithdraw.setReceiverAccountNoEnc(bank.getBankNumber()); |
| | | userWithdraw.setReceiverNameEnc(bank.getUserName()); |
| | | userWithdraw.setReceiverBankChannelNo(bank.getReceiverBankChannelNo()); |
| | | userWithdraw.setReceiverAccountType(201); |
| | | userWithdrawService.save(userWithdraw); |
| | | UserPoint userPoint = new UserPoint(); |
| | | userPoint.setType(18); |
| | | userPoint.setVariablePoint(Integer.valueOf(multiply.setScale(0, RoundingMode.HALF_UP).toString())); |
| | | userPoint.setHistoricalPoint(one.getBalance()); |
| | | userPoint.setBalance(one.getBalance() - Integer.valueOf(multiply.setScale(0, RoundingMode.HALF_UP).toString())); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(appUser.getId()); |
| | | userPoint.setObjectId(userWithdraw.getId()); |
| | | userPointService.save(userPoint); |
| | | appUserService.updateById(appUser); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/mobileLogin") |
| | |
| | | public AppUser getAppUserById(@RequestParam("id") Long id) { |
| | | System.out.println("根据id获取用户:"+id); |
| | | return appUserService.getById(id); |
| | | } |
| | | // 获取所有用户 |
| | | @PostMapping("/getAppUserAll") |
| | | public List<AppUser> getAppUserAll() { |
| | | return appUserService.list(); |
| | | } |
| | | |
| | | @PostMapping("/getBaseUserById") |
| | |
| | | if (result == null || result.get("total_points") == null) { |
| | | userStatistics.setTotalScore(0L); |
| | | }else { |
| | | userStatistics.setTotalScore(((BigDecimal) result.get("total_points")).longValue()); |
| | | userStatistics.setTotalScore(Long.valueOf(result.get("total_points").toString())); |
| | | } |
| | | //条件构造 消费积分现金支付金额 |
| | | queryWrapper.clear(); |
| | |
| | | return R.ok(s); |
| | | }*/ |
| | | |
| | | private static final String FILE_DIRECTORY = "/var/files/ldf_files"; // Linux路径 |
| | | private static final String FILE_DIRECTORY = "/dev/xvdb/project/upload_files"; // Linux路径 |
| | | // private static final String FILE_DIRECTORY = "E://ldf_files"; // Linux路径 |
| | | |
| | | @PostMapping("/upload") |
| | |
| | | File targetFile = new File(filePath); |
| | | file.transferTo(targetFile); |
| | | // 5. 返回可访问的URL(修正路径分隔符为Web格式) |
| | | return R.ok("http://zjrqxny.com/account/app-user/download" + datePath + "/" + UUID+file.getOriginalFilename()); |
| | | return R.ok("https://zjrqxny.com/images" + datePath + "/" + UUID+file.getOriginalFilename()); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | return R.fail("上传文件失败"); |