zhubaomin
2024-08-30 7ccce6911249a0a9df42f2e04e7a34da4c66a6da
2024-08-30 朱宝民 获取地图中心坐标、是否允许开卡验证
7个文件已修改
1个文件已添加
136 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCenter.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictCtrl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/dict/DictSv.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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, "开卡失败-充值异常"),