pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -3,11 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoSe.SeClientCard; import com.dy.pipIrrGlobal.voSe.VoCardInfo; import com.dy.pipIrrGlobal.voSe.VoCardInfo1; import com.dy.pipIrrGlobal.voSe.VoCards; import com.dy.pipIrrGlobal.voSe.VoCards2; import com.dy.pipIrrGlobal.voSt.VoICCard; import com.dy.pipIrrGlobal.voWe.VoCards3; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -190,4 +188,18 @@ * @return */ Double getTotalMoneyIcCards(); /** * 根据水卡地址获取水卡数量,用来判断该卡是否允许开卡 * @param cardAddr * @return */ Long getCountByCardAddr(String cardAddr); /** * 根据水卡地址获取指定状态的水卡数量,用来判断该卡是否允许开卡 * @param cardAddr * @return */ Long getCountByCardAddrAndState(String cardAddr); } pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java
New file @@ -0,0 +1,31 @@ package com.dy.pipIrrGlobal.voBa; import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.writer.ObjectWriterImplToString; import lombok.Data; import java.math.BigDecimal; /** * @author ZhuBaoMin * @date 2024-08-29 17:27 * @LastEditTime 2024-08-29 17:27 * @Description */ @Data public class VoMapCenter { private static final long serialVersionUID = 202408291727001L; /** * 纬度 */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private BigDecimal lat; /** * 经度 */ @JSONField(serializeUsing= ObjectWriterImplToString.class) private BigDecimal lng; } pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -615,4 +615,14 @@ `se_client_card` WHERE state = 1 </select> <!--根据水卡地址获取水卡数量--> <select id="getCountByCardAddr" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount FROM se_client_card WHERE cardAddr = #{cardAddr} </select> <!--根据水卡地址获取指定状态的水卡数量--> <select id="getCountByCardAddrAndState" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount FROM se_client_card WHERE cardAddr = #{cardAddr} AND state IN(1,3) </select> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java
@@ -4,6 +4,7 @@ import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.voBa.VoDictItem; import com.dy.pipIrrGlobal.voBa.VoMapCenter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -40,4 +41,25 @@ return BaseResponseUtils.buildSuccess(dictSv.getDictItemsByDictCode(dictCode)); } /** * 根据配置项名称获取配置项值 * @param itemName * @return */ @GetMapping(path = "setting") @SsoAop() public BaseResponse<String> getSettingValue(String itemName) { return BaseResponseUtils.buildSuccess(dictSv.getItemValue(itemName)); } /** * 获取地图中心坐标 * @return */ @GetMapping(path = "map_center") @SsoAop public BaseResponse<VoMapCenter> getMapCenter() { return BaseResponseUtils.buildSuccess(dictSv.getMapCenter()); } } pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java
@@ -1,11 +1,14 @@ package com.dy.pipIrrBase.dict; import com.dy.pipIrrGlobal.daoBa.BaDictItemMapper; import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; import com.dy.pipIrrGlobal.voBa.VoDictItem; import com.dy.pipIrrGlobal.voBa.VoMapCenter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -23,6 +26,9 @@ @Autowired private BaDictItemMapper dictItemMapper; @Autowired private BaSettingsMapper baSettingsMapper; /** * 根据字典Code获取字典项 * @param dictCode @@ -32,4 +38,27 @@ List<VoDictItem> rs = Optional.ofNullable(dictItemMapper.getDictItemsByDictCode(dictCode)).orElse(new ArrayList<>()); return rs ; } /** * 根据配置项名称获取配置项值 * @param itemName * @return */ public String getItemValue(String itemName) { return baSettingsMapper.getItemValue(itemName); } /** * 获取地图中心坐标 * @return */ public VoMapCenter getMapCenter() { BigDecimal lat = new BigDecimal(baSettingsMapper.getItemValue("lat")); BigDecimal lng = new BigDecimal(baSettingsMapper.getItemValue("lng")); VoMapCenter po = new VoMapCenter(); po.setLat(lat); po.setLng(lng); return po; } } pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -76,6 +76,11 @@ 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(); // 获取5级行政区划串areaCode pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -491,4 +491,26 @@ 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; } } pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
@@ -19,6 +19,7 @@ AREA_CODE_MISTAKE(10001, "该农户行政区划异常"), CLIENT_NUM_ERROR(10001, "农户编号错误"), CARD_NUMBER_OVERRUN(10002, "水卡编号已满"), ACTIVE_FAIL_CARD_ESIST(10005, "开卡失败-此卡已存在"), ACTIVE_FAIL_WRITE_CLIENT_CARD_ERROR(10003, "开卡失败-农户卡写入异常"), ACTIVE_FAIL_WRITE_ACTIVE_CARD_ERROR(10004, "开卡失败-开卡记录写入异常"), ACTIVE_FAIL_RECHARGE_EXCEPTION(10005, "开卡失败-充值异常"),