From 7ccce6911249a0a9df42f2e04e7a34da4c66a6da Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期五, 30 八月 2024 10:01:33 +0800
Subject: [PATCH] 2024-08-30 朱宝民 获取地图中心坐标、是否允许开卡验证

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java   |   22 +++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java       |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java                       |   31 ++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java                 |   29 +++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                              |   10 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java |    5 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java               |   22 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java               |   16 ++++
 8 files changed, 134 insertions(+), 2 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index 12fbdc8..f444fe3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -3,11 +3,9 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.voSe.VoCardInfo;
-
 import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
 import com.dy.pipIrrGlobal.voSe.VoCards;
 import com.dy.pipIrrGlobal.voSe.VoCards2;
-import com.dy.pipIrrGlobal.voSt.VoICCard;
 import com.dy.pipIrrGlobal.voWe.VoCards3;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -190,4 +188,18 @@
      * @return
      */
     Double getTotalMoneyIcCards();
+
+    /**
+     * 鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗�
+     * @param cardAddr
+     * @return
+     */
+    Long getCountByCardAddr(String cardAddr);
+
+    /**
+     * 鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗�
+     * @param cardAddr
+     * @return
+     */
+    Long getCountByCardAddrAndState(String cardAddr);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java
new file mode 100644
index 0000000..24e2e9f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java
@@ -0,0 +1,31 @@
+package com.dy.pipIrrGlobal.voBa;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-29 17:27
+ * @LastEditTime 2024-08-29 17:27
+ * @Description
+ */
+
+@Data
+public class VoMapCenter {
+    private static final long serialVersionUID = 202408291727001L;
+
+    /**
+     * 绾害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lat;
+
+    /**
+     * 缁忓害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lng;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index bd1b81a..d34f935 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -615,4 +615,14 @@
       `se_client_card`
     WHERE state = 1
   </select>
+
+  <!--鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺-->
+  <select id="getCountByCardAddr" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount FROM se_client_card WHERE cardAddr = #{cardAddr}
+  </select>
+
+  <!--鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺-->
+  <select id="getCountByCardAddrAndState" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount FROM se_client_card WHERE cardAddr = #{cardAddr} AND state IN(1,3)
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java
index 58b1b24..b10b657 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java
@@ -4,6 +4,7 @@
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.pipIrrGlobal.voBa.VoDictItem;
+import com.dy.pipIrrGlobal.voBa.VoMapCenter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,4 +41,25 @@
         return BaseResponseUtils.buildSuccess(dictSv.getDictItemsByDictCode(dictCode));
     }
 
+    /**
+     * 鏍规嵁閰嶇疆椤瑰悕绉拌幏鍙栭厤缃」鍊�
+     * @param itemName
+     * @return
+     */
+    @GetMapping(path = "setting")
+    @SsoAop()
+    public BaseResponse<String> getSettingValue(String itemName) {
+        return BaseResponseUtils.buildSuccess(dictSv.getItemValue(itemName));
+    }
+
+    /**
+     * 鑾峰彇鍦板浘涓績鍧愭爣
+     * @return
+     */
+    @GetMapping(path = "map_center")
+    @SsoAop
+    public BaseResponse<VoMapCenter> getMapCenter() {
+        return BaseResponseUtils.buildSuccess(dictSv.getMapCenter());
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java
index 0f6e424..f59b604 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java
@@ -1,11 +1,14 @@
 package com.dy.pipIrrBase.dict;
 
 import com.dy.pipIrrGlobal.daoBa.BaDictItemMapper;
+import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
 import com.dy.pipIrrGlobal.voBa.VoDictItem;
+import com.dy.pipIrrGlobal.voBa.VoMapCenter;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
@@ -23,6 +26,9 @@
     @Autowired
     private BaDictItemMapper dictItemMapper;
 
+    @Autowired
+    private BaSettingsMapper baSettingsMapper;
+
     /**
      * 鏍规嵁瀛楀吀Code鑾峰彇瀛楀吀椤�
      * @param dictCode
@@ -32,4 +38,27 @@
         List<VoDictItem> rs = Optional.ofNullable(dictItemMapper.getDictItemsByDictCode(dictCode)).orElse(new ArrayList<>());
         return rs ;
     }
+
+    /**
+     * 鏍规嵁閰嶇疆椤瑰悕绉拌幏鍙栭厤缃」鍊�
+     * @param itemName
+     * @return
+     */
+    public String getItemValue(String itemName) {
+        return baSettingsMapper.getItemValue(itemName);
+    }
+
+    /**
+     * 鑾峰彇鍦板浘涓績鍧愭爣
+     * @return
+     */
+    public VoMapCenter getMapCenter() {
+        BigDecimal lat = new BigDecimal(baSettingsMapper.getItemValue("lat"));
+        BigDecimal lng = new BigDecimal(baSettingsMapper.getItemValue("lng"));
+
+        VoMapCenter po = new VoMapCenter();
+        po.setLat(lat);
+        po.setLng(lng);
+        return po;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index 5bc30ff..98c5e85 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -76,6 +76,11 @@
             return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
+        // 渚濇嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗★紝鏈紑杩囧崱鎴栦笉鏄甯哥姸鎬併�佹寕澶辩姸鎬佺殑鍙紑鍗�
+        if(!cardOperateSv.canActiveCard(po.getCardAddr())) {
+            return BaseResponseUtils.buildErrorMsg(SellResultCode.ACTIVE_FAIL_CARD_ESIST.getMessage());
+        }
+
         Long clientId = po.getClientId();
 
         // 鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
index 76bb686..a927bb2 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -491,4 +491,26 @@
     public Double getTradeAmountByCardNo(Long cardNum) {
         return seCardOperateMapper.getTradeAmountByCardNo(cardNum);
     }
+
+    /**
+     * 鏍规嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗�
+     * @param cardAddr
+     * @return
+     */
+    public Boolean canActiveCard(String cardAddr) {
+
+        // 鎸囧畾姘村崱鍦板潃鐨勬按鍗℃暟閲�
+        Long cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddr(cardAddr)).orElse(0L);
+        if(cardCount == 0) {
+           return true;
+        }
+
+        // 鎸囧畾姘村崱鍦板潃涓旀甯哥姸鎬佹垨鎸傚け鐘舵�佺殑姘村崱鏁伴噺
+        cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddrAndState(cardAddr)).orElse(0L);
+        if(cardCount == 0) {
+            return true;
+        }
+
+        return false;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
index 5acba42..ef8f6fa 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
@@ -19,6 +19,7 @@
     AREA_CODE_MISTAKE(10001, "璇ュ啘鎴疯鏀垮尯鍒掑紓甯�"),
     CLIENT_NUM_ERROR(10001, "鍐滄埛缂栧彿閿欒"),
     CARD_NUMBER_OVERRUN(10002, "姘村崱缂栧彿宸叉弧"),
+    ACTIVE_FAIL_CARD_ESIST(10005, "寮�鍗″け璐�-姝ゅ崱宸插瓨鍦�"),
     ACTIVE_FAIL_WRITE_CLIENT_CARD_ERROR(10003, "寮�鍗″け璐�-鍐滄埛鍗″啓鍏ュ紓甯�"),
     ACTIVE_FAIL_WRITE_ACTIVE_CARD_ERROR(10004, "寮�鍗″け璐�-寮�鍗¤褰曞啓鍏ュ紓甯�"),
     ACTIVE_FAIL_RECHARGE_EXCEPTION(10005, "寮�鍗″け璐�-鍏呭�煎紓甯�"),

--
Gitblit v1.8.0