|
|
@@ -1,145 +0,0 @@
|
|
|
-package com.zswl.paymentterminal.demo.core.controller.hxz;
|
|
|
-
|
|
|
-import ch.qos.logback.core.testUtil.RandomUtil;
|
|
|
-import com.zswl.paymentterminal.demo.core.model.ConsumTransactionsModel;
|
|
|
-import com.zswl.paymentterminal.demo.core.model.OrderQuery;
|
|
|
-import com.zswl.paymentterminal.demo.core.model.ServerTimeModel;
|
|
|
-import com.zswl.paymentterminal.demo.core.util.BytesUtil;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.http.MediaType;
|
|
|
-import org.springframework.web.bind.annotation.PostMapping;
|
|
|
-import org.springframework.web.bind.annotation.RequestBody;
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
-
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.time.DayOfWeek;
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Random;
|
|
|
-
|
|
|
-@Slf4j
|
|
|
-@RestController
|
|
|
-@RequestMapping("hxz/v1")
|
|
|
-public class PayV1Controller {
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 同步时间服务
|
|
|
- */
|
|
|
- @PostMapping(value = "ServerTime", consumes = MediaType.APPLICATION_JSON_VALUE)
|
|
|
- public Object serverTime(@RequestBody ServerTimeModel serverTimeModel) {
|
|
|
- var nowTime = new Date(System.currentTimeMillis());
|
|
|
- LocalDate date = LocalDate.now();
|
|
|
- int week = Map.of(DayOfWeek.MONDAY, 1, DayOfWeek.TUESDAY, 2, DayOfWeek.WEDNESDAY, 3, DayOfWeek.THURSDAY, 4, DayOfWeek.FRIDAY, 5, DayOfWeek.SATURDAY, 6, DayOfWeek.SUNDAY, 0).get(date.getDayOfWeek());
|
|
|
- var ret = new LinkedHashMap() {{
|
|
|
- put("Status", 1);
|
|
|
- put("Msg", "");
|
|
|
- put("Time", new SimpleDateFormat("yyyyMMddHHmmss").format(nowTime) + "" + week);
|
|
|
- put("WLUptate", 0);
|
|
|
- put("WLPage", 0);
|
|
|
- }};
|
|
|
- log.info("ServerTime : {} - {}", serverTimeModel, ret);
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 用户刷卡综合接口
|
|
|
- */
|
|
|
- @PostMapping(value = "ConsumTransactions", consumes = MediaType.APPLICATION_JSON_VALUE)
|
|
|
- public Object consumTransactions(@RequestBody ConsumTransactionsModel consumTransactionsModel) {
|
|
|
- //十进制转16进制
|
|
|
- final String cardNumber = toCardNumber(Long.parseLong(String.valueOf(consumTransactionsModel.getCardNo())));
|
|
|
- final String amount = consumTransactionsModel.getAmount();
|
|
|
-
|
|
|
- //查询卡(钱包)
|
|
|
- if (consumTransactionsModel.getMode() == 2) {
|
|
|
- return new LinkedHashMap() {{
|
|
|
- put("Status", 1);
|
|
|
- put("Msg", 1);
|
|
|
- put("Name", "测试用户");
|
|
|
- put("CardNo", consumTransactionsModel.getCardNo());
|
|
|
- put("Money", "0"); // 现金金额
|
|
|
- put("Subsidy", "0.0"); // 补贴金额
|
|
|
- put("Times", "");
|
|
|
- put("Integral", "");
|
|
|
- put("InTime", "");
|
|
|
- put("OutTime", "");
|
|
|
- put("CumulativeTime", "");
|
|
|
- put("Amount", amount);
|
|
|
- put("VoiceID", "");
|
|
|
- put("Text", "");
|
|
|
- }};
|
|
|
- }
|
|
|
-
|
|
|
- //刷卡消费
|
|
|
- log.info("consumTransactions : {} - {} - {}", consumTransactionsModel.getOrder(), cardNumber, amount);
|
|
|
- var ret = new LinkedHashMap() {{
|
|
|
- put("Status", 1);
|
|
|
- put("Msg", 1);
|
|
|
- put("Name", "测试用户");
|
|
|
- put("CardNo", consumTransactionsModel.getCardNo());
|
|
|
- put("Money", amount); // 现金金额
|
|
|
- put("Subsidy", "0.0"); // 补贴金额
|
|
|
- put("Times", "");
|
|
|
-
|
|
|
- put("Integral", "");
|
|
|
- put("InTime", "");
|
|
|
- put("OutTime", "");
|
|
|
- put("CumulativeTime", "");
|
|
|
- put("Amount", amount);
|
|
|
- put("VoiceID", "");
|
|
|
- put("Text", "");
|
|
|
- }};
|
|
|
- log.info("ConsumTransactions : {} - {}", consumTransactionsModel, ret);
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 补偿查询
|
|
|
- */
|
|
|
- @PostMapping(value = "orderQuery", consumes = MediaType.APPLICATION_JSON_VALUE)
|
|
|
- public Object orderQuery(@RequestBody OrderQuery orderQuery) {
|
|
|
- //十进制转16进制
|
|
|
- final String cardNumber = toCardNumber(Long.parseLong(String.valueOf(orderQuery.getCardNo())));
|
|
|
- //刷卡消费
|
|
|
- log.info("orderQuery {} - {}:", orderQuery.getOrder(), cardNumber);
|
|
|
- var amount = "99.99";
|
|
|
- var ret = new LinkedHashMap() {{
|
|
|
- put("Status", 1);
|
|
|
- put("Msg", 1);
|
|
|
- put("Name", "测试用户");
|
|
|
- put("CardNo", orderQuery.getCardMode());
|
|
|
- put("Money", amount); // 现金金额
|
|
|
- put("Subsidy", "0.0"); // 补贴金额
|
|
|
- put("Times", "");
|
|
|
-
|
|
|
- put("Integral", "");
|
|
|
- put("InTime", "");
|
|
|
- put("OutTime", "");
|
|
|
- put("CumulativeTime", "");
|
|
|
- put("Amount", amount);
|
|
|
- put("VoiceID", "");
|
|
|
- put("Text", "");
|
|
|
- }};
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 转换为卡号
|
|
|
- *
|
|
|
- * @param cardNo
|
|
|
- * @return
|
|
|
- */
|
|
|
- private static String toCardNumber(long cardNo) {
|
|
|
- byte[] bins = BytesUtil.longToBin(cardNo, 4);
|
|
|
- var ret = BytesUtil.reverse(bins);
|
|
|
- return BytesUtil.binToHex(ret);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-}
|