From 3933eb593df17f5c5c4610aa639c6fde9ed6ecde Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 04 十二月 2024 11:16:20 +0800
Subject: [PATCH] 处理异常订单记录

---
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java |   87 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 77 insertions(+), 10 deletions(-)

diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index 4b7661b..4e49be5 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -10,10 +10,7 @@
 import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.JwtTokenUtil;
 import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.system.dao.DriverActivityRegisteredMapper;
-import com.stylefeng.guns.modular.system.dao.DriverMapper;
-import com.stylefeng.guns.modular.system.dao.UserActivityInviteMapper;
-import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
+import com.stylefeng.guns.modular.system.dao.*;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
@@ -33,6 +30,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 
@@ -92,6 +90,9 @@
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
+
+    @Resource
+    private DriverActivityHistoryMapper driverActivityHistoryMapper;
 
     @Value("${callbackPath}")
     private String callbackPath;
@@ -234,6 +235,16 @@
                         if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
                             bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
                             incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
+
+                            DriverActivityHistory driverActivityHistory = new DriverActivityHistory();
+                            driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                            driverActivityHistory.setCarryOut(2);
+                            driverActivityHistory.setDay(new Date());
+                            driverActivityHistory.setDriverId(driver.getId());
+                            driverActivityHistory.setInsertTime(new Date());
+                            driverActivityHistory.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+                            driverActivityHistory.setType(1);
+                            driverActivityHistoryMapper.insert(driverActivityHistory);
                         }
                     }
                     driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
@@ -312,7 +323,59 @@
     @Override
     public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType) throws Exception {
         ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null,uid,type,userType);
-
+        if(resultUtil.getCode() == 200 && null != uid){
+            if(type == 2){//司机分享
+                Driver driver = driverMapper.selectById(uid);
+                List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
+                BigDecimal bigDecimal = new BigDecimal("0");
+                for(Map<String, Object> map : query){
+                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
+                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
+                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
+                    }
+                }
+                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driverMapper.updateById(driver);
+            }
+            if(type == 1){//用户分享
+                UserInfo userInfo1 = userInfoMapper.selectById(uid);
+                List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo1.getCompanyId());
+                Date date = new Date();
+                for(Map<String, Object> map : query){
+                    Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
+                    for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
+                        //判断当前优惠券金额是否大于可发放剩余总金额
+                        if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
+                            break;
+                        }
+                        UserCouponRecord userCouponRecord = new UserCouponRecord();
+                        userCouponRecord.setActivityType(3);
+                        userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                        userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
+                        userCouponRecord.setState(1);
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(date);
+                        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective"))));
+                        userCouponRecord.setExpirationTime(calendar.getTime());
+                        userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
+                        userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
+                        userCouponRecord.setInsertTime(date);
+                        userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
+                        userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+                        userCouponRecord.setCompanyId(userInfo1.getCompanyId());
+                        userCouponRecord.setUserId(uid);
+                        userCouponRecordService.insert(userCouponRecord);
+                        //修改剩余可发放总金额
+                        lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
+                    }
+                    UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
+                    uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                    userActivityInviteMapper.updateById(uai);
+                }
+            }
+        }
         return resultUtil;
     }
 
@@ -720,8 +783,11 @@
             return ResultUtil.error("支付金额必须大于0元");
         }
         if(payType == 1){//微信支付
-            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1);//添加预支付数据
-            ResultUtil resultUtil = payMoneyUtil.weixinpay("余额充值",integer.toString(),integer.toString(),money+"","/base/wxCancelUserBalance","JSAPI",userInfo.getAppletsOpenId());
+            if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                return ResultUtil.error("未授权微信,无法完成支付");
+            }
+            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 1, money, "", 1, "");//添加预支付数据
+            ResultUtil resultUtil = payMoneyUtil.weixinpay("余额充值", integer.toString(), integer.toString(),money+"","/base/wxCancelUserBalance","JSAPI",userInfo.getAppletsOpenId());
             if(resultUtil.getCode()==200){
                 PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
                 paymentRecordService.updateById(paymentRecord);
@@ -731,7 +797,7 @@
             }
         }
         if(payType == 2){//支付宝支付
-            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 2, money, "", 1);//添加预支付数据
+            Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, 2, money, "", 1, "");//添加预支付数据
             ResultUtil resultUtil = payMoneyUtil.alipay("余额充值","余额充值", "",integer.toString(),money+"","/base/aliCancelUserBalance");
             if(resultUtil.getCode()==200){
                 PaymentRecord paymentRecord = paymentRecordService.selectById(integer);
@@ -1008,8 +1074,9 @@
      * @return
      */
     public String getDefaultName(){
-        int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001;
-        return "ZY" + String.valueOf(num).substring(1);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
+        String n = UUIDUtil.getNumberCode(3) + sdf.format(new Date());
+        return "ZY" + n;
     }
 
 

--
Gitblit v1.7.1