From 169efb6680990457812e24fe038c9d251fac4ec3 Mon Sep 17 00:00:00 2001
From: zuojincheng <lf_zuo@163.com>
Date: 星期二, 24 六月 2025 20:11:17 +0800
Subject: [PATCH] feat(card): 添加创建管理卡功能并优化卡片地址校验
---
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 192 ++++++++++++++++----
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java | 82 +++++++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 16 +
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 129 +++++++++----
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java | 62 +++++-
5 files changed, 388 insertions(+), 93 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 1029716..8757677 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
@@ -35,6 +35,7 @@
/**
* 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級
* 2024-06-30鍙栨秷搴熷純锛屾仮澶嶄娇鐢�
+ *
* @param cardAddr
* @return
*/
@@ -42,6 +43,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�
+ *
* @param cardNum 16浣嶆按鍗$紪鍙�
* @return 姘村崱琛ㄤ富閿�
*/
@@ -49,6 +51,7 @@
/**
* 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙�
+ *
* @param areaCode
* @return
*/
@@ -56,6 +59,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+ *
* @param cardNum
* @return
*/
@@ -63,6 +67,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱瀵瑰簲鐨勫啘鎴穒d鍜屽鍚�
+ *
* @param cardAddr
* @param cardNum
* @return
@@ -71,6 +76,7 @@
/**
* 寰楀埌姘村崱瀵硅薄
+ *
* @param cardAddr
* @param cardNum
* @return
@@ -79,6 +85,7 @@
/**
* 鏍规嵁鍐滄埛涓婚敭鑾峰彇姘村崱鍒楄〃锛堢墿鐞嗗崱+铏氭嫙鍗★級
+ *
* @param clientId
* @return
*/
@@ -86,6 +93,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃
+ *
* @param cardNum 姘村崱缂栧彿
* @return 姘村崱鎿嶄綔璁板綍鍒楄〃
*/
@@ -93,6 +101,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇浣欓
+ *
* @param cardNum 姘村崱缂栧彿
* @return 浣欓
*/
@@ -100,6 +109,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鍏呭�兼�婚
+ *
* @param cardNum
* @return
*/
@@ -107,6 +117,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鍗$墖鐘舵��
+ *
* @param cardNum
* @return
*/
@@ -114,6 +125,7 @@
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤
+ *
* @param params
* @return
*/
@@ -121,6 +133,7 @@
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�
+ *
* @param params
* @return
*/
@@ -128,18 +141,21 @@
/**
* 鑾峰彇宸叉寕澶憋紝鏈ˉ鍗$殑璁板綍鏁伴噺锛屽簲鐢ㄧ▼搴忎娇鐢�
+ *
* @return
*/
Long getUnreplacedRecordCount();
/**
* 鑾峰彇宸叉寕澶憋紝鏈ˉ鍗$殑璁板綍锛屽簲鐢ㄧ▼搴忎娇鐢�
+ *
* @return
*/
List<VoCards> getUnreplaced(Map<?, ?> params);
/**
* 鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇鎸傚け璁板綍鏁伴噺锛堣ˉ鍗°�佽В閿佷娇鐢級
+ *
* @param cardNum
* @return
*/
@@ -147,6 +163,7 @@
/**
* 鏍规嵁鎸囧畾姘村崱缂栧彿鑾峰彇宸茶ˉ鍗℃暟閲忥紙琛ュ崱銆佽В閿佷娇鐢級
+ *
* @param cardNum 姘村崱缂栧彿
* @return 绗﹀悎鏉′欢璁板綍鏁帮紝鏈�澶氫竴鏉�
*/
@@ -154,6 +171,7 @@
/**
* 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃璁板綍鏁帮紝搴旂敤绋嬪簭浣跨敤
+ *
* @param params
* @return
*/
@@ -161,14 +179,15 @@
/**
* 鏍规嵁鍐滄埛濮撳悕鍜屾墜鏈哄彿鑾峰彇姘村崱鍒楄〃锛屽簲鐢ㄧ▼搴忎娇鐢�
+ *
* @param params
* @return
*/
List<VoCards2> getCardsByClientNameAndPhone(Map<?, ?> params);
-
/**
* 鏍规嵁鍐滄埛ID鏌ヨ姝e父鐘舵�佺殑姘村崱鍒楄〃,灏忕▼搴忎娇鐢�
+ *
* @param clientId
* @return
*/
@@ -176,13 +195,15 @@
/**
* 鏇存柊瀹炰綋鍗″墿浣欓噾棰�
+ *
* @param id
* @param money
*/
- void updateMoney(@Param("id")Long id , @Param("money")Double money);
+ void updateMoney(@Param("id") Long id, @Param("money") Double money);
/**
- *褰撳墠浣欓鎬婚噺锛堢墿鐞嗗崱锛�
+ * 褰撳墠浣欓鎬婚噺锛堢墿鐞嗗崱锛�
+ *
* @param
* @return
*/
@@ -190,6 +211,7 @@
/**
* 鏍规嵁姘村崱鍦板潃鑾峰彇姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗★紝鏃犳晥鍗$墖鎺掗櫎鍦ㄥ
+ *
* @param cardAddr
* @return
*/
@@ -197,14 +219,15 @@
/**
* 鏍规嵁姘村崱鍦板潃鑾峰彇鎸囧畾鐘舵�佺殑姘村崱鏁伴噺锛岀敤鏉ュ垽鏂鍗℃槸鍚﹀厑璁稿紑鍗�
+ *
* @param cardAddr
* @return
*/
Long getCountByCardAddrAndState(String cardAddr);
-
/**
* 鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐佃褰曟暟閲�
+ *
* @param params
* @return
*/
@@ -212,6 +235,7 @@
/**
* 鑾峰彇鎸囧畾鏃堕棿娈垫按鍗′娇鐢ㄦ儏鍐碉細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�
+ *
* @param params
* @return
*/
@@ -219,37 +243,42 @@
/**
* 鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱鍏呭�兼�昏
+ *
* @param timeStart
* @param timeStop
* @return
*/
- Float getTotalRecharge(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop);
+ Float getTotalRecharge(@Param("timeStart") String timeStart, @Param("timeStop") String timeStop);
/**
* 鑾峰彇鎸囧畾鏃堕棿娈靛唴姘村崱娑堣垂鎬昏
+ *
* @param timeStart
* @param timeStop
* @return
*/
- Float getTotalConsumption(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop);
+ Float getTotalConsumption(@Param("timeStart") String timeStart, @Param("timeStop") String timeStop);
/**
* 渚濇嵁姘村崱鍦板潃灏嗘渶鍚庝竴鏉℃棤鏁堢姸鎬佺殑鎸囧畾鎿嶄綔璁板綍鏀逛负鏈夋晥
+ *
* @param cardAddr
* @param operateType
* @return
*/
- Integer turnCardValidByAddr(@Param("cardAddr")String cardAddr, @Param("operateType")Integer operateType);
+ Integer turnCardValidByAddr(@Param("cardAddr") String cardAddr, @Param("operateType") Integer operateType);
/**
* 鍏呭�兼満鐢ㄦ牴鎹鍗曞彿灏嗘按鍗℃敼涓烘湁鏁�
+ *
* @param orderNumber
* @return
*/
- Integer turnCardValidByOrderNumber(@Param("orderNumber")String orderNumber);
+ Integer turnCardValidByOrderNumber(@Param("orderNumber") String orderNumber);
/**
* 鏍规嵁姘村崱ID鑾峰彇鍘熸按鍗D锛岃ˉ鍗¢�氱煡涓娇鐢�
+ *
* @param cardId
* @return
*/
@@ -257,20 +286,23 @@
/**
* 鍏呭�兼満鐢ㄦ牴鎹ˉ鍗$殑璁㈠崟鍙峰皢鎸傚け姘村崱浣欓缃浂
+ *
* @param orderNumber
* @return
*/
- Integer emptyCardBalance(@Param("orderNumber")String orderNumber);
+ Integer emptyCardBalance(@Param("orderNumber") String orderNumber);
/**
* 鍏呭�兼満鐢ㄨ幏鍙栧啘鎴锋按鍗′俊鎭�
+ *
* @param cardAddr
* @return
*/
- VoTermCard getTermCardInfo(@Param("cardAddr")String cardAddr);
+ VoTermCard getTermCardInfo(@Param("cardAddr") String cardAddr);
/**
* 鑾峰彇宸叉寕澶辨按鍗″垪琛ㄨ褰曟暟閲�
+ *
* @param params
* @return
*/
@@ -278,6 +310,7 @@
/**
* 鑾峰彇宸叉寕澶辨按鍗″垪琛�
+ *
* @param params
* @return
*/
@@ -285,8 +318,17 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ *
* @param cardNum
* @return
*/
VoCardByClientNum getCardByCardNum(@Param("cardNum") String cardNum);
+
+ /**
+ * 妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦紙绠$悊鍗¤〃 + 鍐滄埛姘村崱琛級
+ *
+ * @param cardAddr 鍗″湴鍧�
+ * @return 瀛樺湪鐨勮褰曟暟閲�
+ */
+ Long checkCardAddrExists(@Param("cardAddr") String cardAddr);
}
\ No newline at end of file
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 f00cfd5..c60504f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -864,4 +864,20 @@
ORDER BY card.createDt DESC
LIMIT 1
</select>
+
+ <!--妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦紙绠$悊鍗¤〃 + 鍐滄埛姘村崱琛級-->
+ <select id="checkCardAddrExists" resultType="java.lang.Long">
+ SELECT COUNT(*) AS totalCount FROM (
+ -- 妫�鏌ョ鐞嗗崱琛ㄤ腑鐨勬墍鏈夎褰�
+ SELECT card_addr FROM se_management_card
+ WHERE card_addr = #{cardAddr}
+
+ UNION ALL
+
+ -- 妫�鏌ュ啘鎴锋按鍗¤〃涓甯�(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍
+ SELECT cardAddr FROM se_client_card
+ WHERE cardAddr = #{cardAddr}
+ AND state IN (1, 3)
+ ) AS combined_result
+ </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 6720c46..ea8f0f8 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
@@ -48,9 +48,11 @@
*/
@PostMapping(path = "termActiveCard", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<VoTermActiveCard> termActiveCard(@RequestBody @Valid ActiveCard po, BindingResult bindingResult) {
+ public BaseResponse<VoTermActiveCard> termActiveCard(@RequestBody @Valid ActiveCard po,
+ BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.activeOrReissueTermCard(po);
@@ -72,7 +74,8 @@
@SsoAop()
public BaseResponse<VoTermCommon> termRecharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.addRecharge(po, null);
@@ -94,7 +97,8 @@
@SsoAop()
public BaseResponse<Boolean> termReportLoss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.reportLoss(po);
@@ -116,7 +120,8 @@
@SsoAop()
public BaseResponse<Boolean> termUnlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.unlock(po);
@@ -138,7 +143,8 @@
@SsoAop()
public BaseResponse<VoTermCommon> termReissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.reissue(po);
@@ -160,7 +166,8 @@
@SsoAop()
public BaseResponse<VoTermCommon> termCancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.cancel(po);
@@ -173,22 +180,25 @@
/**
* 琛ユ墸
+ *
* @param po
* @param bindingResult
* @return
*/
@PostMapping(path = "termRepay", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<VoRepaySupplement> termRepay(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) {
+ public BaseResponse<VoRepaySupplement> termRepay(@RequestBody @Valid DtoRepaySupplement po,
+ BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
- if(po.getRepayMorny() == null || po.getRepayMorny() <= 0) {
+ if (po.getRepayMorny() == null || po.getRepayMorny() <= 0) {
return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘涓虹┖涓旈渶澶т簬0");
}
- if(po.getRepayMorny() > po.getBalance()) {
+ if (po.getRepayMorny() > po.getBalance()) {
return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘澶т簬琛ユ墸鍓嶄綑棰�");
}
@@ -201,18 +211,21 @@
/**
* 杩旇繕
+ *
* @param po
* @param bindingResult
* @return
*/
@PostMapping(path = "supplement", consumes = MediaType.APPLICATION_JSON_VALUE)
@SsoAop()
- public BaseResponse<VoRepaySupplement> supplement(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) {
+ public BaseResponse<VoRepaySupplement> supplement(@RequestBody @Valid DtoRepaySupplement po,
+ BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
- if(po.getSupplementMoney() == null || po.getSupplementMoney() <= 0) {
+ if (po.getSupplementMoney() == null || po.getSupplementMoney() <= 0) {
return BaseResponseUtils.buildErrorMsg("杩旇繕閲戦涓嶈兘涓虹┖涓旈渶澶т簬0");
}
@@ -234,7 +247,8 @@
@SsoAop()
public BaseResponse<Boolean> termCallBack(@RequestBody @Valid DtoCallBack po, BindingResult bindingResult) {
if (bindingResult != null && bindingResult.hasErrors()) {
- return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
}
Map map_result = cardSv.callBack(po);
@@ -246,93 +260,85 @@
/**
* 璇诲彇鍗′俊鎭�
+ *
* @param cardAddr
* @return
*/
@GetMapping(path = "readCard")
@SsoAop()
- public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr){
+ public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr) {
try {
VoTermCard voTermCard = cardSv.readCard(cardAddr);
- if(voTermCard == null) {
+ if (voTermCard == null) {
return BaseResponseUtils.buildNonExist();
}
return BaseResponseUtils.buildSuccess(voTermCard);
} catch (Exception e) {
log.error("鏌ヨ鍐滄埛寮傚父", e);
- return BaseResponseUtils.buildException(e.getMessage()) ;
+ return BaseResponseUtils.buildException(e.getMessage());
}
}
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢�
+ *
* @param vo
* @return
*/
@Operation(summary = "鑾峰緱涓�椤垫按鍗¤褰�", description = "杩斿洖涓�椤垫按鍗℃暟鎹�")
@ApiResponses(value = {
- @ApiResponse(
- responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
- description = "杩斿洖涓�椤垫按鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
- content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
- schema = @Schema(implementation = VoCards.class))}
- )
+ @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�椤垫按鍗℃暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", content = {
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCards.class)) })
})
@GetMapping(path = "getcards")
@SsoAop()
- public BaseResponse<QueryResultVo<List<VoCards>>> getcards(QoCards vo){
+ public BaseResponse<QueryResultVo<List<VoCards>>> getcards(QoCards vo) {
try {
QueryResultVo<List<VoCards>> res = cardSv.getCards(vo);
return BaseResponseUtils.buildSuccess(res);
} catch (Exception e) {
log.error("鏌ヨ姘村崱寮傚父", e);
- return BaseResponseUtils.buildException(e.getMessage()) ;
+ return BaseResponseUtils.buildException(e.getMessage());
}
}
/**
* 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃锛岀粓绔簲鐢ㄧ▼搴忎娇鐢�
+ *
* @param vo
* @return
*/
@Operation(summary = "鑾峰緱涓�椤靛凡鎸傚け姘村崱璁板綍", description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁")
@ApiResponses(value = {
- @ApiResponse(
- responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
- description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
- content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
- schema = @Schema(implementation = VoCards.class))}
- )
+ @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖涓�椤靛凡鎸傚け姘村崱鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", content = {
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCards.class)) })
})
@GetMapping(path = "getlostcards")
@SsoAop()
- public BaseResponse<QueryResultVo<List<VoCards>>> getLostCards(QoLostCards vo){
+ public BaseResponse<QueryResultVo<List<VoCards>>> getLostCards(QoLostCards vo) {
try {
QueryResultVo<List<VoCards>> res = cardSv.getLostCards(vo);
return BaseResponseUtils.buildSuccess(res);
} catch (Exception e) {
log.error("鏌ヨ宸叉寕澶辨按鍗″紓甯�", e);
- return BaseResponseUtils.buildException(e.getMessage()) ;
+ return BaseResponseUtils.buildException(e.getMessage());
}
}
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ *
* @param cardNum 姘村崱缂栧彿
* @return
*/
@Operation(summary = "鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�", description = "鏍规嵁姘村崱缂栧彿鑾峰彇瀵瑰簲鐨勫崱淇℃伅")
@ApiResponses(value = {
- @ApiResponse(
- responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
- description = "杩斿洖鍗′俊鎭紙BaseResponse.content:VoCardByClientNum锛�",
- content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
- schema = @Schema(implementation = VoCardByClientNum.class))}
- )
+ @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "杩斿洖鍗′俊鎭紙BaseResponse.content:VoCardByClientNum锛�", content = {
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = VoCardByClientNum.class)) })
})
@GetMapping(path = "getcardbycardnum")
@SsoAop()
- public BaseResponse<VoCardByClientNum> getCardByCardNum(@RequestParam String cardNum){
+ public BaseResponse<VoCardByClientNum> getCardByCardNum(@RequestParam String cardNum) {
try {
VoCardByClientNum res = cardSv.getCardByCardNum(cardNum);
if (res == null) {
@@ -341,7 +347,46 @@
return BaseResponseUtils.buildSuccess(res);
} catch (Exception e) {
log.error("鏍规嵁姘村崱缂栧彿鏌ヨ鍗′俊鎭紓甯�", e);
- return BaseResponseUtils.buildException(e.getMessage()) ;
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
+
+ /**
+ * 鍒涘缓绠$悊鍗�
+ *
+ * @param dto 鍒涘缓绠$悊鍗″弬鏁�
+ * @param bindingResult 鍙傛暟楠岃瘉缁撴灉
+ * @return 鍒涘缓缁撴灉
+ */
+ @Operation(summary = "鍒涘缓绠$悊鍗�", description = "鍒涘缓鍏呭�兼満鐢ㄧ鐞嗗崱")
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "鍒涘缓鎴愬姛锛岃繑鍥炶鍗曞彿", content = {
+ @Content(mediaType = MediaType.APPLICATION_JSON_VALUE) })
+ })
+ @PostMapping(path = "createManagementCard", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<String> createManagementCard(@RequestBody @Valid CreateManagementCardDto dto,
+ BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils
+ .buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ // 楠岃瘉鍗$墖绫诲瀷鏄惁鍦ㄥ厑璁歌寖鍥村唴
+ if (dto.getCardType() < 2 || dto.getCardType() > 10) {
+ return BaseResponseUtils.buildErrorMsg("鍗$墖绫诲瀷蹇呴』鍦�2-10涔嬮棿");
+ }
+
+ // 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦�
+ if (cardSv.isCardAddrExists(dto.getCardAddr())) {
+ return BaseResponseUtils.buildErrorMsg("璇ュ崱鐗囧湴鍧�宸插瓨鍦紝璇蜂娇鐢ㄥ叾浠栧湴鍧�");
+ }
+
+ Map<String, Object> result = cardSv.createManagementCard(dto);
+ if ((Boolean) result.get("success")) {
+ return BaseResponseUtils.buildSuccess((String) result.get("content"));
+ } else {
+ return BaseResponseUtils.buildErrorMsg(result.get("msg").toString());
}
}
}
\ 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 0aeff56..33e01ca 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
@@ -6,6 +6,7 @@
import com.dy.pipIrrGlobal.daoSe.*;
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.pojoSe.SeManagementCard;
import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrTerminal.card.dto.*;
@@ -54,11 +55,15 @@
@Autowired
private SeManagerCardMapper seManagerCardMapper;
+ @Autowired
+ private SeManagementCardMapper seManagementCardMapper;
+
@Value("${project.projectNo}")
private Integer projectNo;
/**
* 鏍规嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗�
+ *
* @param cardAddr
* @return true:鍙互寮�鍗�
*/
@@ -80,6 +85,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互鍏呭��
+ *
* @param po
* @return true:鍙互鍏呭��
*/
@@ -90,7 +96,7 @@
String stateName = Optional.ofNullable(seClientCardMapper.getCardStateByCardNum(po.getCardNum())).orElse("");
// 鍗曠嫭鍏呭�兼椂鍗$墖蹇呴』涓烘甯�
- if((po.getRechargeType() == RechargeTypeENUM.RECHARGE.getCode()) && !stateName.equals("姝e父")) {
+ if ((po.getRechargeType() == RechargeTypeENUM.RECHARGE.getCode()) && !stateName.equals("姝e父")) {
map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
return map;
}
@@ -101,6 +107,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互鎸傚け
+ *
* @param po
* @return true:鍙互鎶ュけ
*/
@@ -111,7 +118,7 @@
Long cardNum = po.getCardNum();
String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
- if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
return map;
}
@@ -127,7 +134,7 @@
CardSimple card = new CardSimple();
card.setCardId(Long.parseLong(map_card.get("cardId").toString()));
card.setClientId(Long.parseLong(map_card.get("clientId").toString()));
- //card.setProtocol(map_card.get("protocol").toString());
+ // card.setProtocol(map_card.get("protocol").toString());
map.put("success", true);
map.put("content", card);
@@ -136,6 +143,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互瑙i攣
+ *
* @param po
* @return
*/
@@ -167,8 +175,10 @@
map.put("content", card);
return map;
}
+
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ュ崱
+ *
* @param po
* @return true:鍙互琛ュ崱
*/
@@ -180,7 +190,7 @@
Long cardNum = po.getCardNum();
Integer lostCount = seClientCardMapper.getLostCount(cardNum);
Integer replacedCount = seClientCardMapper.getReplacedCount(cardNum);
- if(lostCount == 0 || replacedCount > 0) {
+ if (lostCount == 0 || replacedCount > 0) {
map.put("msg", "姘村崱鏈寕澶辨垨宸茶ˉ鍗★紝涓嶈兘琛ュ崱");
return map;
}
@@ -212,6 +222,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互娉ㄩ攢
+ *
* @param po
* @return
*/
@@ -222,7 +233,7 @@
Long cardNum = po.getCardNum();
String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
- if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
return map;
}
@@ -246,6 +257,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ユ墸
+ *
* @param po
* @return
*/
@@ -256,7 +268,7 @@
Long cardNum = po.getCardNum();
String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
- if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
return map;
}
@@ -280,6 +292,7 @@
/**
* 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互杩旇繕
+ *
* @param po
* @return
*/
@@ -290,7 +303,7 @@
Long cardNum = po.getCardNum();
String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
- if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ if (stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
return map;
}
@@ -314,6 +327,7 @@
/**
* 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤
+ *
* @param clientId
* @return
*/
@@ -435,6 +449,7 @@
/**
* 寮�鍗¢檮鍔犲厖鍊�
+ *
* @param po
* @param cardNum
* @return
@@ -468,6 +483,7 @@
/**
* 婵�娲绘垨琛ュ崱
+ *
* @param po
* @return
*/
@@ -485,7 +501,7 @@
}
Map map_cardNum = generateCardNum(po.getClientId());
- if(map_cardNum.get("success").equals(false)) {
+ if (map_cardNum.get("success").equals(false)) {
map.put("msg", map_cardNum.get("msg").toString());
return map;
}
@@ -493,14 +509,14 @@
String orderNo = generateOrderNo();
Map map_addCardAndOperate = addCardAndOperate(po, cardNum, orderNo);
- if(map_addCardAndOperate.get("success").equals(false)) {
+ if (map_addCardAndOperate.get("success").equals(false)) {
map.put("msg", map_addCardAndOperate.get("msg").toString());
return map;
}
if (amount != null && amount > 0 && originalCardId == null) {
Map map_plusRecharge = plusRecharge(po, cardNum, orderNo);
- if(map_plusRecharge.get("success").equals(false)) {
+ if (map_plusRecharge.get("success").equals(false)) {
map.put("msg", map_plusRecharge.get("msg").toString());
return map;
}
@@ -525,6 +541,7 @@
/**
* 鍏呭��
+ *
* @param po
* @return
*/
@@ -535,7 +552,7 @@
map.put("content", null);
Map map_canRecharge = canRecharge(po);
- if(map_canRecharge.get("success").equals(false)) {
+ if (map_canRecharge.get("success").equals(false)) {
map.put("msg", map_canRecharge.get("msg").toString());
return map;
}
@@ -550,7 +567,7 @@
}
Long cardId = Long.parseLong(map_cardAndClient.get("cardId").toString());
Long clientId = Long.parseLong(map_cardAndClient.get("clientId").toString());
- if(orderNo == null || orderNo.length() <= 0) {
+ if (orderNo == null || orderNo.length() <= 0) {
orderNo = generateOrderNo();
}
@@ -617,6 +634,7 @@
/**
* 琛ュ崱
+ *
* @param po
* @return
*/
@@ -627,7 +645,7 @@
map.put("content", null);
Map map_canReissue = canReissue(po);
- if(map_canReissue.get("success").equals(false)) {
+ if (map_canReissue.get("success").equals(false)) {
map.put("msg", map_canReissue.get("msg").toString());
return map;
}
@@ -661,6 +679,7 @@
/**
* 鎸傚け
+ *
* @param po
* @return
*/
@@ -671,7 +690,7 @@
map.put("content", null);
Map map_canReportLoss = canReportLoss(po);
- if(map_canReportLoss.get("success").equals(false)) {
+ if (map_canReportLoss.get("success").equals(false)) {
map.put("msg", map_canReportLoss.get("msg").toString());
return map;
}
@@ -688,7 +707,8 @@
seClientCard.setLossdtdt(new Date());
seClientCard.setState(CardStateENUM.LOSS.getCode());
seClientCard.setLastoper(LastOperateENUM.LOSS.getCode());
- Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0);
+ Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard))
+ .orElse(0);
if (rec_updateClientCard == 0) {
map.put("msg", "鎸傚け澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�");
return map;
@@ -718,6 +738,7 @@
/**
* 瑙i攣
+ *
* @param po
* @return
*/
@@ -728,7 +749,7 @@
map.put("content", null);
Map map_canUnlock = canUnlock(po);
- if(map_canUnlock.get("success").equals(false)) {
+ if (map_canUnlock.get("success").equals(false)) {
map.put("msg", map_canUnlock.get("msg").toString());
return map;
}
@@ -738,8 +759,8 @@
/**
* 淇敼鍐滄埛鍗′俊鎭細
- * 鎸傚け鏃堕棿
- * 鏈�鍚庢搷浣滅被鍨�-4
+ * 鎸傚け鏃堕棿
+ * 鏈�鍚庢搷浣滅被鍨�-4
*/
SeClientCard seClientCard = new SeClientCard();
seClientCard.setId(cardId);
@@ -747,7 +768,8 @@
seClientCard.setMoney(po.getMoney());
seClientCard.setState(CardStateENUM.NORMAL.getCode());
seClientCard.setLastoper(LastOperateENUM.UNLOCK.getCode());
- Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0);
+ Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard))
+ .orElse(0);
if (rec_updateClientCard == 0) {
map.put("msg", "瑙i攣澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�");
return map;
@@ -779,6 +801,7 @@
/**
* 閿�鍗�
+ *
* @param po
* @return
*/
@@ -789,8 +812,8 @@
map.put("content", null);
String orderNo = generateOrderNo();
- Map map_canCancel = canCancel(po);
- if(map_canCancel.get("success").equals(false)) {
+ Map map_canCancel = canCancel(po);
+ if (map_canCancel.get("success").equals(false)) {
map.put("msg", map_canCancel.get("msg").toString());
return map;
}
@@ -828,6 +851,7 @@
/**
* 琛ユ墸
+ *
* @param po
* @return
*/
@@ -840,8 +864,8 @@
Date operateTime = new Date();
Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0);
- Map map_canRepay = canRepay(po);
- if(map_canRepay.get("success").equals(false)) {
+ Map map_canRepay = canRepay(po);
+ if (map_canRepay.get("success").equals(false)) {
map.put("msg", map_canRepay.get("msg").toString());
return map;
}
@@ -880,6 +904,7 @@
/**
* 杩旇繕
+ *
* @param po
* @return
*/
@@ -892,8 +917,8 @@
Date operateTime = new Date();
Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0);
- Map map_canSupplement = canSupplement(po);
- if(map_canSupplement.get("success").equals(false)) {
+ Map map_canSupplement = canSupplement(po);
+ if (map_canSupplement.get("success").equals(false)) {
map.put("msg", map_canSupplement.get("msg").toString());
return map;
}
@@ -931,6 +956,7 @@
/**
* 鎿嶄綔鍥炶皟
+ *
* @param po
* @return
*/
@@ -950,15 +976,15 @@
return map;
}
- if(operateType == 1) {
+ if (operateType == 1) {
/**
* 寮�鍗℃搷浣滄墽琛岄�氱煡
- * 1.渚濇嵁璁㈠崟鍙峰皢鏃犳晥鐘舵�佺殑鎿嶄綔璁板綍鏀逛负鏈夋晥
- * 2.渚濇嵁姘村崱ID灏嗘棤鏁堢姸鎬佺殑姘村崱璁板綍鏀逛负鏈夋晥
- * 3.濡傛灉寮�鍗″悓姝ュ厖鍊�
- * 淇敼鍏呭�兼搷浣滆褰曚负鏈夋晥
- * 淇敼鍏呭�煎巻鍙茶褰曚负鏈夋晥
- * 淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅
+ * 1.渚濇嵁璁㈠崟鍙峰皢鏃犳晥鐘舵�佺殑鎿嶄綔璁板綍鏀逛负鏈夋晥
+ * 2.渚濇嵁姘村崱ID灏嗘棤鏁堢姸鎬佺殑姘村崱璁板綍鏀逛负鏈夋晥
+ * 3.濡傛灉寮�鍗″悓姝ュ厖鍊�
+ * 淇敼鍏呭�兼搷浣滆褰曚负鏈夋晥
+ * 淇敼鍏呭�煎巻鍙茶褰曚负鏈夋晥
+ * 淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅
*/
Integer rec_ope = turnOperateValidByOrderNumber(orderNumber);
Integer rec_card = turnCardValidByOrderNumber(orderNumber);
@@ -967,10 +993,10 @@
return map;
}
- if(isMergeRecharge(cardId)) {
+ if (isMergeRecharge(cardId)) {
turnOperateValidByOrderNumber(orderNumber + "p");
turnRechargeHistoryValidByOrderNumber(orderNumber);
- updateCard(cardId, orderNumber+"p");
+ updateCard(cardId, orderNumber + "p");
}
} else if (operateType == 2) {
/**
@@ -981,8 +1007,8 @@
*/
turnOperateValidByOrderNumber(orderNumber + "p");
turnRechargeHistoryValidByOrderNumber(orderNumber);
- updateCard(cardId, orderNumber+"p");
- }else if (operateType == 3) {
+ updateCard(cardId, orderNumber + "p");
+ } else if (operateType == 3) {
/**
* 閿�鍗℃搷浣滄墽琛岄�氱煡
* 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1002,7 +1028,7 @@
* 1. 鏂版按鍗¤褰曟敼涓烘湁鏁�
* 2. 寮�鍗℃搷浣滆褰曟敼涓烘湁鏁�
* 3. 濡傛灉瀛樺湪閫�杩橀噾棰�
- * 娓呯┖鍘熷崱浣欓
+ * 娓呯┖鍘熷崱浣欓
*/
Integer rec_card = turnCardValidByOrderNumber(orderNumber);
Integer rec_ope = turnOperateValidByOrderNumber(orderNumber);
@@ -1084,12 +1110,13 @@
/**
* 濡傛灉琛ュ崱鏃堕��杩樹簡閲戦锛屾竻绌烘寕澶卞崱浣欓
+ *
* @param orderNumber
*/
public Integer emptyCardBalance(String orderNumber) {
Integer rec_empty = 0;
Float noTradeAmount = seCardOperateMapper.getNoTradeAmount(orderNumber);
- if(noTradeAmount != null && noTradeAmount > 0) {
+ if (noTradeAmount != null && noTradeAmount > 0) {
rec_empty = seClientCardMapper.emptyCardBalance(orderNumber);
}
return rec_empty;
@@ -1097,6 +1124,7 @@
/**
* 淇敼娉ㄩ攢姘村崱琛ㄧ殑璁板綍鍙婁綑棰濓紙0锛�
+ *
* @param orderNumber
* @return
*/
@@ -1114,6 +1142,7 @@
/**
* 淇敼琛ユ墸姘村崱琛ㄨ褰曞強浣欓
+ *
* @param cardId
* @param orderNumber
* @return
@@ -1135,6 +1164,7 @@
/**
* 淇敼杩旇繕姘村崱琛ㄨ褰曞強浣欓
+ *
* @param cardId
* @param orderNumber
* @return
@@ -1156,6 +1186,7 @@
/**
* 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰�
+ *
* @param cardNum
* @return
*/
@@ -1170,17 +1201,18 @@
/**
* 璇诲彇姘村崱淇℃伅
+ *
* @param cardAddr
* @return
*/
public VoTermCard readCard(String cardAddr) {
VoTermCard voTermCard = seClientCardMapper.getTermCardInfo(cardAddr);
- if(voTermCard != null) {
+ if (voTermCard != null) {
return voTermCard;
}
VoTermCard voTermManagerCard = seManagerCardMapper.getTermManagerCardInfo(cardAddr);
- if(voTermManagerCard != null) {
+ if (voTermManagerCard != null) {
return voTermManagerCard;
}
@@ -1189,6 +1221,7 @@
/**
* 鏍规嵁鎸囧畾鏉′欢鑾峰彇姘村崱鍒楄〃
+ *
* @param vo 鏌ヨ鏉′欢
* @return 姘村崱鍒楄〃
*/
@@ -1214,6 +1247,7 @@
/**
* 鑾峰彇宸叉寕澶辩殑姘村崱鍒楄〃
+ *
* @param vo 鏌ヨ鏉′欢
* @return 宸叉寕澶辩殑姘村崱鍒楄〃
*/
@@ -1222,7 +1256,7 @@
params.put("pageCurr", vo.pageCurr);
params.put("pageSize", vo.pageSize);
params.put("state", 2); // 鎸傚け鐘舵��
-
+
Long itemTotal = seClientCardMapper.getLostCardsCount(params);
QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>();
@@ -1243,10 +1277,86 @@
/**
* 鏍规嵁姘村崱缂栧彿鑾峰彇鍗′俊鎭�
+ *
* @param cardNum 姘村崱缂栧彿
* @return 鍗′俊鎭�
*/
public VoCardByClientNum getCardByCardNum(String cardNum) {
return seClientCardMapper.getCardByCardNum(cardNum);
}
+
+ /**
+ * 鍒涘缓绠$悊鍗�
+ *
+ * @param dto 鍒涘缓绠$悊鍗TO
+ * @return 鍒涘缓缁撴灉
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public Map<String, Object> createManagementCard(CreateManagementCardDto dto) {
+ Map<String, Object> result = new HashMap<>();
+ result.put("success", false);
+
+ try {
+ // 妫�鏌ュ崱鍦板潃鏄惁宸插瓨鍦�
+ if (isCardAddrExists(dto.getCardAddr())) {
+ result.put("msg", "鍒涘缓澶辫触-姝ゅ崱鍦板潃宸插瓨鍦�");
+ return result;
+ }
+
+ // 鍙傝�僼ermActiveCard閫昏緫锛氱敓鎴愯鍗曞彿
+ String orderNo = generateOrderNo();
+
+ // 鍙傝�僼ermActiveCard閫昏緫锛氱敓鎴愬敮涓�ID锛屼娇鐢ㄦ椂闂存埑
+ Long id = System.currentTimeMillis();
+ Date createTime = new Date();
+
+ // 鏋勫缓绠$悊鍗″璞�
+ SeManagementCard managementCard = SeManagementCard.builder()
+ .id(id)
+ .protocol(dto.getProtocol())
+ .cardAddr(dto.getCardAddr())
+ .securityCode(dto.getSecurityCode())
+ .cardType(dto.getCardType())
+ .createTime(createTime)
+ .orderNo(orderNo)
+ .districtCode(dto.getDistrictCode())
+ .projectNo(dto.getProjectNo() != null ? dto.getProjectNo() : this.projectNo)
+ .ip(dto.getIp())
+ .domain(dto.getDomain())
+ .openClostTime(dto.getOpenClostTime())
+ .remarks(dto.getRemarks())
+ .build();
+
+ // 鎻掑叆鏁版嵁搴�
+ int insertResult = seManagementCardMapper.insertSelective(managementCard);
+
+ if (insertResult > 0) {
+ result.put("success", true);
+ result.put("content", orderNo); // 杩斿洖璁㈠崟鍙�
+ result.put("msg", "璇锋眰鎴愬姛");
+ } else {
+ result.put("msg", "绠$悊鍗″垱寤哄け璐�-鏁版嵁搴撴彃鍏ュ紓甯�");
+ }
+
+ } catch (Exception e) {
+ log.error("鍒涘缓绠$悊鍗″紓甯�: {}", e.getMessage(), e);
+ result.put("msg", "绠$悊鍗″垱寤哄け璐�: " + e.getMessage());
+ }
+
+ return result;
+ }
+
+ /**
+ * 妫�鏌ュ崱鐗囧湴鍧�鏄惁宸插瓨鍦�
+ *
+ * @param cardAddr 鍗$墖鍦板潃
+ * @return true-宸插瓨鍦紝false-涓嶅瓨鍦�
+ */
+ public boolean isCardAddrExists(String cardAddr) {
+ // 浣跨敤涓�娆℃煡璇㈡鏌ヤ袱涓〃涓槸鍚﹀瓨鍦ㄨ鍗″湴鍧�
+ // 1. 绠$悊鍗¤〃锛氭墍鏈夎褰曢兘妫�鏌�
+ // 2. 鍐滄埛姘村崱琛細鍙鏌ユ甯�(1)鍜屾寕澶�(3)鐘舵�佺殑璁板綍
+ Long totalCount = seClientCardMapper.checkCardAddrExists(cardAddr);
+ return totalCount != null && totalCount > 0;
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java
new file mode 100644
index 0000000..15a409f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/CreateManagementCardDto.java
@@ -0,0 +1,82 @@
+package com.dy.pipIrrTerminal.card.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-01-20
+ * @Description 鍒涘缓绠$悊鍗TO
+ */
+@Data
+@Schema(name = "鍒涘缓绠$悊鍗TO")
+public class CreateManagementCardDto {
+
+ /**
+ * 閫氳鍗忚
+ */
+ @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
+ @Schema(description = "閫氳鍗忚", example = "RS485")
+ private String protocol;
+
+ /**
+ * 鍗$墖鍦板潃
+ */
+ @NotBlank(message = "鍗$墖鍦板潃涓嶈兘涓虹┖")
+ @Schema(description = "鍗$墖鍦板潃", example = "001")
+ private String cardAddr;
+
+ /**
+ * 璇嗗埆鐮�
+ */
+ @NotBlank(message = "璇嗗埆鐮佷笉鑳戒负绌�")
+ @Schema(description = "璇嗗埆鐮�", example = "123456")
+ private String securityCode;
+
+ /**
+ * 鍗$墖绫诲瀷
+ * 2-璁剧疆鍖哄煙琛ㄥ彿鍗★紝3-鍙栨暟鍗★紝4-妫�鏌ュ崱锛�5-娴嬭瘯鍗★紝6-娓呴浂鍗★紝7-IP璁剧疆鍗★紝8-鍩熷悕璁剧疆鍗★紝9-GPS鍗★紝10-鏃堕棿閰嶇疆鍗�
+ */
+ @NotNull(message = "鍗$墖绫诲瀷涓嶈兘涓虹┖")
+ @Schema(description = "鍗$墖绫诲瀷", example = "2", allowableValues = { "2", "3", "4", "5", "6", "7", "8", "9", "10" })
+ private Byte cardType;
+
+
+ /**
+ * 5绾ц鏀垮尯鍒掔紪鐮�
+ */
+ @Schema(description = "5绾ц鏀垮尯鍒掔紪鐮�", example = "110101")
+ private String districtCode;
+
+ /**
+ * 椤圭洰缂栫爜
+ */
+ @Schema(description = "椤圭洰缂栫爜", example = "1001")
+ private Integer projectNo;
+
+ /**
+ * IP鍦板潃
+ */
+ @Schema(description = "IP鍦板潃", example = "192.168.1.100")
+ private String ip;
+
+ /**
+ * 鍩熷悕
+ */
+ @Schema(description = "鍩熷悕", example = "example.com")
+ private String domain;
+
+ /**
+ * 寮�鍏抽榾鏃堕棿
+ */
+ @Schema(description = "寮�鍏抽榾鏃堕棿(绉�)", example = "30")
+ private Integer openClostTime;
+
+ /**
+ * 澶囨敞淇℃伅
+ */
+ @Schema(description = "澶囨敞淇℃伅", example = "绠$悊鍗″娉�")
+ private String remarks;
+}
\ No newline at end of file
--
Gitblit v1.8.0