From f392d72c505996c4525436129356f64f69bd9ae5 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 09 九月 2024 16:47:01 +0800 Subject: [PATCH] 2024-09-09 朱宝民 添加换卡功能,包括换卡开卡、换卡充值 --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 435 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 298 insertions(+), 137 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java index e019024..5daf122 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java @@ -1,33 +1,31 @@ package com.dy.pipIrrSell.cardOperate; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; -import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; -import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; -import com.dy.pipIrrGlobal.daoSe.SeClientMapper; +import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; +import com.dy.pipIrrGlobal.daoSe.*; import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; -import com.dy.pipIrrGlobal.voSe.VoRecharge; -import com.dy.pipIrrGlobal.voSe.VoTransaction; -import com.dy.pipIrrGlobal.voSe.VoTransactionStatistics; +import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; +import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod; +import com.dy.pipIrrGlobal.voSe.*; import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; -import com.dy.pipIrrSell.cardOperate.qo.QoRecharge; -import com.dy.pipIrrSell.cardOperate.qo.QoTransaction; -import com.dy.pipIrrSell.cardOperate.qo.QoTransactionStatistics; +import com.dy.pipIrrSell.cardOperate.qo.*; import com.dy.pipIrrSell.clientCard.ClientCardSv; import com.dy.pipIrrSell.clientCard.LastOperateENUM; import com.dy.pipIrrSell.result.SellResultCode; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.text.DecimalFormat; import java.util.*; /** @@ -52,6 +50,20 @@ @Autowired private ClientCardSv clientCardSv; + @Autowired + private SeGeneralMapper seGeneralMapper; + + @Autowired + private BaSettingsMapper baSettingsMapper; + + @Autowired + private SeManagerCardMapper seManagerCardMapper; + + @Autowired + private SePaymentMethodMapper sePaymentMethodMapper; + + @Value("${project.projectNo}") + private Integer projectNo; /** * 娣诲姞寮�鍗¤褰� @@ -68,8 +80,12 @@ * @param clientNum 鍐滄埛缂栧彿 * @return 5绾ц鏀垮尯鍒掍唬鐮� */ - public Long getAreaCodeByNum(String clientNum) { - return seClientMapper.getAreaCodeByNum(clientNum); + public String getAreaCodeByNum(String clientNum) { + Long areaCode = seClientMapper.getAreaCodeByNum(clientNum); + if (areaCode == null) { + return ""; + } + return String.valueOf(areaCode); } /** @@ -80,13 +96,33 @@ public Long getAreaCodeById(Long clientId) { return seClientMapper.getAreaCodeById(clientId); } + /** * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙凤紝寮�鍗′娇鐢� * @param areaCode * @return */ - String getCardNumOfMax(String areaCode) { + public String getCardNumOfMax(String areaCode) { return seClientCardMapper.getCardNumOfMax(areaCode); + } + + /** + * 鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈢鐞嗗崱缂栧彿锛屽垱寤虹鐞嗗崱浣跨敤 + * @param areaCode + * @return + */ + public String getManagerCardNumOfMax(String areaCode) { + return seManagerCardMapper.getManagerCardNumOfMax(areaCode); + } + + /** + * 鍒涘缓绠$悊鍗� + * @param po + * @return + */ + public Long addManagerCard(SeManagerCard po) { + seManagerCardMapper.insert(po); + return po.getId(); } /** @@ -131,7 +167,7 @@ */ Long cardId = 0L; Long clientId = 0L; - String cardNum = po.getCardNum(); + Long cardNum = po.getCardNum(); Float money = po.getMoney(); Float amount = po.getAmount(); Float gift = po.getGift(); @@ -142,12 +178,18 @@ Long operator = po.getOperator(); Date rechargeTime = new Date(); + // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� + String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); + if(stateName.length() == 0 || !stateName.equals("姝e父")) { + return BaseResponseUtils.buildErrorMsg(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); + } + /** * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿 */ Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); if(map == null || map.size() <= 0) { - return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); + return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); } cardId = Long.parseLong(map.get("cardId").toString()); clientId = Long.parseLong(map.get("clientId").toString()); @@ -157,14 +199,23 @@ * 琛ュ崱鏃堕棿 * 鏈�鍚庢搷浣滅被鍨�-2 */ + + // 鏍规嵁鏀粯鏂瑰紡ID鑾峰彇鏀粯鏂瑰紡鍚嶇О + SePaymentMethod sePaymentMethod = sePaymentMethodMapper.selectByPrimaryKey(paymentId); + String paymentName = sePaymentMethod.getName(); + SeClientCard seClientCard = new SeClientCard(); seClientCard.setId(cardId); seClientCard.setMoney(afterRecharge); seClientCard.setRechargedt(rechargeTime); - seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ()); + if(paymentName != null && paymentName.equals("鎹㈠崱")) { + seClientCard.setLastoper(LastOperateENUM.CHANGE_RECHARGE.getCode ()); + }else { + seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ()); + } Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); if(rec_updateClientCard == 0) { - return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); + return BaseResponseUtils.buildErrorMsg(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); } /** @@ -176,7 +227,11 @@ seCardOperate.setMoney(money); seCardOperate.setTradeAmount(amount); seCardOperate.setGift(gift); - seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode()); + if(paymentName != null && paymentName.equals("鎹㈠崱")) { + seCardOperate.setOperateType(OperateTypeENUM.CHANGE_RECHARGE.getCode()); + }else { + seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode()); + } seCardOperate.setPaymentId(paymentId); seCardOperate.setPrice(price); seCardOperate.setRemarks(remarks); @@ -186,12 +241,15 @@ seCardOperateMapper.insert(seCardOperate); Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L); if(rec == 0) { - return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); + return BaseResponseUtils.buildErrorMsg(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); } - return BaseResponseUtils.buildSuccess(true) ; + Map map_response = new HashMap(); + map_response.put("projectNo", String.format("%02x", projectNo)); + map_response.put("orderNumber", rec); + map_response.put("cardNum", cardNum); + return BaseResponseUtils.buildSuccess(map_response) ; } - /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍏呭�艰褰� @@ -200,40 +258,29 @@ */ public QueryResultVo<List<VoRecharge>> getRecharges(QoRecharge queryVo) { //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 - String rechargeTimeStart = queryVo.rechargeTimeStart; - String rechargeTimeStop = queryVo.rechargeTimeStop; - if(rechargeTimeStart != null) { - rechargeTimeStart = rechargeTimeStart + " 00:00:00"; - queryVo.setRechargeTimeStart(rechargeTimeStart); - } - if(rechargeTimeStop != null) { - rechargeTimeStop = rechargeTimeStop + " 23:59:59"; - queryVo.setRechargeTimeStop(rechargeTimeStop); - } + //String rechargeTimeStart = queryVo.rechargeTimeStart; + //String rechargeTimeStop = queryVo.rechargeTimeStop; + //if(rechargeTimeStart != null) { + // rechargeTimeStart = rechargeTimeStart + " 00:00:00"; + // queryVo.setRechargeTimeStart(rechargeTimeStart); + //} + //if(rechargeTimeStop != null) { + // rechargeTimeStop = rechargeTimeStop + " 23:59:59"; + // queryVo.setRechargeTimeStop(rechargeTimeStop); + //} Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); Long itemTotal = seCardOperateMapper.getRecordCount(params); QueryResultVo<List<VoRecharge>> rsVo = new QueryResultVo<>() ; - Integer pageCurr = 0; - Integer pageSize = 10000; - rsVo.pageCurr = 1; - rsVo.pageSize = 10000; - if(queryVo.pageSize != null && queryVo.pageCurr != null) { - rsVo.pageSize = queryVo.pageSize ; - rsVo.pageCurr = queryVo.pageCurr; - pageSize = queryVo.pageSize ; - pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); - } - params.put("pageCurr", pageCurr); - params.put("pageSize", pageSize); + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = seCardOperateMapper.getRecharges(params); return rsVo ; } - /** * 鏍规嵁鎸囧畾鏉′欢鑾峰彇浜ゆ槗璁板綍 @@ -241,6 +288,7 @@ * @return */ public Map getTransactions(QoTransaction vo){ + DecimalFormat df = new DecimalFormat("0.00"); // 琛ラ綈鏌ヨ鏃堕棿 String operateTimeStart = vo.operateTimeStart; String operateTimeStop = vo.operateTimeStop; @@ -256,133 +304,246 @@ // 鐢熸垚鏌ヨ鍙傛暟 Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; - // 鑾峰彇姹囨�荤殑璐按閲戦銆佽喘鍗¢噾棰� - Float waterCost = 0f; - Float cardCost = 0f; - Map map_sum = Optional.ofNullable(seCardOperateMapper.getTransactionSums(params)).orElse(new HashMap()); - if(map_sum.size() > 0) { - waterCost = Float.parseFloat(map_sum.get("waterCost").toString()); - cardCost = Float.parseFloat(map_sum.get("cardCost").toString()); + // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 + Long itemTotal = Optional.ofNullable(seCardOperateMapper.getTransactionRecordCount(params)).orElse(0L); + + QueryResultVo rsVo = new QueryResultVo<>() ; + rsVo.pageSize = vo.pageSize ; + rsVo.pageCurr = vo.pageCurr ; + rsVo.calculateAndSet(itemTotal, params); + + List<VoTradeDetails> list = seCardOperateMapper.getTransactions(params); + if(list.size() == 0) { + return new HashMap(); } - // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = seCardOperateMapper.getTransactionRecordCount(params); + // 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬昏喘姘撮噾棰濄�佽喘鍗¢噾棰� + Double totalWaterCost = 0.0; + Double totalCardCost = 0.0; + Double totalGift = 0.0; + Double totalRefund = 0.0; - Integer pageSize = vo.getPageSize(); - // 璁$畻鎬婚〉鏁� - Integer pageTotal ; - pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize); + JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); + for(int i = 0; i < array.size(); i++) { + JSONObject job = array.getJSONObject(i); + Double waterCost = Optional.ofNullable(job.getDouble("waterCost")).orElse(0.0); + Double cardCost = Optional.ofNullable(job.getDouble("cardCost")).orElse(0.0); + Double gift = Optional.ofNullable(job.getDouble("gift")).orElse(0.0); + Double refundAmount = Optional.ofNullable(job.getDouble("refundAmount")).orElse(0.0); - // 鏍规嵁褰撳墠椤电爜鍙婃瘡椤垫暟閲忚绠楀亸绉婚噺 - Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); - params.put("pageCurr", pageCurr); + totalWaterCost = totalWaterCost + waterCost; + totalCardCost = totalCardCost + cardCost; + totalGift = totalGift + gift; + totalRefund = totalRefund + refundAmount; + } - List<VoTransaction> lit = seCardOperateMapper.getTransactions(params); Map map_record = new HashMap(); map_record.put("itemTotal", itemTotal); - map_record.put("pageCurr", vo.pageCurr); - map_record.put("pageSize", pageSize); - map_record.put("pageTotal", pageTotal); - map_record.put("list", lit); + map_record.put("list", list); Map map_result = new HashMap(); - map_result.put("waterCost", waterCost); - map_result.put("cardCost", cardCost); + map_result.put("waterCost", df.format(totalWaterCost)); + map_result.put("cardCost", df.format(totalCardCost)); + map_result.put("gift", df.format(totalGift)); + map_result.put("refund", df.format(totalRefund)); + + map_result.put("records", map_record); return map_result; } /** - * 鑾峰彇浜ゆ槗缁熻璁板綍 - * 1.浜ゆ槗缁熻璁板綍 - * 2.绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - * 3.姣忎竴澶┿�佸悇绉嶆敮浠樻柟寮忓疄鏀堕噾棰濆悎璁� - * @param vo + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇寮�鍗¤褰� + * @param queryVo * @return */ - public Map getTransactionStatistics(QoTransactionStatistics vo) throws ParseException { - /** - * 閬嶅巻鏌ヨ鏃ユ湡锛屽彇鍑烘瘡澶╀笁绉嶆敮浠樻柟寮忥紙鐜伴噾銆佹壂鐮併�佽浆璐︼級瀹炴敹閲戦 - * 姣忓ぉ涓�涓璞� - * 瀵硅薄缁勬垚JSONArray娣诲姞鍒拌繑鍥炲璞′腑 - */ - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date startDate = dateFormat.parse(vo.getOperateTimeStart()); - Date stopDate = dateFormat.parse(vo.getOperateTimeStop()); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - JSONArray array_paymentSums = new JSONArray(); - while (calendar.getTime().before(stopDate) || calendar.getTime().equals(stopDate)) { - String tradeDate = dateFormat.format(calendar.getTime()) ; - Float receivedCash = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate ,1L)).orElse(0f); - Float receivedQRCode = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate,2L)).orElse(0f); - Float receivedTransfer = Optional.ofNullable(seCardOperateMapper.getPaymentSums(tradeDate, 3L)).orElse(0f); - JSONObject job = new JSONObject(); - job.put("tradeDate", tradeDate); - job.put("receivedCash", receivedCash); - job.put("receivedQRCode", receivedQRCode); - job.put("receivedTransfer", receivedTransfer); - - array_paymentSums.add(job); - calendar.add(Calendar.DAY_OF_MONTH, 1); + public QueryResultVo<List<VoActiveCard>> getActiveCards(QoActiveCard queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String activeTimeStart = queryVo.activeTimeStart; + String activeTimeStop = queryVo.activeTimeStop; + if(activeTimeStart != null) { + activeTimeStart = activeTimeStart + " 00:00:00"; + queryVo.setActiveTimeStart(activeTimeStart); + } + if(activeTimeStop != null) { + activeTimeStop = activeTimeStop + " 23:59:59"; + queryVo.setActiveTimeStop(activeTimeStop); } + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); - // 琛ラ綈鏌ヨ鏃堕棿 - String operateTimeStart = vo.operateTimeStart; - String operateTimeStop = vo.operateTimeStop; - if(operateTimeStart != null) { - operateTimeStart = operateTimeStart + " 00:00:00"; - vo.setOperateTimeStart(operateTimeStart); + Long itemTotal = seCardOperateMapper.getActiveCardRecordCount(params); + + QueryResultVo<List<VoActiveCard>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seCardOperateMapper.getActiveCards(params); + return rsVo ; + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇琛ュ崱璁板綍 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoReissueCard>> getReissueCards(QoReissueCard queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String reissueCardTimeStart = queryVo.reissueCardTimeStart; + String reissueCardTimeStop = queryVo.reissueCardTimeStop; + if(reissueCardTimeStart != null) { + reissueCardTimeStart = reissueCardTimeStart + " 00:00:00"; + queryVo.setReissueCardTimeStart(reissueCardTimeStart); } - if(operateTimeStop != null) { - operateTimeStop = operateTimeStop + " 23:59:59"; - vo.setOperateTimeStop(operateTimeStop); + if(reissueCardTimeStop != null) { + reissueCardTimeStop = reissueCardTimeStop + " 23:59:59"; + queryVo.setReissueCardTimeStop(reissueCardTimeStop); } - // 鐢熸垚鏌ヨ鍙傛暟 - Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); - //鑾峰彇绗旀暟鍚堣銆佸疄鏀堕噾棰濆悎璁°�佽禒閫侀噾棰濆悎璁� - Integer totalCount = 0; - Float totalReceived = 0f; - Float totalGift = 0f; - Map map_sum = Optional.ofNullable(seCardOperateMapper.getTransactionStatisticsSums(params)).orElse(new HashMap()); - if(map_sum.size() > 0) { - totalCount = Integer.parseInt(map_sum.get("totalCount").toString()); - totalReceived = Float.parseFloat(map_sum.get("totalReceived").toString()); - totalGift = Float.parseFloat(map_sum.get("totalGift").toString()); + Long itemTotal = seCardOperateMapper.getReissueCardRecordCount(params); + + QueryResultVo<List<VoReissueCard>> rsVo = new QueryResultVo<>() ; + + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seCardOperateMapper.getReissueCards(params); + return rsVo ; + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇閫氱敤鎿嶄綔璁板綍 + * @param queryVo + * @return + */ + public QueryResultVo<List<VoOperate>> getCommonOperations(QoCommonOperate queryVo) { + //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿 + String timeStart = queryVo.getTimeStart(); + String timeStop = queryVo.getTimeStop(); + if(timeStart != null) { + timeStart = timeStart + " 00:00:00"; + queryVo.setTimeStart(timeStart); + } + if(timeStop != null) { + timeStop = timeStop + " 23:59:59"; + queryVo.setTimeStop(timeStop); } - // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟 - Long itemTotal = seCardOperateMapper.getTransactionStatisticsRecordCount(params); + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); - Integer pageSize = vo.getPageSize(); - // 璁$畻鎬婚〉鏁� - Integer pageTotal ; - pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize); + Long itemTotal = Optional.ofNullable(seCardOperateMapper.getCommonOperationRecordCount(params)).orElse(0L); - // 鏍规嵁褰撳墠椤电爜鍙婃瘡椤垫暟閲忚绠楀亸绉婚噺 - Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); - params.put("pageCurr", pageCurr); + QueryResultVo<List<VoOperate>> rsVo = new QueryResultVo<>() ; - List<VoTransactionStatistics> list = seCardOperateMapper.getTransactionStatistics(params); + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + rsVo.obj = seCardOperateMapper.getCommonOperations(params); + return rsVo ; + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鏀舵嵁鍒楄〃 + * @param queryVo + * @return + */ + public Map getReceipts(QoReceipt queryVo) { + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); + + DecimalFormat df = new DecimalFormat("#.00"); + Double totalAmount = Optional.ofNullable(seCardOperateMapper.getTotalAmount(params)).orElse(0.0); + + Long itemTotal = seCardOperateMapper.getReceiptsRecordCount(params); + + QueryResultVo<List<VoReceipt>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = queryVo.pageSize ; + rsVo.pageCurr = queryVo.pageCurr ; + + rsVo.calculateAndSet(itemTotal, params); + //rsVo.obj = seCardOperateMapper.getReceipts(params); + //return rsVo ; + + List<VoReceipt> list = seCardOperateMapper.getReceipts(params); Map map_record = new HashMap(); - map_record.put("itemTotal", itemTotal); - map_record.put("pageCurr", vo.pageCurr); - map_record.put("pageSize", pageSize); - map_record.put("pageTotal", pageTotal); + map_record.put("itemTotal", rsVo.itemTotal); + map_record.put("pageCurr", rsVo.pageCurr); + map_record.put("pageSize", rsVo.pageSize); + map_record.put("pageTotal", rsVo.pageTotal); map_record.put("list", list); Map map_result = new HashMap(); - map_result.put("totalCount", totalCount); - map_result.put("totalReceived", totalReceived); - map_result.put("totalGift", totalGift); + map_result.put("totalAmount", df.format(totalAmount)); map_result.put("records", map_record); - map_result.put("paymentSums", array_paymentSums); return map_result; } + + /** + * 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰� + * @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 po + * @return + */ + public Integer updateClientCard(SeClientCard po) { + return seClientCardMapper.updateByPrimaryKeySelective(po); + } + + /** + * 鑾峰彇椤圭洰缂栧彿 + * @return + */ + public String getProjectNo() { + return baSettingsMapper.getItemValue("projectNo"); + } + + /** + * 鏍规嵁姘村崱缂栧彿鑾峰彇鍏舵寕澶辨椂閫�娆鹃噾棰濓紙琛ュ崱鏃跺垽鏂娇鐢級 + * @param cardNum + * @return + */ + public Double getTradeAmountByCardNo(Long cardNum) { + return seCardOperateMapper.getTradeAmountByCardNo(cardNum); + } + + /** + * 鏍规嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗� + * @param cardAddr + * @return + */ + public Boolean canActiveCard(String cardAddr) { + + // 鎸囧畾姘村崱鍦板潃鐨勬按鍗℃暟閲� + Long cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddr(cardAddr)).orElse(0L); + if(cardCount == 0) { + return true; + } + + // 鎸囧畾姘村崱鍦板潃涓旀甯哥姸鎬佹垨鎸傚け鐘舵�佺殑姘村崱鏁伴噺 + cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddrAndState(cardAddr)).orElse(0L); + if(cardCount == 0) { + return true; + } + + return false; + } } -- Gitblit v1.8.0