From e18c4a8ac170fea6e079047a27f72032c80eee67 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 30 九月 2024 14:12:18 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 224 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 175 insertions(+), 49 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java index cc04af9..0556ce3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -7,14 +7,12 @@ import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; -import com.dy.pipIrrGlobal.pojoBa.BaClient; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; +import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; import com.dy.pipIrrGlobal.util.AmountToChinese; -import com.dy.pipIrrGlobal.voSe.VoActiveCard; -import com.dy.pipIrrGlobal.voSe.VoOperate; -import com.dy.pipIrrGlobal.voSe.VoRecharge; -import com.dy.pipIrrGlobal.voSe.VoReissueCard; +import com.dy.pipIrrGlobal.voRm.VoExpend; +import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.*; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; import com.dy.pipIrrSell.cardOperate.qo.*; @@ -31,6 +29,7 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; @@ -55,6 +54,11 @@ private final CardOperateSv cardOperateSv; private final ClientCardSv clientCardSv; + @Value("${project.divisionCode}") + private String divisionCode; + + @Value("${project.projectNo}") + private Integer projectNo; /** * 寮�鍗� * @param po 寮�鍗′紶鍏ュ璞� @@ -66,7 +70,12 @@ @SsoAop() public BaseResponse<Boolean> add_active(@RequestBody @Valid ActiveCard po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + // 渚濇嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗★紝鏈紑杩囧崱鎴栦笉鏄甯哥姸鎬併�佹寕澶辩姸鎬佺殑鍙紑鍗� + if(!cardOperateSv.canActiveCard(po.getCardAddr())) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.ACTIVE_FAIL_CARD_ESIST.getMessage()); } Long clientId = po.getClientId(); @@ -107,6 +116,7 @@ * operator 鎿嶄綔浜虹紪鍙� * activeTime 寮�鍗℃椂闂� */ + String protocol = po.getProtocol(); String cardAddr = po.getCardAddr(); Integer cardCost = po.getCardCost(); Long originalCardId = po.getOriginalCardId(); @@ -120,6 +130,7 @@ * 娣诲姞鍐滄埛鍗¤褰曪紝閫�杩橀噾棰濅綔涓哄綋鍓嶄綑棰� */ SeClientCard seClientCard = new SeClientCard(); + seClientCard.setProtocol(protocol); seClientCard.setCardaddr(cardAddr); seClientCard.setCardnum(cardNum); seClientCard.setClientid(clientId); @@ -129,6 +140,13 @@ seClientCard.setOriginalCardId(originalCardId); } seClientCard.setCreatedt(activeTime); + //if(cardCost == 0) { + // // 鎹㈠崱 + // seClientCard.setLastoper(LastOperateENUM.CHANGE_CARD.getCode()); + //}else { + // // 寮�鍗� + // seClientCard.setLastoper(LastOperateENUM.ACTIVE.getCode()); + //} seClientCard.setLastoper(LastOperateENUM.ACTIVE.getCode()); Long cardId = Optional.ofNullable(clientCardSv.add(seClientCard)).orElse(0L) ; if(cardId == 0) { @@ -136,7 +154,7 @@ } /** - * 娣诲姞寮�鍗¤褰曪紝閫�杩橀噾棰濅綔涓哄厖鍊奸噾棰� + * 娣诲姞寮�鍗℃搷浣滆褰曪紝閫�杩橀噾棰濅綔涓哄厖鍊奸噾棰� */ SeCardOperate seCardOperate = new SeCardOperate(); seCardOperate.setCardId(cardId); @@ -144,7 +162,18 @@ seCardOperate.setMoney(0f); seCardOperate.setCardCost(cardCost); seCardOperate.setPaymentId(paymentId); - seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode()); + if(originalCardId != null) { + // 琛ュ崱 + seCardOperate.setOperateType(OperateTypeENUM.REISSUE.getCode()); + }else { + // 寮�鏂板崱鎴栨崲鍗� + //if(cardCost > 0) { + // seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode()); + //}else { + // seCardOperate.setOperateType(OperateTypeENUM.CHANGE_CARD.getCode()); + //} + seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode()); + } seCardOperate.setRemarks(remarks); seCardOperate.setOperator(operator); seCardOperate.setOperateDt(activeTime); @@ -174,7 +203,8 @@ } Map map = new HashMap(); - map.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); +// map.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map.put("projectNo", String.format("%02x", projectNo)); map.put("orderNumber", rec); map.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map) ; @@ -191,7 +221,7 @@ @SsoAop() public BaseResponse<Boolean> add_reissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -207,6 +237,7 @@ * operator 鎿嶄綔浜虹紪鍙� */ + String protocol; String cardAddr = po.getCardAddr(); String clientNum = ""; Long clientId = 0L; @@ -226,7 +257,7 @@ // 濡傛灉浼犲叆浜嗛��杩橀噾棰濓紝闇�瑕佸垽鏂�佸崱锛堣鎸傚け鐨勬按鍗★級鎸傚け鏃舵槸鍚﹀凡缁忛��娆撅紝鏃犺閫�娆惧灏戦兘鎻愮ず鐢ㄦ埛鎸傚け鏃跺凡閫�娆� if(reissueAmount != null && reissueAmount > 0) { Double tradeAmount = cardOperateSv.getTradeAmountByCardNo(cardNum); - if(tradeAmount != null) { + if(tradeAmount != null && tradeAmount > 0) { return BaseResponseUtils.buildErrorMsg(SellResultCode.THE_FEE_CANNOT_BE_REFUNDED.getMessage()); } } @@ -241,6 +272,7 @@ clientNum = map.get("clientNum").toString(); cardId = Long.parseLong(map.get("cardId").toString()); clientId = Long.parseLong(map.get("clientId").toString()); + protocol = map.get("protocol").toString(); /** * 濡傛灉鏄ˉ鍗¤皟鐢ㄧ殑寮�鍗′笖杞Щ浜嗛��杩橀噾棰濓紝闇�淇敼鎸傚け鍗′綑棰濅负0 @@ -256,6 +288,7 @@ * 娣诲姞寮�鍗¤褰曪紝閫�杩橀噾棰濆啿鍒版柊鍗′腑 */ ActiveCard activeCard = new ActiveCard(); + activeCard.setProtocol(protocol); activeCard.setCardAddr(cardAddr); activeCard.setClientId(clientId); activeCard.setOriginalCardId(cardId); @@ -279,6 +312,7 @@ map_response.put("projectNo", projectNo); map_response.put("orderNumber", orderNumber); map_response.put("cardNum", cardNum); + map_response.put("protocol", protocol); return BaseResponseUtils.buildSuccess(map_response) ; } @@ -293,7 +327,7 @@ @SsoAop() public BaseResponse<Boolean> add_recharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } return cardOperateSv.addRecharge(po); } @@ -309,7 +343,7 @@ @SsoAop() public BaseResponse<Boolean> add_cancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -364,7 +398,7 @@ } /** - * 娣诲姞娉ㄩ攢璁板綍 + * 娣诲姞娉ㄩ攢鎿嶄綔璁板綍 * 鏀粯鏂瑰紡涓虹幇閲� */ SeCardOperate seCardOperate = new SeCardOperate(); @@ -383,7 +417,7 @@ } Map map_response = new HashMap(); - map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("projectNo", String.format("%02x", projectNo)); map_response.put("orderNumber", rec); map_response.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map_response) ; @@ -400,7 +434,7 @@ @SsoAop() public BaseResponse<Boolean> add_loss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -476,7 +510,7 @@ } Map map_response = new HashMap(); - map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("projectNo", String.format("%02x", projectNo)); map_response.put("orderNumber", rec); map_response.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map_response) ; @@ -493,7 +527,7 @@ @SsoAop() public BaseResponse<Boolean> add_reversal(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -564,7 +598,7 @@ } Map map_response = new HashMap(); - map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("projectNo", String.format("%02x", projectNo)); map_response.put("orderNumber", rec); map_response.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map_response) ; @@ -582,7 +616,7 @@ @SsoAop() public BaseResponse<Boolean> add_refund(@RequestBody @Valid DtoRefund po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -636,7 +670,7 @@ } /** - * 娣诲姞琛ユ墸璁板綍 + * 娣诲姞琛ユ墸鎿嶄綔璁板綍 */ SeCardOperate seCardOperate = new SeCardOperate(); seCardOperate.setCardId(cardId); @@ -666,7 +700,7 @@ @SsoAop() public BaseResponse<Boolean> add_unlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } /** @@ -734,12 +768,63 @@ } Map map_response = new HashMap(); - map_response.put("projectNo", String.format("%02x", Integer.parseInt(cardOperateSv.getProjectNo()))); + map_response.put("projectNo", String.format("%02x", projectNo)); map_response.put("orderNumber", rec); map_response.put("cardNum", cardNum); return BaseResponseUtils.buildSuccess(map_response) ; } + + /** + * 鍒涘缓绠$悊鍗� + * @param po + * @param bindingResult + * @return + */ + @PostMapping(path = "create_manager_card", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> createManagerCard(@RequestBody @Valid ManagerCard po, BindingResult bindingResult){ + if(bindingResult != null && bindingResult.hasErrors()){ + return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + /** + * 鏍规嵁琛屾斂鍖哄垝涓诧紙divisionCode锛夊湪绠$悊鍗¤〃涓拡瀵瑰崱鐗囩紪鍙凤紙cardNum锛夎繘琛屾ā绯婃煡璇� + * 濡傛灉椤哄簭鍙峰凡缁忚揪鍒版渶澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛� + * 濡傛灉椤哄簭鍙锋湭杈惧埌鏈�澶у�硷紝鍒欏姞1 + * cardNum涓烘柊鐨勫崱鍙� + */ + String cardNum = Optional.ofNullable(cardOperateSv.getManagerCardNumOfMax(divisionCode)).orElse(""); + if(cardNum != null && cardNum.trim().length() > 0) { + Integer number = Integer.parseInt(cardNum.substring(12)); + number = number + 1; + if(number > 65535) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage()); + } + cardNum = cardNum.substring(0, 12) + String.format("%05d", number); + } else { + cardNum = divisionCode + "00001"; + } + + SeManagerCard seManagerCard = new SeManagerCard(); + seManagerCard.setCardAddr(po.getCardAddr()); + seManagerCard.setCardNum(cardNum); + seManagerCard.setCardType(po.getCardType()); + seManagerCard.setCreateTime(new Date()); + seManagerCard.setRemarks(po.getRemarks()); + Long managerCardId = cardOperateSv.addManagerCard(seManagerCard); + if(managerCardId == 0) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.CREATE_MANAGER_CARD_ERROR.getMessage()); + } + + return BaseResponseUtils.buildSuccess(cardNum); + + //Map map = new HashMap(); + //map.put("cardNum", cardNum); + //return BaseResponseUtils.buildSuccess(map) ; + } + /** * 鑾峰彇鍏呭�艰褰� @@ -768,25 +853,66 @@ } /** + * 鑾峰彇鍏呭�艰褰曪紝绠$悊骞冲彴鍏呭�煎垪琛ㄤ娇鐢紝APP鏈娇鐢� + * @param vo + * @return + */ + @GetMapping(path = "/getRechargesNew") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoRechargeNew>>> getRechargesNew(QoRecharge vo){ + try { + QueryResultVo<List<VoRechargeNew>> res = cardOperateSv.getRechargesNew(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇鍏呭�艰褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鑾峰彇杩旇繕璁板綍锛岀鐞嗗钩鍙板厖鍊煎垪琛ㄤ娇鐢� + * @param vo + * @return + */ + @GetMapping(path = "/refunds") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoRefund>>> getRefunds(QoRecharge vo){ + try { + QueryResultVo<List<VoRefund>> res = cardOperateSv.getRefunds(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇杩旇繕璁板綍寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + + /** + * 鑾峰彇姘村崱娑堣垂璁板綍锛岀鐞嗗钩鍙颁娇鐢� + * @param vo + * @return + */ + @GetMapping(path = "/expends") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoExpend>>> getExpends(QoRecharge vo){ + try { + QueryResultVo<List<VoExpend>> res = cardOperateSv.getExpends(vo); + return BaseResponseUtils.buildSuccess(res); + } catch (Exception e) { + log.error("鑾峰彇娑堣垂璁板綍寮傚父", e); + 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 = BaClient.class))} - ) - }) @GetMapping(path = "getTransactions") @SsoAop() public BaseResponse<Map> getOperates(QoTransaction vo){ try { - Map res = cardOperateSv.getTransactions(vo); - return BaseResponseUtils.buildSuccess(res); + return BaseResponseUtils.buildSuccess(cardOperateSv.getTransactions(vo)); } catch (Exception e) { log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e); return BaseResponseUtils.buildException(e.getMessage()) ; @@ -812,9 +938,9 @@ public BaseResponse<QueryResultVo<List<VoActiveCard>>> getActiveCards(QoActiveCard vo){ try { QueryResultVo<List<VoActiveCard>> res = cardOperateSv.getActiveCards(vo); - if(res.itemTotal == 0) { - return BaseResponseUtils.buildFail(SellResultCode.No_ActiveCards.getMessage()); - } +// if(res.itemTotal == 0) { +// return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ActiveCards.getMessage()); +// } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); @@ -841,9 +967,9 @@ public BaseResponse<QueryResultVo<List<VoReissueCard>>> getReissueCards(QoReissueCard vo){ try { QueryResultVo<List<VoReissueCard>> res = cardOperateSv.getReissueCards(vo); - if(res.itemTotal == 0) { - return BaseResponseUtils.buildFail(SellResultCode.No_ReissueCards.getMessage()); - } +// if(res.itemTotal == 0) { +// return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ReissueCards.getMessage()); +// } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鑾峰彇琛ュ崱璁板綍寮傚父", e); @@ -873,14 +999,14 @@ // 楠岃瘉鎿嶄綔绫诲瀷鏄惁姝g‘ Integer operateType = Optional.ofNullable(vo.getOperateType()).orElse(0); if(operateType != 3 && operateType != 6 && operateType != 7 && operateType != 8) { - return BaseResponseUtils.buildFail(SellResultCode.PARAMS_ERROR.getMessage()); + return BaseResponseUtils.buildErrorMsg(SellResultCode.PARAMS_ERROR.getMessage()); } try { QueryResultVo<List<VoOperate>> res = cardOperateSv.getCommonOperations(vo); - if(res.itemTotal == 0) { - return BaseResponseUtils.buildFail(SellResultCode.No_CANCELS.getMessage()); - } +// if(res.itemTotal == 0) { +// return BaseResponseUtils.buildErrorMsg(SellResultCode.No_CANCELS.getMessage()); +// } return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); @@ -906,11 +1032,11 @@ @SsoAop() public BaseResponse<Map> getReceipts(QoReceipt vo){ try { - Map res = Optional.ofNullable(cardOperateSv.getReceipts(vo)).orElse(new HashMap()); - if(res.size() == 0) { - return BaseResponseUtils.buildFail(SellResultCode.No_RECEIPTS.getMessage()); - } - return BaseResponseUtils.buildSuccess(res); + // Map res = Optional.ofNullable(cardOperateSv.getReceipts(vo)).orElse(new HashMap()); + // if(res.size() == 0) { + // return BaseResponseUtils.buildErrorMsg(SellResultCode.No_RECEIPTS.getMessage()); + // } + return BaseResponseUtils.buildSuccess(cardOperateSv.getReceipts(vo)); } catch (Exception e) { log.error("鑾峰彇鐢靛瓙閽卞寘璐︽埛璁板綍", e); return BaseResponseUtils.buildException(e.getMessage()) ; -- Gitblit v1.8.0