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