jk-GitHub-coder 3 роки тому
батько
коміт
75c62827b8

+ 26 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/AppUserInfoController.java

@@ -58,6 +58,8 @@ public class AppUserInfoController {
     private ElectronicMembershipCardService electronicMembershipCardService;
     @Resource
     private LabelService labelService;
+    @Resource
+    private  CardExcelImportService cardExcelImportService;
 
 //    String appId = "wxe1135cd390b38a54";        //微信小程序appID
 //    String appSecret = "0532c7d9ae876c4ad636df0b1e3b9ddb";      //微信小程序密钥
@@ -768,4 +770,28 @@ public class AppUserInfoController {
         }
     }
 
+    /*
+     * 数据迁移功能:业务逻辑: SAAS系统导入Excel表格数据到临时表,用户登录小程序时根据手机号和站点Id 找寻数据插入到客户电子卡表,积分表,成功后删除此条信息
+     */
+    public void dataMigrationToSaas(AppUserInfoRequest request, StationInfo stationInfos){
+        //用户手机号
+        String mobilePhone = request.getMobilePhone();
+        //站点Id
+        Integer stationId = stationInfos.getStationId();
+
+        //1、根据油站Id和用户手机号查询该用户已有的信息;
+        CardExcelImport cei = new CardExcelImport();
+        cei.setPhoneNumber(mobilePhone);
+        cei.setStationId(stationId);
+        List<CardExcelImport> cardExcelImportList = cardExcelImportService.getCardExcelImportList(cei);
+        if(cardExcelImportList !=null && cardExcelImportList.size() >0){
+            //2、更新到SAAS系统电子卡积分等信息;
+
+            //3、删除该条用户信息
+        }
+
+    }
+
+
+
 }

+ 106 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/DemoFenZhang.java

@@ -3,22 +3,128 @@ package com.platform.yijia.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
+import com.google.gson.Gson;
 import com.platform.yijia.config.YiJiaRequest;
 import com.platform.yijia.param.request.PayInfoRequest;
 import com.platform.yijia.utils.HttpUtils;
 import com.platform.yijia.utils.RSASignature;
+import com.platform.yijia.utils.ResultData;
 import com.platform.yijia.utils.SXFPaySign;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.ParseException;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.Random;
 
+/***
+ * demo随行付测试
+ */
 
 @RestController
 @YiJiaRequest()
 @CrossOrigin
 public class DemoFenZhang {
 
+    private static Logger logger =(Logger) LoggerFactory.getLogger(DemoFenZhang.class);
+
+//    @Value("${yijia.path.global-prefix}")
+//    private String globalPrefix;
+//    @Value("${yijia.domainName}")
+//    private String domainName;
+
+    @RequestMapping(value = "/demoTradeRefund", consumes = "application/json", method = RequestMethod.POST)
+    public String demoTradeRefund(@RequestBody PayInfoRequest payInfoRequest) throws Exception {
+        Gson gson = new Gson();
+        ResultData resultData = null;
+        JSONObject reqData = new JSONObject();
+
+        Random random = new Random();
+        String r = "";
+        for (int i = 0; i < 6; i++) {
+            r += random.nextInt(10);
+        }
+        String ordNo = System.nanoTime() + r;
+        logger.info("生成的订单号:" + ordNo);
+        //业务参数
+        reqData.put("ordNo", ordNo); //商户订单号
+        reqData.put("mno", "399210816375479"); //商户编号
+        //下面三个至少传一个
+        reqData.put("origOrderNo", "10012955127877835724009"); //原商户订单号
+         //reqData.put("origUuid", "3357cfbe24bc4de1bcb7013dd129eba3"); //原交易科技公司订单号
+        //reqData.put("origSxfUuid", "83620210924554863049"); //正交易落单号
+        reqData.put("amt", "0.01"); //退款金额
+        //String notifyUrl = "https://"+domainName+"/"+globalPrefix+"/tradeRefund";
+        //reqData.put("notifyUrl", notifyUrl); //回调推送地址,用来接收科技公司的异步推送
+        reqData.put("refundReason", "退货"); //退货原因
+        reqData.put("extend", ""); //备用
+
+
+        String req= SXFPaySign.getSXFPay(reqData);
+        ///logger.debug("参数信息:"+req);
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        System.out.println("拼接后的参数:" + signContent);
+        //logger.debug("拼接后的参数:"+signContent);
+        //sign
+        String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+        System.out.println("============签名:" + sign);
+        reqMap.put("sign", sign);
+        String reqStr = JSON.toJSONString(reqMap);
+        System.out.println("请求参数:" + reqMap);
+        System.out.println("请求参数:" + reqStr);
+        //调用第三方接口地址
+        String url = "https://openapi.suixingpay.com/order/refund";//生产地址
+        String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+        System.out.println("返回信息:" + resultJson);
+        //不要对reqData排序 所以用LinkedHashMap
+        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+        if ("0000".equals(result.get("code"))) {
+            //验签
+            String signResult = result.get("sign").toString();
+            result.remove("sign");
+            String resultStr = RSASignature.getOrderContent(result);
+            System.out.println("resultStr: " + resultStr);
+            //sign
+            String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+            System.out.println("resultSign: " + resultSign);
+            //组装加密串
+            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                System.out.println("===================验签成功==============");
+                resultData= ResultData.success(result);
+                //
+                if(result.containsKey("reqData")){
+                    //判断 bizCode bizCode =="0000" 则业务成功
+                }
+
+            }
+        }
+        return gson.toJson(resultData);
+    }
+
+    /**
+     * 异步回调通知
+     */
+    @RequestMapping(value = "/tradeRefund", consumes = "application/json", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional
+    public JSONObject tradeRefund(@RequestBody JSONObject request) throws ParseException {
+        logger.info("-------------------------------回调开始----------------------------------------------");
+        logger.info("回调返回过来的参数" + request);
+        JSONObject req = new JSONObject();
+        req.put("code","success");
+        req.put("msg","成功");
+        return req;
+    }
+
+
     @RequestMapping(value = "/demoFenZhang", consumes = "application/json", method = RequestMethod.POST)
     public String demoFenZhang(@RequestBody PayInfoRequest payInfoRequest) throws Exception {
         String ss ="";

+ 0 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -33,7 +33,6 @@ import java.util.*;
 /*
  * <Title> ElectronicMembershipCardController </Title>
  * <Description> 电子会员卡(储蓄卡)功能模块 </Description>
- * @Author JK
  * @Date 2021年3月22日
  */
 @Controller

+ 0 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -32,7 +32,6 @@ import java.util.*;
 /*
  * <Title> IntegralShoppingMallController </Title>
  * <Description> 油站积分商城模块 </Description>
- * @Author JK
  * @Date 2021年2月24日
  */
 @Controller

+ 0 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/LabelController.java

@@ -20,7 +20,6 @@ import java.util.Date;
 /*
  * <Title> LabelController </Title>
  * <Description> 标签模块 </Description>
- * @Author JK
  * @Date 2021年7月15日
  */
 @Controller

+ 0 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/PosMachineController.java

@@ -32,7 +32,6 @@ import java.util.*;
 /**
  * <Title> PosMachineController </Title>
  * <Description> POS机端模块功能 </Description>
- * @Author JK
  * @Date 2021年3月17日
  */
 

+ 0 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/SaoBeiPayController.java

@@ -40,7 +40,6 @@ import java.util.Random;
 /*
  * <Title> SaoBeiPayController </Title>
  * <Description> 第三方扫呗支付 </Description>
- * @Author JK
  * @Date 2021年8月18日
  */
 

+ 13 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/CardExcelImportMapper.java

@@ -0,0 +1,13 @@
+package com.platform.yijia.dao;
+
+import com.platform.yijia.pojo.CardExcelImport;
+import com.platform.yijia.pojo.IntegralRule;
+
+import java.util.List;
+
+public interface CardExcelImportMapper {
+
+    List<CardExcelImport> getCardExcelImportList(CardExcelImport CardExcelImport);
+
+    void deleteCardExcelImportByExcelId(CardExcelImport cardExcelImport);
+}

+ 21 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CardExcelImport.java

@@ -0,0 +1,21 @@
+package com.platform.yijia.pojo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/***
+ * 数据迁移实体类
+ */
+@Data
+public class CardExcelImport {
+    private Integer excelId;        //'id',
+    private BigDecimal balance;     //'余额',
+    private Integer integral;       //'积分',
+    private String phoneNumber;     //'用户手机号',
+    private String cardType;        // '卡片类型1汽油,2柴油,3非油品,4LNG ',
+    private String memberGrad;      // '会员等级',
+    private Integer stationId;      // '油站id信息',
+    private Integer labelId;        // '标签id',
+    private String couponIssueId;   // '发放方式的id',
+}

+ 15 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/CardExcelImportService.java

@@ -0,0 +1,15 @@
+package com.platform.yijia.service;
+
+
+import com.platform.yijia.pojo.CardExcelImport;
+import com.platform.yijia.pojo.IntegralRule;
+
+import java.util.List;
+
+public interface CardExcelImportService {
+
+    List<CardExcelImport> getCardExcelImportList(CardExcelImport CardExcelImport);
+
+    void deleteCardExcelImportByExcelId(CardExcelImport cardExcelImport);
+
+}

+ 28 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/CardExcelImportServiceImpl.java

@@ -0,0 +1,28 @@
+package com.platform.yijia.service.impl;
+
+import com.platform.yijia.dao.CardExcelImportMapper;
+import com.platform.yijia.dao.IntegralRuleMapper;
+import com.platform.yijia.pojo.CardExcelImport;
+import com.platform.yijia.pojo.IntegralRule;
+import com.platform.yijia.service.CardExcelImportService;
+import com.platform.yijia.service.IntegralRuleService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service("cardExcelImportService")
+public class CardExcelImportServiceImpl implements CardExcelImportService {
+    @Resource
+    private CardExcelImportMapper cardExcelImportMapper;
+
+    @Override
+    public List<CardExcelImport> getCardExcelImportList(CardExcelImport cardExcelImport) {
+        return cardExcelImportMapper.getCardExcelImportList(cardExcelImport);
+    }
+
+    @Override
+    public void deleteCardExcelImportByExcelId(CardExcelImport cardExcelImport) {
+        cardExcelImportMapper.deleteCardExcelImportByExcelId(cardExcelImport);
+    }
+}

+ 47 - 0
YijiaRestful/src/main/resources/mapper/CardExcelImportMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.platform.yijia.dao.CardExcelImportMapper">
+  <!--积分规则返回结果-->
+  <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.CardExcelImport">
+      <id column="excel_id"                 jdbcType="INTEGER"  property="excelId" />
+      <result column="station_id"           jdbcType="INTEGER"  property="stationId" />
+      <result column="balance"              jdbcType="DECIMAL"  property="balance" />
+      <result column="integral"             jdbcType="INTEGER"  property="integral" />
+      <result column="phone_number"         jdbcType="VARCHAR"  property="phoneNumber" />
+      <result column="card_type"            jdbcType="VARCHAR"  property="cardType" />
+      <result column="member_grade"         jdbcType="VARCHAR"  property="memberGrad" />
+      <result column="label_id"             jdbcType="INTEGER"  property="labelId" />
+      <result column="coupon_issue_id"      jdbcType="VARCHAR"  property="couponIssueId" />
+  </resultMap>
+
+
+  <!--查询用户导入的信息-->
+  <select id="getCardExcelImportList" resultMap="BaseResultMap" parameterType="com.platform.yijia.pojo.CardExcelImport">
+    SELECT
+      excel_id,
+      station_id,
+      balance,
+      integral,
+      phone_number,
+      card_type,
+      member_grade,
+      label_id,
+      coupon_issue_id
+    FROM
+      card_excel_import
+    <where>
+          <if test="stationId !=null and stationId !=''">
+             station_id = #{stationId}
+          </if>
+          <if test="phoneNumber !=null and phoneNumber !=''">
+            AND phone_number = #{phoneNumber}
+          </if>
+    </where>
+  </select>
+
+    <!-- 删除该条用户信息 -->
+    <delete id="deleteCardExcelImportByExcelId" parameterType="com.platform.yijia.pojo.CardExcelImport">
+        DELETE FROM  card_excel_import WHERE excel_id = #{excelId}
+    </delete>
+
+</mapper>

+ 4 - 0
YijiaRestful/src/test/java/com/palatform/yijia/test.java

@@ -20,6 +20,10 @@ public class test {
         String yyyyMMddhhmmss = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
         System.out.println(yyyyMMddhhmmss);
 
+        BigDecimal subtract = new BigDecimal("0").subtract(new BigDecimal("2"));
+        System.out.println(subtract);
+
+
 //        BigDecimal discountPrice = new BigDecimal("5.52");
 //        BigDecimal oilLiters = new BigDecimal("35.59");
 //