Administrator
2024-05-27 f5a7f6c30bc5fb13eb538b5856a663b1ba0667b6
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletSv.java
@@ -1,5 +1,6 @@
package com.dy.pipIrrSell.wallet;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoSe.SeConsumeMapper;
import com.dy.pipIrrGlobal.daoSe.SeRefundMapper;
import com.dy.pipIrrGlobal.daoSe.SeWalletMapper;
@@ -8,9 +9,21 @@
import com.dy.pipIrrGlobal.pojoSe.SeRefund;
import com.dy.pipIrrGlobal.pojoSe.SeWallet;
import com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge;
import com.dy.pipIrrGlobal.voSe.VoWallet;
import com.dy.pipIrrGlobal.voSe.VoWalletConsume;
import com.dy.pipIrrGlobal.voSe.VoWalletRecharge;
import com.dy.pipIrrGlobal.voSe.VoWalletRefund;
import com.dy.pipIrrSell.wallet.qo.QoWalletRecharge;
import com.dy.pipIrrSell.wallet.qo.QueryVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
 * @author ZhuBaoMin
@@ -111,4 +124,121 @@
        return seWalletMapper.updateByPrimaryKeySelective(po);
    }
    /**
     * 根据农户姓名获取电子钱包账户记录
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoWallet>> getWallets(QueryVo queryVo) {
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = seWalletMapper.getRecordCount(params);
        QueryResultVo<List<VoWallet>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seWalletMapper.getWallets(params);
        return rsVo ;
    }
    /**
     * 根据指定条件获取电子钱包充值记录
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoWalletRecharge>> getWalletRecharges(QoWalletRecharge 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);
        }
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = seWalletRechargeMapper.getRecordCount(params);
        QueryResultVo<List<VoWalletRecharge>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seWalletRechargeMapper.getWalletRecharges(params);
        return rsVo ;
    }
    /**
     * 根据农户ID获取电子钱包消费记录
     * @param queryVo
     * @return
     */
    public Map getWalletConsumes(QueryVo queryVo) {
        // 获取电子钱包消费汇总信息
        String clientName = "";
        String clientNum = "";
        Double money = 0.0;
        Double totalConsume = 0.0;
        Long clientId = Optional.ofNullable(queryVo.getClientId()).orElse(0L);
        Map map_consumeSum = Optional.ofNullable(seConsumeMapper.getWalletConsumeSum(clientId)).orElse(new HashMap());
        if(map_consumeSum.size() > 0) {
            clientName = map_consumeSum.get("clientName").toString();
            clientNum = map_consumeSum.get("clientNum").toString();
            money = Double.parseDouble(map_consumeSum.get("money").toString());
            totalConsume = Double.parseDouble(map_consumeSum.get("totalConsume").toString());
        }
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = seConsumeMapper.getRecordCount(params);
        QueryResultVo<List<VoWalletConsume>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        List<VoWalletConsume> list = seConsumeMapper.getWalletConsumes(params);
        Map map_record = new HashMap();
        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("clientName", clientName);
        map_result.put("clientNum", clientNum);
        map_result.put("money", money);
        map_result.put("totalConsume", totalConsume);
        map_result.put("records", map_record);
        return map_result;
    }
    /**
     * 根据指定条件获取电子钱包退款记录
     * @param queryVo
     * @return
     */
    public QueryResultVo<List<VoWalletRefund>> getWalletRefunds(QueryVo queryVo) {
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        Long itemTotal = seRefundMapper.getRecordCount(params);
        QueryResultVo<List<VoWalletRefund>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = seRefundMapper.getWalletRefunds(params);
        return rsVo ;
    }
}