From 5fefff8c747cbf5d526f6108a215bd813ac36034 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 11 六月 2025 13:44:17 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml | 58 +++++-
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 137 ++++++++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoUnlock.java | 43 ++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java | 48 ++--
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 19 ++
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientCtrl.java | 15 +
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 80 +++++++-
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java | 12 +
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientSv.java | 16 +
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java | 12
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTermCard.java | 74 ++++++++
11 files changed, 456 insertions(+), 58 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 15f798f..0773dfd 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
@@ -2,10 +2,7 @@
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.voSe.*;
import com.dy.pipIrrGlobal.voSt.VoCardUsage;
import com.dy.pipIrrGlobal.voWe.VoCards3;
import org.apache.ibatis.annotations.Mapper;
@@ -264,4 +261,11 @@
* @return
*/
Integer emptyCardBalance(@Param("orderNumber")String orderNumber);
+
+ /**
+ * 鍏呭�兼満鐢ㄨ幏鍙栧啘鎴锋按鍗′俊鎭�
+ * @param cardAddr
+ * @return
+ */
+ VoTermCard getTermCardInfo(@Param("cardAddr")String cardAddr);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java
index 6df948a..f552a42 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeManagerCardMapper.java
@@ -2,13 +2,14 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SeManagerCard;
+import com.dy.pipIrrGlobal.voSe.VoTermCard;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author ZhuBaoMin
- * @date 2024-07-24 10:36
- * @LastEditTime 2024-07-24 10:36
+ * @date 2025-06-11 10:34
+ * @LastEditTime 2025-06-11 10:34
* @Description
*/
@@ -32,4 +33,11 @@
* @return
*/
String getManagerCardNumOfMax(@Param("areaCode") String areaCode);
+
+ /**
+ * 鍏呭�兼満鐢ㄨ幏鍙栫鐞嗗崱淇℃伅
+ * @param cardAddr
+ * @return
+ */
+ VoTermCard getTermManagerCardInfo(@Param("cardAddr")String cardAddr);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java
index 932ba30..e22b5e9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagerCard.java
@@ -10,18 +10,13 @@
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.*;
-import org.hibernate.validator.constraints.Length;
-
import java.util.Date;
/**
* @author ZhuBaoMin
- * @date 2024-07-24 10:36
- * @LastEditTime 2024-07-24 10:36
- * @Description
- */
-/**
- * 绠$悊鍛樻按鍗¤〃
+ * @date 2025-06-11 10:34
+ * @LastEditTime 2025-06-11 10:34
+ * @Description 绠$悊鍛樻按鍗¤〃
*/
@TableName(value = "se_manager_card", autoResultMap = true)
@@ -31,42 +26,51 @@
@NoArgsConstructor
@AllArgsConstructor
public class SeManagerCard implements BaseEntity {
- public static final long serialVersionUID = 202407241040001L;
+ public static final long serialVersionUID = 202506111039001L;
/**
- * 涓婚敭
- */
+ * 涓婚敭
+ */
@JSONField(serializeUsing= ObjectWriterImplToString.class)
@TableId(type = IdType.INPUT)
private Long id;
/**
- * 鍗$墖鍦板潃
- */
+ * 閫氳鍗忚
+ */
+ private String protocol;
+
+ /**
+ * 鍗$墖鍦板潃
+ */
@NotBlank(message = "鍗$墖鍦板潃涓嶈兘涓虹┖")
private String cardAddr;
/**
- * 鍗$墖缂栧彿
- */
+ * 鍗$墖缂栧彿
+ */
@NotBlank(message = "鍗$墖缂栧彿涓嶈兘涓虹┖")
private String cardNum;
/**
- * 鍗$墖绫诲瀷;2-绠$悊绉戯紝4-宸℃鍗★紝5娓呯┖鍗�
- */
+ * 鍗$墖绫诲瀷;2-绠$悊绉戯紝4-宸℃鍗★紝5娓呯┖鍗�
+ */
@NotNull(message = "鍗$墖绫诲瀷涓嶈兘涓虹┖")
private Byte cardType;
/**
- * 寮�鍗℃椂闂�
- */
+ * 寮�鍗℃椂闂�
+ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
- * 澶囨敞淇℃伅
- */
- @Length(max = 200)
+ * 澶囨敞淇℃伅
+ */
private String remarks;
+
+ /**
+ * 璁㈠崟鍙�
+ */
+ private String orderNo;
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTermCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTermCard.java
new file mode 100644
index 0000000..4619578
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTermCard.java
@@ -0,0 +1,74 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-06-11 9:31
+ * @LastEditTime 2025-06-11 9:31
+ * @Description 鍏呭�兼満鐢ㄦ按鍗¤鍥惧璞�
+ */
+
+@Data
+@JsonPropertyOrder({"cardNum", "cardType", "money", "state", "userName", "clientNum", "phone", "address", "lastRechargeTime", "cardAgreement"})
+public class VoTermCard {
+ private static final long serialVersionUID = 202506110933001L;
+
+ /**
+ * 姘村崱缂栧彿
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
+ private Long cardNum;
+
+ /**
+ * 姘村崱绫诲瀷锛�1-鍐滄埛鍗★紝锛�
+ */
+ private Integer cardType;
+
+ /**
+ * 姘村崱浣欓
+ */
+ private Double money;
+
+ /*
+ 姘村崱鐘舵��:1-姝e父锛�2-宸叉敞閿�锛�3-宸叉寕澶憋紝4-鏃犳晥鍗$墖
+ */
+ private Integer state;
+
+ /**
+ * 鐢ㄦ埛鍚嶇О
+ */
+ private String userName;
+
+ /**
+ * 鐢ㄦ埛缂栧彿
+ */
+ private String clientNum;
+
+ /**
+ * 鎵嬫満鍙风爜
+ */
+ private String phone;
+
+ /**
+ * 鍦板潃
+ */
+ private String address;
+
+ /**
+ * 鏈�鍚庡厖鍊兼椂闂�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date lastRechargeTime;
+
+ /**
+ * 鍗″崗璁�
+ */
+ private String cardAgreement;
+}
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 cd74144..4ec263b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -788,4 +788,23 @@
SET money = 0
WHERE id = (SELECT original_card_id FROM se_client_card WHERE id = (SELECT card_id FROM se_card_operate WHERE order_no = #{orderNumber}))
</update>
+
+ <!--鍏呭�兼満鐢ㄨ幏鍙栧啘鎴锋按鍗′俊鎭�-->
+ <select id="getTermCardInfo" resultType="com.dy.pipIrrGlobal.voSe.VoTermCard">
+ SELECT
+ card.cardNum,
+ 1 AS cardType,
+ card.money,
+ card.state,
+ cli.name AS userName,
+ cli.clientNum,
+ cli.phone,
+ cli.address,
+ card.rechargeDt AS lastRechargeTime,
+ card.protocol AS cardAgreement
+ FROM se_client_card card
+ INNER JOIN se_client cli ON cli.id = card.clientId
+ WHERE card.cardAddr = #{cardAddr}
+ LIMIT 1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
index dc41740..01a62d3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
@@ -5,15 +5,17 @@
<!--@mbg.generated-->
<!--@Table se_manager_card-->
<id column="id" jdbcType="BIGINT" property="id" />
+ <result column="protocol" jdbcType="VARCHAR" property="protocol" />
<result column="card_addr" jdbcType="VARCHAR" property="cardAddr" />
<result column="card_num" jdbcType="VARCHAR" property="cardNum" />
<result column="card_type" jdbcType="TINYINT" property="cardType" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
+ <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, card_addr, card_num, card_type, create_time, remarks
+ id, protocol, card_addr, card_num, card_type, create_time, remarks, order_no
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
@@ -29,12 +31,12 @@
</delete>
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard">
<!--@mbg.generated-->
- insert into se_manager_card (id, card_addr, card_num,
- card_type, create_time, remarks
- )
- values (#{id,jdbcType=BIGINT}, #{cardAddr,jdbcType=VARCHAR}, #{cardNum,jdbcType=VARCHAR},
- #{cardType,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}
- )
+ insert into se_manager_card (id, protocol, card_addr,
+ card_num, card_type, create_time,
+ remarks, order_no)
+ values (#{id,jdbcType=BIGINT}, #{protocol,jdbcType=VARCHAR}, #{cardAddr,jdbcType=VARCHAR},
+ #{cardNum,jdbcType=VARCHAR}, #{cardType,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP},
+ #{remarks,jdbcType=VARCHAR}, #{orderNo,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard">
<!--@mbg.generated-->
@@ -42,6 +44,9 @@
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
+ </if>
+ <if test="protocol != null">
+ protocol,
</if>
<if test="cardAddr != null">
card_addr,
@@ -58,10 +63,16 @@
<if test="remarks != null">
remarks,
</if>
+ <if test="orderNo != null">
+ order_no,
+ </if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
+ </if>
+ <if test="protocol != null">
+ #{protocol,jdbcType=VARCHAR},
</if>
<if test="cardAddr != null">
#{cardAddr,jdbcType=VARCHAR},
@@ -78,12 +89,18 @@
<if test="remarks != null">
#{remarks,jdbcType=VARCHAR},
</if>
+ <if test="orderNo != null">
+ #{orderNo,jdbcType=VARCHAR},
+ </if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard">
<!--@mbg.generated-->
update se_manager_card
<set>
+ <if test="protocol != null">
+ protocol = #{protocol,jdbcType=VARCHAR},
+ </if>
<if test="cardAddr != null">
card_addr = #{cardAddr,jdbcType=VARCHAR},
</if>
@@ -99,17 +116,22 @@
<if test="remarks != null">
remarks = #{remarks,jdbcType=VARCHAR},
</if>
+ <if test="orderNo != null">
+ order_no = #{orderNo,jdbcType=VARCHAR},
+ </if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeManagerCard">
<!--@mbg.generated-->
update se_manager_card
- set card_addr = #{cardAddr,jdbcType=VARCHAR},
+ set protocol = #{protocol,jdbcType=VARCHAR},
+ card_addr = #{cardAddr,jdbcType=VARCHAR},
card_num = #{cardNum,jdbcType=VARCHAR},
card_type = #{cardType,jdbcType=TINYINT},
create_time = #{createTime,jdbcType=TIMESTAMP},
- remarks = #{remarks,jdbcType=VARCHAR}
+ remarks = #{remarks,jdbcType=VARCHAR},
+ order_no = #{orderNo,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
@@ -121,4 +143,22 @@
ORDER BY card_num desc
LIMIT 0,1
</select>
+
+ <!--鍏呭�兼満鐢ㄨ幏鍙栫鐞嗗崱淇℃伅-->
+ <select id="getTermManagerCardInfo" resultType="com.dy.pipIrrGlobal.voSe.VoTermCard">
+ SELECT
+ card_num AS cardNum,
+ card_type AS cardType,
+ NULL AS money,
+ NULL AS state,
+ NULL AS userName,
+ NULL AS clientNum,
+ NULL AS phone,
+ NULL AS address,
+ NULL AS lastRechargeTime,
+ card.protocol AS cardcardAgreement
+ FROM se_manager_card card
+ WHERE card.card_addr = #{cardAddr}
+ LIMIT 1
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
index 8e56ce4..defb115 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
@@ -3,7 +3,10 @@
import com.dy.common.aop.SsoAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voSe.VoTermActiveCard;
+import com.dy.pipIrrGlobal.voSe.VoTermCard;
+import com.dy.pipIrrGlobal.voSe.VoTermClient;
import com.dy.pipIrrGlobal.voSe.VoTermCommon;
import com.dy.pipIrrTerminal.card.dto.*;
import jakarta.validation.Valid;
@@ -11,11 +14,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.validation.BindingResult;
-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 org.springframework.web.bind.annotation.*;
+import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -35,6 +36,7 @@
/**
* 寮�鍗★紙鍚厖鍊硷級
+ *
* @param po
* @param bindingResult
* @return
@@ -47,15 +49,16 @@
}
Map map_result = cardSv.activeOrReissueTermCard(po);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
/**
* 鍏呭��
+ *
* @param po
* @param bindingResult
* @return
@@ -68,15 +71,16 @@
}
Map map_result = cardSv.addRecharge(po, null);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
/**
* 鎸傚け
+ *
* @param po
* @param bindingResult
* @return
@@ -89,15 +93,38 @@
}
Map map_result = cardSv.reportLoss(po);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
+
+ }
+
+ /**
+ * 瑙i攣
+ *
+ * @param po
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "termUnlock", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<Boolean> termUnlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ Map map_result = cardSv.unlock(po);
+ if (map_result.get("success").equals(false)) {
+ return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
+ }
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
/**
* 琛ュ崱
+ *
* @param po
* @param bindingResult
* @return
@@ -110,15 +137,16 @@
}
Map map_result = cardSv.reissue(po);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
/**
* 閿�鍗�
+ *
* @param po
* @param bindingResult
* @return
@@ -131,15 +159,16 @@
}
Map map_result = cardSv.cancel(po);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
/**
* 鎿嶄綔鎵ц鍥炶皟
+ *
* @param po
* @param bindingResult
* @return
@@ -152,9 +181,26 @@
}
Map map_result = cardSv.callBack(po);
- if(map_result.get("success").equals(false)) {
+ if (map_result.get("success").equals(false)) {
return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
}
- return BaseResponseUtils.buildSuccess(map_result.get("content")) ;
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
}
-}
+
+ /**
+ * 璇诲彇鍗′俊鎭�
+ * @param cardAddr
+ * @return
+ */
+ @GetMapping(path = "readCard")
+ @SsoAop()
+ public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr){
+ try {
+ return BaseResponseUtils.buildSuccess(cardSv.readCard(cardAddr));
+ } catch (Exception e) {
+ log.error("鏌ヨ鍐滄埛寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
index 5c63db2..d915722 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -1,15 +1,14 @@
package com.dy.pipIrrTerminal.card;
+import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
-import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
-import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
-import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
-import com.dy.pipIrrGlobal.daoSe.SeRechargeHistoryMapper;
+import com.dy.pipIrrGlobal.daoSe.*;
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
import com.dy.pipIrrGlobal.voSe.VoAfterRecharge;
import com.dy.pipIrrGlobal.voSe.VoTermActiveCard;
+import com.dy.pipIrrGlobal.voSe.VoTermCard;
import com.dy.pipIrrGlobal.voSe.VoTermCommon;
import com.dy.pipIrrTerminal.card.dto.*;
import com.dy.pipIrrTerminal.card.enums.CardStateENUM;
@@ -50,6 +49,9 @@
@Autowired
private SeRechargeHistoryMapper seRechargeHistoryMapper;
+
+ @Autowired
+ private SeManagerCardMapper seManagerCardMapper;
@Value("${project.projectNo}")
private Integer projectNo;
@@ -131,6 +133,39 @@
return map;
}
+ /**
+ * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互瑙i攣
+ * @param po
+ * @return
+ */
+ public Map canUnlock(DtoUnlock po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+
+ Long cardNum = po.getCardNum();
+ // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶卞叾鏈ˉ鍗$殑鍙互瑙i攣
+ if (!isLostAndUnreplaced(cardNum)) {
+ map.put("msg", "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
+ return map;
+ }
+
+ /**
+ * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+ */
+ Map map_card = Optional.ofNullable(seClientCardMapper.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+ if (map_card == null || map_card.size() <= 0) {
+ map.put("msg", "鍗″彿閿欒锛岃鍗′笉瀛樺湪");
+ return map;
+ }
+ CardSimple card = new CardSimple();
+ card.setCardId(Long.parseLong(map_card.get("cardId").toString()));
+ card.setClientId(Long.parseLong(map_card.get("clientId").toString()));
+
+ map.put("success", true);
+ map.put("content", card);
+ return map;
+ }
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ュ崱
* @param po
@@ -612,6 +647,67 @@
}
/**
+ * 瑙i攣
+ * @param po
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public Map unlock(DtoUnlock po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+
+ Map map_canUnlock = canUnlock(po);
+ if(map_canUnlock.get("success").equals(false)) {
+ map.put("msg", map_canUnlock.get("msg").toString());
+ return map;
+ }
+ CardSimple card = (CardSimple) map_canUnlock.get("content");
+ Long cardId = card.getCardId();
+ Long clientId = card.getClientId();
+
+ /**
+ * 淇敼鍐滄埛鍗′俊鎭細
+ * 鎸傚け鏃堕棿
+ * 鏈�鍚庢搷浣滅被鍨�-4
+ */
+ SeClientCard seClientCard = new SeClientCard();
+ seClientCard.setId(cardId);
+ seClientCard.setUnlockdt(new Date());
+ seClientCard.setMoney(po.getMoney());
+ seClientCard.setState(CardStateENUM.NORMAL.getCode());
+ seClientCard.setLastoper(LastOperateENUM.UNLOCK.getCode());
+ Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0);
+ if (rec_updateClientCard == 0) {
+ map.put("msg", "瑙i攣澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�");
+ return map;
+ }
+
+ /**
+ * 娣诲姞瑙i攣璁板綍
+ */
+ SeCardOperate seCardOperate = new SeCardOperate();
+ seCardOperate.setCardId(cardId);
+ seCardOperate.setClientId(clientId);
+ seCardOperate.setMoney(po.getMoney());
+ seCardOperate.setOperateType(OperateTypeENUM.UNLOCK.getCode());
+ seCardOperate.setRemarks(po.getRemarks());
+ seCardOperate.setOperator(po.getOperator());
+ seCardOperate.setOperateDt(new Date());
+ seCardOperate.setOperateValid((byte) 2);
+ seCardOperateMapper.insert(seCardOperate);
+ Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L);
+ if (rec == 0) {
+ map.put("msg", "瑙i攣澶辫触-瑙i攣璁板綍鍐欏叆寮傚父");
+ return map;
+ }
+
+ map.put("success", true);
+ map.put("msg", "鎿嶄綔鎴愬姛");
+ return map;
+ }
+
+ /**
* 閿�鍗�
* @param po
* @return
@@ -819,4 +915,37 @@
clientCard.setLastoper(LastOperateENUM.CANCEL.getCode());
return seClientCardMapper.updateByPrimaryKeySelective(clientCard);
}
+
+ /**
+ * 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰�
+ * @param cardNum
+ * @return
+ */
+ public Boolean isLostAndUnreplaced(Long cardNum) {
+ Integer lostCount = seClientCardMapper.getLostCount(cardNum);
+ Integer replacedCount = seClientCardMapper.getReplacedCount(cardNum);
+ if (lostCount > 0 && replacedCount == 0) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * 璇诲彇姘村崱淇℃伅
+ * @param cardAddr
+ * @return
+ */
+ public VoTermCard readCard(String cardAddr) {
+ VoTermCard voTermCard = seClientCardMapper.getTermCardInfo(cardAddr);
+ if(voTermCard != null) {
+ return voTermCard;
+ }
+
+ VoTermCard voTermManagerCard = seManagerCardMapper.getTermManagerCardInfo(cardAddr);
+ if(voTermManagerCard != null) {
+ return voTermManagerCard;
+ }
+
+ return null;
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoUnlock.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoUnlock.java
new file mode 100644
index 0000000..fdde30f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoUnlock.java
@@ -0,0 +1,43 @@
+package com.dy.pipIrrTerminal.card.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-06-10 17:01
+ * @LastEditTime 2025-06-10 17:01
+ * @Description 瑙i攣浼犺緭瀵硅薄
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class DtoUnlock {
+ public static final long serialVersionUID = 202506101702001L;
+
+ /**
+ * 姘村崱缂栧彿
+ */
+ @NotNull(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+ private Long cardNum;
+
+ /**
+ * 浣欓
+ */
+ @NotNull(message = "浣欓涓嶈兘涓虹┖")
+ private Float money;
+
+ /**
+ * 澶囨敞淇℃伅
+ */
+ private String remarks;
+
+ /**
+ * 鎿嶄綔浜虹紪鍙�
+ */
+ @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+ private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientCtrl.java
index 59e84d5..4fff75c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientCtrl.java
@@ -64,4 +64,19 @@
return BaseResponseUtils.buildException(e.getMessage()) ;
}
}
+
+ /**
+ * 鑾峰彇姘翠环
+ * @return
+ */
+ @GetMapping(path = "getWaterPrice")
+ @SsoAop()
+ public BaseResponse<Boolean> getWaterPrice(){
+ try {
+ return BaseResponseUtils.buildSuccess(clientSv.getWaterPrice());
+ } catch (Exception e) {
+ log.error("鏌ヨ鍐滄埛寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage()) ;
+ }
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientSv.java
index 2760b73..af3bc13 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/client/ClientSv.java
@@ -1,6 +1,8 @@
package com.dy.pipIrrTerminal.client;
+import com.alibaba.fastjson2.JSONObject;
import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
import com.dy.pipIrrGlobal.voSe.VoClient;
import com.dy.pipIrrGlobal.voSe.VoTermClient;
@@ -27,6 +29,8 @@
@Autowired
private SeClientMapper seClientMapper;
+ @Autowired
+ private PrWaterPriceMapper prWaterPriceMapper;
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁_鍏呭�兼満
* @param queryVo
@@ -54,4 +58,16 @@
public VoTermClient getTermOneClient(Long clientId) {
return seClientMapper.getTermOneClient(clientId);
}
+
+
+ /**
+ * 鑾峰彇姘翠环
+ * @return
+ */
+ public JSONObject getWaterPrice() {
+ Double price = prWaterPriceMapper.getPrice();
+ JSONObject rs = new JSONObject();
+ rs.put("price", price);
+ return rs;
+ }
}
--
Gitblit v1.8.0