From e371b44dd7cffd4434adbf63acd0bcd65ed00d00 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 27 六月 2024 09:43:51 +0800
Subject: [PATCH] 1. 营销模块下根据农户姓名、电话查询正常状态的水卡列表; 2. 小程序模块下根据农户ID获取正常状态的水卡列表

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardCtrl.java |   49 ++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCards2.java                        |   49 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                            |   80 +++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java |   23 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardSv.java   |   32 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java             |   25 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voWe/VoCards3.java                        |   49 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java   |   21 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/qo/QoCards2.java    |   25 ++++
 9 files changed, 353 insertions(+), 0 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 a317354..e16cd6b 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,7 +3,10 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.voSe.VoCardInfo;
+
 import com.dy.pipIrrGlobal.voSe.VoCards;
+import com.dy.pipIrrGlobal.voSe.VoCards2;
+import com.dy.pipIrrGlobal.voWe.VoCards3;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -126,4 +129,26 @@
      * @return 绗﹀悎鏉′欢璁板綍鏁帮紝鏈�澶氫竴鏉�
      */
     Integer isLostAndUnreplaced(@Param("cardNum") Long cardNum);
+
+    /**
+     * 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤
+     * @param params
+     * @return
+     */
+    Long getCardsByClientNameAndPhoneCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�
+     * @param params
+     * @return
+     */
+    List<VoCards2> getCardsByClientNameAndPhone(Map<?, ?> params);
+
+
+    /**
+     * 鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃,灏忕▼搴忎娇鐢�
+     * @param clientId
+     * @return
+     */
+    List<VoCards3> getCardsByClientID(String clientId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCards2.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCards2.java
new file mode 100644
index 0000000..de9a14f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoCards2.java
@@ -0,0 +1,49 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/6/26  17:14
+ * @LastEditTime :2024/6/26  17:14
+ * @Description
+ */
+@Data
+@Schema(title = "鍐滄埛鍗¤鍥惧璞�")
+public class VoCards2 {
+    private static final long serialVersionUID = 202406261715001L;
+
+    @Schema(title = "姘村崱ID")
+    private String clientCardId;
+
+    @Schema(title = "鍐滄埛ID")
+    private String clientId;
+
+    @Schema(title = "鍐滄埛缂栧彿")
+    private String clientNum;
+
+    @Schema(title = "鍐滄埛濮撳悕")
+    private String clientName;
+
+    @Schema(title = "姘村崱缂栧彿")
+    private String cardNum;
+
+    @Schema(title = "鐢佃瘽鍙风爜")
+    private String phone;
+
+    @Schema(title = "韬唤璇佸彿鐮�")
+    private String idCard;
+
+    @Schema(title = "姘村崱鐘舵��")
+    private Integer cardState;
+
+    @Schema(title = "姘村崱鐘舵�佸悕绉�")
+    private String stateName;
+
+    @Schema(title = "姘村崱绫诲瀷")
+    private String cardType;
+
+    @Schema(title = "浣欓")
+    private String money;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voWe/VoCards3.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voWe/VoCards3.java
new file mode 100644
index 0000000..803ea6c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voWe/VoCards3.java
@@ -0,0 +1,49 @@
+package com.dy.pipIrrGlobal.voWe;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/6/26  17:14
+ * @LastEditTime :2024/6/26  17:14
+ * @Description
+ */
+@Data
+@Schema(title = "鍐滄埛鍗¤鍥惧璞�")
+public class VoCards3 {
+    private static final long serialVersionUID = 202406261715001L;
+
+    @Schema(title = "姘村崱ID")
+    private String clientCardId;
+
+    @Schema(title = "鍐滄埛ID")
+    private String clientId;
+
+    @Schema(title = "鍐滄埛缂栧彿")
+    private String clientNum;
+
+    @Schema(title = "鍐滄埛濮撳悕")
+    private String clientName;
+
+    @Schema(title = "姘村崱缂栧彿")
+    private String cardNum;
+
+    @Schema(title = "鐢佃瘽鍙风爜")
+    private String phone;
+
+    @Schema(title = "韬唤璇佸彿鐮�")
+    private String idCard;
+
+    @Schema(title = "姘村崱鐘舵��")
+    private Integer cardState;
+
+    @Schema(title = "姘村崱鐘舵�佸悕绉�")
+    private String stateName;
+
+    @Schema(title = "姘村崱绫诲瀷")
+    private String cardType;
+
+    @Schema(title = "浣欓")
+    private String money;
+}
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 20ef3f8..8a2ea9f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -448,5 +448,85 @@
       </if>
     </where>
   </select>
+  <!--鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤-->
+  <select id="getCardsByClientNameAndPhoneCount" resultType="java.lang.Long">
+    SELECT
+      COUNT(*) AS recordCount
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    <where>
+      card.state = 1
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
 
+      <if test = "phone != null and phone !=''">
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+    </where>
+    </select>
+  <!--鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�-->
+  <select id="getCardsByClientNameAndPhone" resultType="com.dy.pipIrrGlobal.voSe.VoCards2">
+    SELECT
+    card.id AS clientCardId,
+    cli.id AS clientId,
+    cli.clientNum,
+    cli.name AS clientName,
+    card.cardNum,
+    cli.phone,
+    cli.idCard,
+    card.state AS cardState,
+    (CASE
+    WHEN card.state = 1 THEN '姝e父'
+    WHEN card.state = 2 THEN '宸叉敞閿�'
+    WHEN card.state = 3 THEN '宸叉寕澶�'
+    End) AS stateName,
+    '鍐滄埛鍗�' AS cardType,
+    FORMAT(card.money, 2) AS money
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    <where>
+      card.state = 1
+      <if test = "clientName != null and clientName !=''">
+        AND cli.name like CONCAT('%',#{clientName},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+    </where>
+    ORDER BY card.id
+    <trim prefix="limit " >
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+  <!--鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃,灏忕▼搴忎娇鐢�-->
+  <select id="getCardsByClientID" resultType="com.dy.pipIrrGlobal.voWe.VoCards3">
+    SELECT
+    card.id AS clientCardId,
+    cli.id AS clientId,
+    cli.clientNum,
+    cli.name AS clientName,
+    card.cardNum,
+    cli.phone,
+    cli.idCard,
+    card.state AS cardState,
+    (CASE
+    WHEN card.state = 1 THEN '姝e父'
+    WHEN card.state = 2 THEN '宸叉敞閿�'
+    WHEN card.state = 3 THEN '宸叉寕澶�'
+    End) AS stateName,
+    '鍐滄埛鍗�' AS cardType,
+    FORMAT(card.money, 2) AS money
+    FROM se_client_card card
+    INNER JOIN se_client cli ON card.clientId = cli.id
+    where
+      card.state = 1
+      AND cli.id like CONCAT('%',#{clientId},'%')
+
+
+    ORDER BY card.id
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
index 93901fd..6a3ff0d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
@@ -8,7 +8,9 @@
 import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.voSe.VoCardInfo;
 import com.dy.pipIrrGlobal.voSe.VoCards;
+import com.dy.pipIrrGlobal.voSe.VoCards2;
 import com.dy.pipIrrSell.clientCard.qo.QoCards;
+import com.dy.pipIrrSell.clientCard.qo.QoCards2;
 import com.dy.pipIrrSell.result.SellResultCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -176,4 +178,25 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+    /**
+     * 鏍规嵁鍐滄埛濮撳悕銆佺數璇濇煡璇㈡甯哥姸鎬佺殑姘村崱鍒楄〃
+     * @param vo
+     * @return
+     */
+    @GetMapping(path = "getCardsByClientNameAndPhone")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoCards2>>> getCardsByClientNameAndPhone(QoCards2 vo){
+        try {
+            QueryResultVo<List<VoCards2>> res = clientCardSv.getCardsByClientNameAndPhone(vo);
+            if(res.itemTotal != null && res.itemTotal > 0) {
+                return BaseResponseUtils.buildSuccess(res);
+            }else {
+                return BaseResponseUtils.buildFail(SellResultCode.THE_CARD_NOT_EXIST.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鏌ヨ姘村崱寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
index 1951ae5..41af87c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
@@ -5,7 +5,9 @@
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import com.dy.pipIrrGlobal.voSe.VoCardInfo;
 import com.dy.pipIrrGlobal.voSe.VoCards;
+import com.dy.pipIrrGlobal.voSe.VoCards2;
 import com.dy.pipIrrSell.clientCard.qo.QoCards;
+import com.dy.pipIrrSell.clientCard.qo.QoCards2;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -149,4 +151,23 @@
 
         return rsVo ;
     }
+
+    /**
+     * 鏍规嵁鍐滄埛濮撳悕銆佺數璇濇煡璇㈡甯哥姸鎬佺殑姘村崱鍒楄〃
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoCards2>> getCardsByClientNameAndPhone(QoCards2 queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
+        Long itemTotal = seClientCardMapper.getCardsByClientNameAndPhoneCount(params);
+
+        QueryResultVo<List<VoCards2>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = queryVo.pageSize ;
+        rsVo.pageCurr = queryVo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = seClientCardMapper.getCardsByClientNameAndPhone(params);
+
+        return rsVo ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/qo/QoCards2.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/qo/QoCards2.java
new file mode 100644
index 0000000..a24893d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/qo/QoCards2.java
@@ -0,0 +1,25 @@
+package com.dy.pipIrrSell.clientCard.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author wuzeyu
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "姘村崱璁板綍鏌ヨ鏉′欢")
+public class QoCards2 extends QueryConditionVo {
+
+    @Schema(description = "鍐滄埛濮撳悕")
+    private String clientName;
+
+    @Schema(description = "鎵嬫満鍙�")
+    private String phone;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardCtrl.java
new file mode 100644
index 0000000..a697a95
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardCtrl.java
@@ -0,0 +1,49 @@
+package com.dy.pipIrrWechat.client;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.voWe.VoCards3;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/6/26  15:58
+ * @LastEditTime :2024/6/26  15:58
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鍐滄埛姘村崱鎿嶄綔", description = "鍐滄埛姘村崱鎿嶄綔")
+@RestController
+@RequestMapping(path="clientCard")
+public class ClientCardCtrl {
+    @Autowired
+    private ClientCardSv clientCardSv;
+
+    /**
+     * 鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃
+     * @param clientId
+     * @return
+     */
+    @GetMapping(path = "getCardsByClientID")
+    @SsoAop()
+    public BaseResponse<List<VoCards3>> getCardsByClientID(String clientId){
+        try {
+            List<VoCards3> res = clientCardSv.getCardsByClientID(clientId);
+
+                return BaseResponseUtils.buildSuccess(res);
+
+        } catch (Exception e) {
+            log.error("鏌ヨ姘村崱寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardSv.java
new file mode 100644
index 0000000..043abf9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/client/ClientCardSv.java
@@ -0,0 +1,32 @@
+package com.dy.pipIrrWechat.client;
+
+import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
+import com.dy.pipIrrGlobal.voWe.VoCards3;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/6/26  16:05
+ * @LastEditTime :2024/6/26  16:05
+ * @Description
+ */
+@Slf4j
+@Service
+public class ClientCardSv {
+
+    @Autowired
+    private SeClientCardMapper seClientCardMapper;
+    /**
+     * 鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃
+     * @param clientId
+     * @return
+     */
+    public List<VoCards3> getCardsByClientID(String clientId){
+
+        return seClientCardMapper.getCardsByClientID(clientId);
+    }
+}

--
Gitblit v1.8.0