From 46af9e53a6e76b6c0b8cc3291ac1d78e59370831 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 15 八月 2023 18:07:28 +0800
Subject: [PATCH] 更新管理页面
---
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java | 95 +++++++++++++++++++++++++++++++----------------
1 files changed, 63 insertions(+), 32 deletions(-)
diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
index 9e29d77..382c4f4 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -39,6 +39,9 @@
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.math.RoundingMode;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -135,8 +138,8 @@
if(token.length() > 16){
key = token.substring(token.length() - 16);
}
- redisUtil.setStrValue(key, appUser.getId().toString(), 7 * 24 * 60 * 60);
- redisUtil.setStrValue("USER_" + appUser.getPhone(), key, 7 * 24 * 60 * 60);
+ redisUtil.setStrValue(key, appUser.getId().toString(), 94608000);
+ redisUtil.setStrValue("USER_" + appUser.getPhone(), key, 94608000);
return token;
}
return null;
@@ -186,11 +189,25 @@
appUser.setStatus(1);
appUser.setCreateTime(new Date());
appUser.setIsException(1);
- appUser.setInviterId(signInToRegister.getInviterId());
- appUser.setInviterType(signInToRegister.getInviterType());
+ if(null != signInToRegister.getInviterId()){
+ appUser.setInviterId(signInToRegister.getInviterId());
+ appUser.setInviterType(signInToRegister.getInviterType());
+ }
this.insert(appUser);
//发送优惠券
- boolean lock = redisUtil.lock();
+ boolean lock = redisUtil.lock(5);
+ if(!lock){
+ int num1 = 1;
+ while (num1 <= 10){
+ Thread.sleep(3000);//等待3秒
+ lock = redisUtil.lock(5);
+ if(lock){
+ break;
+ }else{
+ num1++;
+ }
+ }
+ }
if(lock){
List<CouponWarpper> list = pushCoupon(appUser.getId());
redisUtil.unlock();
@@ -226,7 +243,7 @@
Transfer transfer = new Transfer();
transfer.setDepositMerOrderId(merOrderId);
transfer.setToUserId(toUserId);
- transfer.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue()));
+ transfer.setAmount(new BigDecimal(amount).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + "");
transfer.setOrderName("补贴");
transfer.setNotifyUrl(notifyUrl);
transfer.setParameter1(id.toString());
@@ -248,6 +265,8 @@
+
+
/**
* 发送优惠券
* @param userId
@@ -257,28 +276,30 @@
.eq("coupon_state", 1).eq("status", 1).gt("remaining_quantity", 0));
List<CouponWarpper> list = new ArrayList<>();
for (Coupon coupon : coupons) {
- UserToCoupon userToCoupon = new UserToCoupon();
- userToCoupon.setCouponId(coupon.getId());
- userToCoupon.setCreateTime(new Date());
- userToCoupon.setUserId(userId);
- userToCoupon.setStatus(1);
- userToCoupon.setCouponTotal(coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ?
- coupon.getRemainingQuantity() : coupon.getCouponSendQuantity());
- userToCoupon.setValidCount(userToCoupon.getCouponTotal());
- userToCoupon.setExpireTime(new Date(System.currentTimeMillis() + (coupon.getCouponValidity() * 24 * 60 * 60 * 1000)));
- userToCouponService.insert(userToCoupon);
+ Long num = coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ?
+ coupon.getRemainingQuantity() : coupon.getCouponSendQuantity();
+ for (int i = 0; i < num; i++) {
+ UserToCoupon userToCoupon = new UserToCoupon();
+ userToCoupon.setCouponId(coupon.getId());
+ userToCoupon.setCreateTime(new Date());
+ userToCoupon.setUserId(userId);
+ userToCoupon.setStatus(1);
+ userToCoupon.setCouponTotal(1);
+ userToCoupon.setValidCount(1);
+ userToCoupon.setExpireTime(new Date(System.currentTimeMillis() + (coupon.getCouponValidity().longValue() * 24L * 60L * 60L * 1000L)));
+ userToCouponService.insert(userToCoupon);
+ CouponWarpper couponWarpper = new CouponWarpper();
+ couponWarpper.setCouponConditionalAmount(coupon.getCouponConditionalAmount());
+ couponWarpper.setCouponPreferentialAmount(coupon.getCouponPreferentialAmount());
+ couponWarpper.setCouponName(coupon.getCouponName());
+ couponWarpper.setNumber(userToCoupon.getValidCount());
+ couponWarpper.setExpirationDate(userToCoupon.getExpireTime().getTime());
+ list.add(couponWarpper);
+ }
coupon.setRemainingQuantity(coupon.getCouponSendQuantity() > coupon.getRemainingQuantity() ? 0 :
coupon.getRemainingQuantity() - coupon.getCouponSendQuantity());
couponService.updateById(coupon);
-
- CouponWarpper couponWarpper = new CouponWarpper();
- couponWarpper.setCouponConditionalAmount(coupon.getCouponConditionalAmount());
- couponWarpper.setCouponPreferentialAmount(coupon.getCouponPreferentialAmount());
- couponWarpper.setCouponName(coupon.getCouponName());
- couponWarpper.setNumber(userToCoupon.getValidCount());
- couponWarpper.setExpirationDate(userToCoupon.getExpireTime().getTime());
- list.add(couponWarpper);
}
return list;
}
@@ -353,7 +374,7 @@
return ResultUtil.error("充值金额必须大于0");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
- String out_trade_no = sdf.format(new Date()) + UUIDUtil.getNumberRandom(3);
+ String out_trade_no = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
AppUser appUser = this.selectById(uid);
RechargeRecord rechargeRecord = new RechargeRecord();
rechargeRecord.setType(1);
@@ -367,7 +388,7 @@
PaymentOrder paymentOrder = new PaymentOrder();
paymentOrder.setBizOrderId(out_trade_no);
- paymentOrder.setAmount(String.valueOf(Double.valueOf(amount * 100).intValue()));
+ paymentOrder.setAmount(new BigDecimal(amount).multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_EVEN).longValue() + "");
paymentOrder.setOrderName("账户充值");
paymentOrder.setPayType("WX_MINI");
paymentOrder.setTransferType("0");
@@ -428,16 +449,21 @@
AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
accountChangeDetail.setUserType(1);
accountChangeDetail.setUserId(appUser1.getId());
- accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
accountChangeDetail.setChangeType(3);
accountChangeDetail.setType(1);
accountChangeDetail.setCreateTime(new Date());
accountChangeDetail.setExplain("账户充值");
accountChangeDetail.setOldData(appUser1.getAccountBalance());
- appUser1.setAccountBalance(appUser1.getAccountBalance() + rechargeRecord1.getAmount());
+ appUser1.setAccountBalance(new BigDecimal(appUser1.getAccountBalance()).add(new BigDecimal(rechargeRecord1.getAmount())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
accountChangeDetail.setNewData(appUser1.getAccountBalance());
- AppUserServiceImpl.this.updateById(appUser1);
accountChangeDetailService.saveData(accountChangeDetail);
+ SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 6));
+ Double num2 = JSON.parseObject(systemConfig.getContent()).getDouble("num2");
+ if(appUser1.getHavDiscount() == 0 && rechargeRecord1.getAmount().compareTo(num2) >= 0){
+ appUser1.setHavDiscount(1);
+ }
+ AppUserServiceImpl.this.updateById(appUser1);
rechargeRecord1.setPayTime(new Date());
rechargeRecord1.setPayStatus(2);
@@ -482,16 +508,21 @@
AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
accountChangeDetail.setUserType(1);
accountChangeDetail.setUserId(rechargeRecord1.getUserId());
- accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
accountChangeDetail.setChangeType(3);
accountChangeDetail.setType(1);
accountChangeDetail.setCreateTime(new Date());
accountChangeDetail.setExplain("余额充值");
accountChangeDetail.setOldData(appUser.getAccountBalance());
- appUser.setAccountBalance(appUser.getAccountBalance() + rechargeRecord1.getAmount());
+ appUser.setAccountBalance(new BigDecimal(appUser.getAccountBalance()).add(new BigDecimal(rechargeRecord1.getAmount())).setScale(2, RoundingMode.HALF_EVEN).doubleValue());
accountChangeDetail.setNewData(appUser.getAccountBalance());
- this.updateById(appUser);
accountChangeDetailService.saveData(accountChangeDetail);
+ SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 6));
+ Double num2 = JSON.parseObject(systemConfig.getContent()).getDouble("num2");
+ if(appUser.getHavDiscount() == 0 && rechargeRecord1.getAmount().compareTo(num2) >= 0){
+ appUser.setHavDiscount(1);
+ }
+ this.updateById(appUser);
rechargeRecord1.setPayTime(new Date());
rechargeRecord1.setPayStatus(2);
--
Gitblit v1.7.1