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