From d0c8bb3267a8a666b9a7ad1ae406c88b2fceff58 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期四, 08 六月 2023 10:16:11 +0800
Subject: [PATCH] 修改

---
 src/main/java/com/boying/controller/phone/TicketController.java   |   16 ++
 src/main/java/com/boying/service/impl/NowPayOrderServiceImpl.java |   41 ++++++
 src/main/java/com/boying/job/PayResult2Scheduled.java             |   88 ++++++++++++++
 src/main/java/com/boying/job/PayResultScheduled.java              |    2 
 src/main/java/com/boying/mapper/NowPayOrderMapper.java            |   18 +++
 src/main/java/com/boying/controller/phone/PayController.java      |  106 +++++++++++++++-
 src/main/java/com/boying/entity/NowPayOrder.java                  |   38 ++++++
 src/main/java/com/boying/service/NowPayOrderService.java          |   16 ++
 8 files changed, 311 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/boying/controller/phone/PayController.java b/src/main/java/com/boying/controller/phone/PayController.java
index 5480726..e696599 100644
--- a/src/main/java/com/boying/controller/phone/PayController.java
+++ b/src/main/java/com/boying/controller/phone/PayController.java
@@ -42,7 +42,7 @@
  * @createTime 2022骞�11鏈�22鏃� 15:19:00
  */
 @RestController
-@RequestMapping("ffPay")
+@RequestMapping("ffzf/ffPay")
 @RequiredArgsConstructor
 public class PayController extends BaseController {
 
@@ -167,7 +167,7 @@
     @PostMapping("result")
     public String result(HttpServletRequest request, String payKey, String payerTypeCode, String payerNum, String payCode, Double amt, String status, String errorInfo, String sign, String signType) throws Exception{
         try {
-            updateOrderRecord(payCode,status);
+           // updateOrderRecord(payCode,status);
         }catch (Exception e){
          e.printStackTrace();
         }
@@ -381,6 +381,92 @@
     }
 
 
+    /**
+     * 缂存涔�
+     */
+    @PostMapping("zhifa")
+    public Object zhifa(Long id){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
+        String logs = sdf.format(new Date())+"寮�濮嬫壂鐮佺即璐�------銆媆n";
+        logs += "缃氬崟琛╥d涓猴細"+id+",\n";
+        Ticket ticket =  ticketService.getById(id);
+        if(ticket.getMoney()==0){
+            updateTicket(ticket.getId(),"03");
+            logs += "鏀粯閲戦涓�0,\n";
+            writeTxt(logs);
+            return R.failed("鏈綒鍗曟棤闇�鏀粯璐圭敤");
+        }
+        if(StringUtils.isNotBlank(ticket.getPayCode()) && ticket.getStatus() == 0){
+            return R.ok("鐢熸垚鐢靛瓙缃氬崟缂存鐮�", "https://hbfs.govpay.ccb.com/online/fssm?fee=130000000001&PyfScnCgycd=01&pyfTpcd=3&BNo="+ticket.getPayCode());
+        }else if(StringUtils.isNotBlank(ticket.getPayCode()) && ticket.getStatus() == 1){
+            return R.failed("宸茬即璐�");
+        }
+        if(StringUtils.isBlank(ticket.getPayCode())){
+            return R.ok("鐢熸垚鐢靛瓙缃氬崟缂存鐮�", getPayUrl2(ticket));
+        }else {
+            return R.failed("鍑洪敊");
+        }
+
+    }
+
+    /**
+     * 鑾峰彇缂存鐮�
+     * @param ticket
+     * @return
+     */
+    public String getPayUrl2(Ticket ticket){
+        String urlIP = systemConfigProperties.getIp4();
+        String applyetcketnum = systemConfigProperties.getAPPLYETCKETNUM();
+        //鐢宠缂存涔�,鍞竴鐮佷负鍑哄満id+鏃堕棿鎴�
+        String idStr = ticket.getId()+"";
+        String dateStr = DateUtil.currentSeconds()+"";
+        String l = idStr + dateStr;
+        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+        String format = sdf2.format(new Date());
+        List< ApplyTicket.detail> details = new ArrayList<>();
+        ApplyTicket.detail detail = new ApplyTicket.detail();
+        detail.setItemstandardtype("");
+        detail.setAmount(1);
+        detail.setAmt(ticket.getMoney());
+        detail.setIncitemcode("050114");
+        detail.setMeasureunit("");
+        details.add(detail);
+
+        ApplyTicket applyTicket = new ApplyTicket();
+        applyTicket.setBusinum(l);
+        applyTicket.setFilldate(format);
+        applyTicket.setPayer(ticket.getCarNo());
+        applyTicket.setPayeraccount("");
+        applyTicket.setPayerbank("");
+        applyTicket.setPayerphonenumber("18888888888");
+        applyTicket.setPayee("娌冲寳鐪佽储鏀垮巺");
+        applyTicket.setAmt(ticket.getMoney());
+        applyTicket.setMemo("");
+        applyTicket.setOverdate("");
+        applyTicket.setState(1);
+        applyTicket.setDetails(details);
+        String jsonStr = JSON.toJSONString(applyTicket, SerializerFeature.WriteDateUseDateFormat);
+        Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {});
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<ReturnData> entity = restTemplate.postForEntity(urlIP+applyetcketnum, HTTPEntityUtil.setEntity(map), ReturnData.class);
+        if(entity.getBody().getCode() == 1){
+            System.out.println("鏀粯鐢宠缂存鐮佽繑鍥炰负锛�"+entity.getBody());
+            Object o = entity.getBody().getData().get(0);
+            String s = JSON.toJSONString(o);
+            Map<String,Object> map1 = (Map)JSON.parse(s);
+            String payurl = (String)map1.get("payurl");
+            String eticketnum = (String)map1.get("eticketnum");
+            ticket.setPayCode(eticketnum);
+            ticket.setCode2(l);
+            ticketService.saveOrUpdate(ticket);
+            addOrderRecord2(ticket);
+            return payurl+eticketnum;
+        }else {
+            return null;
+        }
+    }
+
+
 
 
 
@@ -392,24 +478,23 @@
          */
 
 
+
     //鏇存柊璁㈠崟璁板綍
-    public void updateOrderRecord(String payCode,String status){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
-        String s = sdf.format(new Date())+"鏇存柊璁㈠崟璁板綍锛歱ayCode===="+payCode+",status==="+status+",\n";
+    public void updateOrderRecord(Integer queryId,String status){
         QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
         wrapper.lambda()
-                .eq(OrderRecord::getPayCode,payCode)
+                .eq(OrderRecord::getQueryId,queryId)
                 .orderByDesc(OrderRecord::getCreateTime);
         List<OrderRecord> all = orderRecordService.list(wrapper);
-        s += "鏌ヨ鍒拌鍗曡褰曚负锛�"+all.size()+"鏉★紝\n";
         if(all.size()>=1){
             OrderRecord orderRecord = all.get(0);
-            s += "鏌ヨ鍒拌鍗曚负锛�"+orderRecord.getId()+"锛孿n";
             if(status.equals("01")){
                 orderRecord.setStatus(0);
             }
             if(status.equals("03")){
                 orderRecord.setStatus(1);
+                //娴嬭瘯鐜锛屾殏鏃舵妸寮�绁ㄨ缃负2
+                orderRecord.setTicketStatus(2);
             }
             if(status.equals("04")||status.equals("05")||status.equals("06")){
                 orderRecord.setStatus(2);
@@ -418,12 +503,9 @@
             if(orderRecord.getType()==0){
                 updateTicket(orderRecord.getQueryId(),status);
             }else{
-                s += "淇敼鍑哄満琛細"+orderRecord.getQueryId()+"锛宻tatus==="+status+",\n";
-                writeTxt(s);
                 updateOutPark(orderRecord.getQueryId(),status);
             }
         }
-        writeTxt(s);
     }
 
     //鏇存柊缃氬崟鐨勭姸鎬�
@@ -510,9 +592,11 @@
         orderRecord.setAddress(ticket.getAddress());
         orderRecord.setCarNo(ticket.getCarNo());
         orderRecord.setCode(ticket.getCode());
+        orderRecord.setCode2(ticket.getCode2());
         orderRecord.setMoney(ticket.getMoney());
         orderRecord.setQueryId(ticket.getId());
         orderRecord.setType(0);
+        orderRecord.setTicketStatus(2);
         orderRecord.setPayCode(ticket.getPayCode());
         orderRecordService.saveOrUpdate(orderRecord);
     }
diff --git a/src/main/java/com/boying/controller/phone/TicketController.java b/src/main/java/com/boying/controller/phone/TicketController.java
index b05ef68..c8528b3 100644
--- a/src/main/java/com/boying/controller/phone/TicketController.java
+++ b/src/main/java/com/boying/controller/phone/TicketController.java
@@ -50,6 +50,8 @@
 
     private final StreetLogoService streetLogoService;
 
+    private final NowPayOrderService nowPayOrderService;
+
     //鍥剧墖鍥炴樉
     @RequestMapping(value = "/showImg", method = RequestMethod.GET)
     public void getAwardAsByteArray(HttpServletResponse response, HttpServletRequest request) throws IOException {
@@ -325,7 +327,17 @@
     @PostMapping("/jiaofei" )
     public R jiaofei(Integer id) {
         Ticket byId = ticketService.getById(id);
-        byId.setContent(violationTypeService.getById(byId.getViolationTypeId()).getContent());
-        return R.ok(byId);
+        if(byId.getPayStatus() == 1){
+            return R.failed("姝ょ綒鍗曞凡鏀粯");
+        }else if(byId.getMoney() == 0){
+            return R.failed("姝ょ綒鍗曟棤闇�缂磋垂");
+        }else {
+            NowPayOrder nowPayOrder = new NowPayOrder();
+            nowPayOrder.setQueryId(byId.getId());
+            nowPayOrder.setType(0);
+            nowPayOrder.setCarNo(byId.getCarNo());
+            nowPayOrderService.saveOrder(nowPayOrder);
+            return R.ok("璇锋壂鐮佺即璐�");
+        }
     }
 }
diff --git a/src/main/java/com/boying/entity/NowPayOrder.java b/src/main/java/com/boying/entity/NowPayOrder.java
new file mode 100644
index 0000000..007b305
--- /dev/null
+++ b/src/main/java/com/boying/entity/NowPayOrder.java
@@ -0,0 +1,38 @@
+package com.boying.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.boying.common.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName NowPayOrder.java
+ * @Description TODO
+ * @createTime 2023骞�06鏈�07鏃� 16:46:00
+ */
+@Data
+@TableName("now_pay_order")
+@javax.persistence.Table(name = "now_pay_order")
+@Entity
+@org.hibernate.annotations.Table(appliesTo = "now_pay_order", comment = "鐜板満璁㈠崟鏀粯琛�")
+@ApiModel(value = "鐜板満璁㈠崟鏀粯琛�")
+public class NowPayOrder extends BaseEntity<NowPayOrder> {
+
+    @ApiModelProperty(value = "0锛氭墽娉�  1锛氬仠杞�  2锛氶粦鍚嶅崟")
+    @Column(columnDefinition = "int comment '0锛氭墽娉�  1锛氬仠杞�  2锛氶粦鍚嶅崟'")
+    private int type;
+
+    @ApiModelProperty(value = "鍑哄仠杞﹀満id鎴栫綒鍗昳d")
+    @Column(columnDefinition = "int comment '鍑哄仠杞﹀満id鎴栫綒鍗昳d'")
+    private Integer queryId;
+
+    @ApiModelProperty(value = "杞︾墝鍙�")
+    @Column(columnDefinition = "varchar(50) comment '杞︾墝鍙�'")
+    private String carNo;
+}
diff --git a/src/main/java/com/boying/job/PayResult2Scheduled.java b/src/main/java/com/boying/job/PayResult2Scheduled.java
new file mode 100644
index 0000000..aa6814e
--- /dev/null
+++ b/src/main/java/com/boying/job/PayResult2Scheduled.java
@@ -0,0 +1,88 @@
+package com.boying.job;
+
+import cn.hutool.core.thread.ThreadUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.boying.common.ReturnData;
+import com.boying.common.SystemConfigProperties;
+import com.boying.controller.phone.PayController;
+import com.boying.entity.Barrier;
+import com.boying.entity.OutPark;
+import com.boying.entity.Ticket;
+import com.boying.service.BarrierService;
+import com.boying.service.OutParkService;
+import com.boying.service.TicketService;
+import com.boying.util.HTTPEntityUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Component
+public class PayResult2Scheduled {
+
+
+   @Autowired
+   private TicketService ticketService;
+    @Autowired
+    private SystemConfigProperties systemConfigProperties;
+    @Autowired
+    private PayController payController;
+
+    Boolean taskFlag = false;
+
+    //@Scheduled(cron = "0/2 * * * * ?")
+    public void execute() throws Exception {
+        if(taskFlag == true){
+            System.out.println("姝e湪杩愯锛屽己鍒堕��鍑�-------銆�");
+            return;
+        }
+        taskFlag = true;
+        QueryWrapper<Ticket> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(Ticket::getStatus,0)
+                .ne(Ticket::getMoney,0)
+                .isNotNull(Ticket::getPayCode)
+                .orderByDesc(Ticket::getCreateTime);
+        List<Ticket> list = ticketService.list(wrapper);
+       if(list.size()>0){
+           for (Ticket ticket : list) {
+               doPay(ticket);
+           }
+       }
+        taskFlag = false;
+    }
+
+    public void doPay(Ticket ticket){
+        ThreadUtil.execute(() -> {
+            //鏌ヨ缂存鐮佽褰曟洿鏂�
+            Map<String,Object> map1 = new HashMap<>();
+            map1.put("eticketnum",ticket.getPayCode());
+            String urlRoad = systemConfigProperties.getETICKET();
+            String urlIp = systemConfigProperties.getIp4();
+            RestTemplate restTemplate = new RestTemplate();
+            ResponseEntity<ReturnData> entity = restTemplate.postForEntity(urlIp+urlRoad, HTTPEntityUtil.setEntity(map1), ReturnData.class);
+            log.info("鏌ヨ鏄惁鏀粯鎴愬姛杩斿洖涓猴細"+entity.getBody());
+            System.out.println("鏌ヨ鏄惁鏀粯鎴愬姛杩斿洖涓猴細"+entity.getBody());
+            if(entity.getBody().getCode() == 1){
+                //鏇存柊璁㈠崟
+                payController.updateOrderRecord(ticket.getId(),"03");
+            }
+
+        });
+    }
+
+    public static void main(String[] args) {
+        for (int i = 0; i < 10; i++) {
+            String s= i+"";
+            ThreadUtil.execute(() -> {
+              //  System.out.println(s);
+            });
+        }
+    }
+}
diff --git a/src/main/java/com/boying/job/PayResultScheduled.java b/src/main/java/com/boying/job/PayResultScheduled.java
index 44eab42..e6523f8 100644
--- a/src/main/java/com/boying/job/PayResultScheduled.java
+++ b/src/main/java/com/boying/job/PayResultScheduled.java
@@ -82,7 +82,7 @@
             System.out.println("鏌ヨ鏄惁鏀粯鎴愬姛杩斿洖涓猴細"+entity.getBody());
             if(entity.getBody().getCode() == 1){
                 //鏇存柊璁㈠崟
-                payController.updateOrderRecord(outPark.getPayCode(),"03");
+               // payController.updateOrderRecord(outPark.getPayCode(),"03");
             }
 
         });
diff --git a/src/main/java/com/boying/mapper/NowPayOrderMapper.java b/src/main/java/com/boying/mapper/NowPayOrderMapper.java
new file mode 100644
index 0000000..6896dd2
--- /dev/null
+++ b/src/main/java/com/boying/mapper/NowPayOrderMapper.java
@@ -0,0 +1,18 @@
+package com.boying.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.boying.entity.LedShow;
+import com.boying.entity.NowPayOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName NowPayOrderMapper.java
+ * @Description TODO
+ * @createTime 2023骞�06鏈�07鏃� 16:50:00
+ */
+@Mapper
+public interface NowPayOrderMapper extends BaseMapper<NowPayOrder> {
+
+}
diff --git a/src/main/java/com/boying/service/NowPayOrderService.java b/src/main/java/com/boying/service/NowPayOrderService.java
new file mode 100644
index 0000000..3d0bcee
--- /dev/null
+++ b/src/main/java/com/boying/service/NowPayOrderService.java
@@ -0,0 +1,16 @@
+package com.boying.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.boying.entity.NowPayOrder;
+import com.boying.entity.OrderRecord;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName NowPayOrderService.java
+ * @Description TODO
+ * @createTime 2023骞�06鏈�07鏃� 16:51:00
+ */
+public interface NowPayOrderService extends IService<NowPayOrder> {
+    void saveOrder(NowPayOrder nowPayOrder);
+}
diff --git a/src/main/java/com/boying/service/impl/NowPayOrderServiceImpl.java b/src/main/java/com/boying/service/impl/NowPayOrderServiceImpl.java
new file mode 100644
index 0000000..f38ad14
--- /dev/null
+++ b/src/main/java/com/boying/service/impl/NowPayOrderServiceImpl.java
@@ -0,0 +1,41 @@
+package com.boying.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.boying.entity.LedShow;
+import com.boying.entity.NowPayOrder;
+import com.boying.mapper.LedShowMapper;
+import com.boying.mapper.NowPayOrderMapper;
+import com.boying.service.LedShowService;
+import com.boying.service.NowPayOrderService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName NowPayOrderServiceImpl.java
+ * @Description TODO
+ * @createTime 2023骞�06鏈�07鏃� 16:52:00
+ */
+@Service
+@AllArgsConstructor
+public class NowPayOrderServiceImpl extends ServiceImpl<NowPayOrderMapper, NowPayOrder> implements NowPayOrderService {
+
+    @Override
+    public void saveOrder(NowPayOrder nowPayOrder) {
+        QueryWrapper<NowPayOrder> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(NowPayOrder::getType,nowPayOrder.getType());
+        List<NowPayOrder> list = list(wrapper);
+        if(list.size()>0){
+            for (NowPayOrder payOrder : list) {
+                removeById(payOrder);
+            }
+            save(nowPayOrder);
+        }else {
+            save(nowPayOrder);
+        }
+    }
+}

--
Gitblit v1.9.1