zhubaomin
4 天以前 bf580699fbe3fe2996712d90f09325e870991435
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -1,18 +1,21 @@
package com.dy.pipIrrTerminal.card;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
import com.dy.pipIrrGlobal.voSe.VoTermRecharge;
import com.dy.pipIrrTerminal.card.dto.ActiveCard;
import com.dy.pipIrrTerminal.card.dto.DtoRecharge;
import com.dy.pipIrrTerminal.card.enums.CardStateENUM;
import com.dy.pipIrrTerminal.card.enums.LastOperateENUM;
import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM;
import com.dy.pipIrrTerminal.card.enums.RechargeTypeENUM;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -264,4 +267,124 @@
        return map;
    }
    public Map canRecharge(DtoRecharge po) {
        Map map = new HashMap<>();
        map.put("success", false);
        map.put("content", null);
        String stateName = Optional.ofNullable(seClientCardMapper.getCardStateByCardNum(po.getCardNum())).orElse("");
        // 单独充值时卡片必须为正常
        if((po.getRechargeType() == RechargeTypeENUM.RECHARGE.getCode()) && !stateName.equals("正常")) {
            map.put("msg", stateName + ", " + "水卡状态不支持当前操作");
            return map;
        }
        map.put("success", true);
        return map;
    }
    public Map addRecharge(DtoRecharge po) {
        Map map = new HashMap<>();
        map.put("success", false);
        map.put("content", null);
        /**
         * cardId           水卡编号(依据水卡编号获取)
         * clientId         农户编号(依据水卡编号获取)
         * cardNum          水卡编号
         * money            卡片余额
         * amount           充值金额
         * gift             赠送金额
         * afterRecharge    充值后余额
         * paymentId        支付方式编号
         * price            水价
         * remarks          备注
         * operator         操作人编号
         * rechargeTime     充值时间
         */
        //Long cardId = 0L;
        //Long clientId = 0L;
        //Long cardNum = po.getCardNum();
        //Float money = po.getMoney();
        //Float amount = po.getAmount();
        //Float gift = po.getGift();
        //Float afterRecharge = money + amount + gift;
        //Long paymentId = po.getPaymentId();
        //Float price = po.getPrice();
        //String remarks = po.getRemarks();
        //Long operator = po.getOperator();
        //Date rechargeTime = new Date();
        Map map_canRecharge = canRecharge(po);
        if(map_canRecharge.get("success").equals(false)) {
            map.put("msg", map_canRecharge.get("msg").toString());
            return map;
        }
        /**
         * 依据水卡编号获取水卡表主键及农户编号
         */
        Map map_cardAndClient = seClientCardMapper.getCardIdAndClientNum(po.getCardNum());
        if (map_cardAndClient == null || map_cardAndClient.size() <= 0) {
            map.put("msg", "卡号错误,该卡不存在");
            return map;
        }
        Long cardId = Long.parseLong(map_cardAndClient.get("cardId").toString());
        Long clientId = Long.parseLong(map_cardAndClient.get("clientId").toString());
        /**
         * 添加水卡充值操作记录
         */
        SeCardOperate seCardOperate = new SeCardOperate();
        seCardOperate.setCardId(cardId);
        seCardOperate.setClientId(clientId);
        seCardOperate.setMoney(po.getMoney());
        seCardOperate.setTradeAmount(po.getAmount());
        seCardOperate.setGift(po.getGift());
        seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode());
        seCardOperate.setPaymentId(po.getPaymentId());
        seCardOperate.setPrice(po.getPrice());
        seCardOperate.setRemarks(po.getRemarks());
        seCardOperate.setOperator(po.getOperator());
        seCardOperate.setOperateDt(new Date());
        seCardOperate.setOperateValid((byte) 1);
        seCardOperateMapper.insert(seCardOperate);
        Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L);
        if (rec == 0) {
            //return BaseResponseUtils.buildErrorMsg("充值失败-充值记录写入异常");
        }
        /**
         * 添加充值历史记录
         */
        SeRechargeHistory seRechargeHistory = new SeRechargeHistory();
        seRechargeHistory.setCardid(cardId);
        seRechargeHistory.setClientid(clientId);
        seRechargeHistory.setMoney(po.getMoney());
        seRechargeHistory.setAmount(po.getAmount());
        seRechargeHistory.setGift(po.getGift());
        Float afterRecharge = po.getMoney() + po.getAmount() + po.getGift();
        seRechargeHistory.setAfterrecharge(afterRecharge);
        seRechargeHistory.setPaymentid(po.getPaymentId());
        seRechargeHistory.setPrice(po.getPrice());
        seRechargeHistory.setRemarks(po.getRemarks());
        seRechargeHistory.setOperator(po.getOperator());
        seRechargeHistory.setOperatedt(new Date());
        seRechargeHistory.setOperateValid((byte) 1);
        //seRechargeHistoryMapper.insert(seRechargeHistory);
        Long rec_seRechargeHistory = Optional.ofNullable(seRechargeHistory.getId()).orElse(0L);
        //if (rec_seRechargeHistory == 0) {
        //    return BaseResponseUtils.buildErrorMsg("充值失败-充值历史记录写入异常");
        //}
        //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);
        return map;
    }
}