zhs hace 3 años
padre
commit
130dc721e0

+ 32 - 6
src/main/java/com/travel/config/SaticScheduleTask.java

@@ -2,12 +2,18 @@ package com.travel.config;
 
 import com.travel.model.*;
 import com.travel.service.*;
+import com.travel.util.AmountUtil;
 import com.travel.util.SnowflakeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.TaskScheduler;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -40,6 +46,17 @@ public class SaticScheduleTask {
     @Autowired
     private CommissionService commissionService;
 
+    /**
+     * 定时任务线程自定义
+     * @return
+     */
+    @Bean
+    public TaskScheduler taskScheduler() {
+        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
+        taskScheduler.setPoolSize(50);
+        return taskScheduler;
+    }
+
     /**
      * 定时删除无效用户  每月底23:59触发方法
      */
@@ -132,26 +149,35 @@ public class SaticScheduleTask {
     public void updatePrivateFourSomeFarm(){
         //查询那些行程结束且已到达给供应商付款的时间的定制单
         List<PrivateOrder> list1 = privateOrderService.updatePrivateFourSomeFarm();
-        for(PrivateOrder privateOrder2 : list1){
+        for (PrivateOrder privateOrder2 : list1) {
             PrivateOrder privateOrder3 = new PrivateOrder().setUuid(privateOrder2.getUuid()).setSupplieName(privateOrder2.getSupplieName());
             Release release = privateOrderService.getReleaseVal(privateOrder3);//查询报价单编号
             Map<String, Object> mapPay = wxPayService.getPay(release.getUuid());//查询付款信息
             Map<String, Object> mapRefund = wxPayService.getRefund(release.getUuid());//查询退款信息
             Map<String, Object> mapCommis = indexService.getSitesInfo();//查询系统配置
             //支付金额 - 退款金额
-            Double price = Double.parseDouble((String) mapPay.get("totalFee")) - Double.parseDouble((String) mapRefund.get("refundFee"));
+            BigDecimal totalFee = new BigDecimal("0");
+            BigDecimal refundFee = new BigDecimal("0");
+            //可能支付或退款返回是null 这里做特殊处理 默认都是0
+            if(null != mapPay){
+                totalFee = new BigDecimal(String.valueOf(mapPay.get("total_fee")));
+            }
+            if(null != mapRefund){
+                refundFee = new BigDecimal(String.valueOf(mapRefund.get("refund_fee")));
+            }
+            BigDecimal price = AmountUtil.moneySub(totalFee, refundFee);
             //手续费
-            Double poundage = price * Double.parseDouble((String) mapCommis.get("percentageFee"));
+            String poundage = AmountUtil.moneyMul(String.valueOf(price), String.valueOf(mapCommis.get("percentage_fee")));
             //实际金额 - 手续费 = 供应商收入
-            price = price - poundage;
+            price = new BigDecimal(AmountUtil.moneySub(String.valueOf(price), poundage));
             Supplier supplier = new Supplier()
-                    .setBalanceOf(price + "")
+                    .setBalanceOf(String.valueOf(price))
                     .setCode(privateOrder2.getSupplieName());
             //佣金对象
             Commission commission = new Commission()
                     .setReleaseUuid(release.getUuid())
                     .setUuid(snowflakeUtil.nextId() + "")
-                    .setCommission((poundage * Double.parseDouble((String) mapCommis.get("percentageBrokerage"))) + "")
+                    .setCommission(AmountUtil.moneyMul(poundage, String.valueOf(mapCommis.get("percentage_brokerage"))))
                     .setCode(privateOrder2.getTravelUser());
             commissionService.addCommiss(commission);//新增反佣金记录
             loginService.updateEntryBlanceOf(commission);//佣金录入个人用户账号

+ 7 - 0
src/main/java/com/travel/controller/ConfirmOrderingController.java

@@ -61,6 +61,13 @@ public class ConfirmOrderingController {
                 map.put("msg", "200");
                 return map;
             }
+            //查询该报价单是否确认过
+            int count = confirmOrderingService.getConfirmDemand(confirmOrdering.getReleaseUuid());
+            if(count != 0){
+                map.put("msg", "500");
+                map.put("errMsg", "该方案已被确认");
+                return map;
+            }
             //生成uuid
             String id = UUID.randomUUID().toString().replace("-", "");
             confirmOrdering.setUuid(id);

+ 22 - 8
src/main/java/com/travel/controller/PersonalController.java

@@ -3,8 +3,8 @@ package com.travel.controller;
 import cn.hutool.core.lang.Assert;
 import com.alibaba.fastjson.JSONObject;
 import com.travel.jwt.JWTUtil;
-import com.travel.model.User;
-import com.travel.service.LoginService;
+import com.travel.model.*;
+import com.travel.service.*;
 import com.travel.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -16,6 +16,7 @@ import com.aliyuncs.http.MethodType;
 import com.aliyuncs.profile.DefaultProfile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.security.SecureRandom;
 import java.util.HashMap;
 import java.util.List;
@@ -35,6 +36,22 @@ public class PersonalController {
     @Autowired
     private LoginService  loginService;
 
+
+    //雪花算法
+    private SnowflakeUtil snowflakeUtil = new SnowflakeUtil(1, 1, 1);
+    //私人订制
+    @Autowired
+    private PrivateOrderService privateOrderService;
+    //订单
+    @Autowired
+    private WxPayService wxPayService;
+    //系统配置
+    @Autowired
+    private IndexService indexService;
+    //佣金
+    @Autowired
+    private CommissionService commissionService;
+
     /**
      * 登录判断
      * @param request 参数
@@ -308,7 +325,7 @@ public class PersonalController {
             user.setCode((String) userMap.get("code"));
 
             User user1 = loginService.getUserVal(user);
-
+            user1.setPhone(DesDecry.decrypt(user1.getPhone()));
             user1.setToken(request.getHeader("token"));
             map.put("data", user1);
             map.put("msg", "200");
@@ -330,6 +347,7 @@ public class PersonalController {
         Map<String, Object> map = new HashMap<>();
         try{
             int type = 4;
+            user.setPhone(DesEncry.encrypt(user.getPhone()));
             int count = loginService.checkTele(user);
             if(count == 0) {
                 user.setCaptcha(getNonce_str());
@@ -357,6 +375,7 @@ public class PersonalController {
     public Map<String, Object> updatePhoneForm(@RequestBody User user, HttpServletRequest request){
         Map<String, Object> map = new HashMap<>();
         try{
+            user.setPhone(DesEncry.encrypt(user.getPhone()));
             int count = loginService.checkCaptchaCode(user);//查询验证码是否正确
             if(count > 0){
                 loginService.updatePhoneForm(user);
@@ -390,9 +409,4 @@ public class PersonalController {
         }
         return letter + id;
     }
-
-    public static void main(String[] args) {
-        String phone = DesEncry.encrypt("13361316801");
-        System.out.println(phone);
-    }
 }

+ 2 - 0
src/main/java/com/travel/mapper/ConfirmOrderingMapper.java

@@ -13,4 +13,6 @@ public interface ConfirmOrderingMapper {
     void delUsedConfirm(String uuid);
 
     void updateConfirm(ConfirmOrdering confirmOrdering);
+
+    int getConfirmDemand(String releaseUuid);
 }

+ 2 - 0
src/main/java/com/travel/service/ConfirmOrderingService.java

@@ -11,4 +11,6 @@ public interface ConfirmOrderingService {
     void delUsedConfirm(String uuid);
 
     void updateConfirm(ConfirmOrdering confirmOrdering);
+
+    int getConfirmDemand(String releaseUuid);
 }

+ 5 - 0
src/main/java/com/travel/service/impl/ConfirmOrderingServiceImpl.java

@@ -36,4 +36,9 @@ public class ConfirmOrderingServiceImpl implements ConfirmOrderingService {
     public void updateConfirm(ConfirmOrdering confirmOrdering) {
         confirmOrderingMapper.updateConfirm(confirmOrdering);
     }
+
+    @Override
+    public int getConfirmDemand(String releaseUuid) {
+        return confirmOrderingMapper.getConfirmDemand(releaseUuid);
+    }
 }

+ 4 - 0
src/main/resources/config/mapping/ConfirmOrderingMapper.xml

@@ -40,4 +40,8 @@
         </set>
         where uuid = #{uuid}
     </update>
+    <!-- 查询该需求单是否被确认过 -->
+    <select id="getConfirmDemand" resultType="int">
+        select count(*) from bus_confirm_ordering where release_uuid = #{releaseUuid}
+    </select>
 </mapper>