Administrator
2024-05-29 2b3defc58765bdd126901b809448868a5f8feb3c
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
@@ -2,20 +2,21 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper;
import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
import com.dy.pipIrrGlobal.daoSe.SeCodeVerifyMapper;
import com.dy.pipIrrGlobal.daoSe.SeOpenIdMapper;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify;
import com.dy.pipIrrGlobal.pojoSe.SeOpenId;
import com.dy.pipIrrGlobal.voSe.VoClient;
import com.dy.pipIrrGlobal.voSe.VoOperate;
import com.dy.pipIrrGlobal.voSe.VoStatistics;
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
@@ -33,6 +34,15 @@
    @Autowired
    private BaDistrictMapper baDistrictMapper;
    @Autowired
    private SeCodeVerifyMapper seCodeVerifyMapper;
    @Autowired
    private SeOpenIdMapper seOpenIdMapper;
    @Autowired
    private BaSettingsMapper baSettingsMapper;
    /**
     * 根据指定条件获取农户数据
     * @param queryVo
@@ -43,139 +53,13 @@
        Long itemTotal = seClientMapper.getRecordCount(params);
        QueryResultVo<List<VoClient>> 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 = seClientMapper.getClients(params);
        return rsVo ;
    }
    /**
     * 根据指定条件获取交易记录
     * @param vo
     * @return
     */
    public Map getOperates(QueryOperate vo){
        // 补齐查询时间
        String operateTimeStart = vo.operateTimeStart;
        String operateTimeStop = vo.operateTimeStop;
        if(operateTimeStart != null) {
            operateTimeStart = operateTimeStart + " 00:00:00";
            vo.setOperateTimeStart(operateTimeStart);
        }
        if(operateTimeStop != null) {
            operateTimeStop = operateTimeStop + " 23:59:59";
            vo.setOperateTimeStop(operateTimeStop);
        }
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
        // 获取汇总的购水金额、购卡金额
        Float money = 0f;
        Float cardCost = 0f;
        Map map_sum = Optional.ofNullable(seClientMapper.getSums(params)).orElse(new HashMap());
        if(map_sum.size() > 0) {
            money = Float.parseFloat(map_sum.get("money").toString());
            cardCost = Float.parseFloat(map_sum.get("cardCost").toString());
        }
        // 获取符合条件的记录数
        Long itemTotal = seClientMapper.getOperateRecordCount(params);
        Integer pageSize = vo.getPageSize();
        // 计算总页数
        Integer pageTotal ;
        pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
        // 根据当前页码及每页数量计算偏移量
        Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
        params.put("pageCurr", pageCurr);
        List<VoOperate> lit = seClientMapper.getOperates(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 map_result = new HashMap();
        map_result.put("money", money);
        map_result.put("cardCost", cardCost);
        map_result.put("records", map_record);
        return map_result;
    }
    /**
     * 根据指定条件获取统计记录
     * @param vo 交易汇总查询条件
     * @return 交易汇总记录
     */
    public Map getStatistics(QueryStatistic vo){
        // 补齐查询时间
        String operateTimeStart = vo.operateTimeStart;
        String operateTimeStop = vo.operateTimeStop;
        if(operateTimeStart != null) {
            operateTimeStart = operateTimeStart + " 00:00:00";
            vo.setOperateTimeStart(operateTimeStart);
        }
        if(operateTimeStop != null) {
            operateTimeStop = operateTimeStop + " 23:59:59";
            vo.setOperateTimeStop(operateTimeStop);
        }
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
        // 获取汇总的交易笔数、交易金额
        Integer count = 0;
        Float money = 0f;
        Map map_sum = Optional.ofNullable(seClientMapper.getStatisticSums(params)).orElse(new HashMap());
        if(map_sum.size() > 0) {
            count = Integer.parseInt(map_sum.get("count").toString());
            money = Float.parseFloat(map_sum.get("money").toString());
        }
        // 获取符合条件的记录数
        Long itemTotal = seClientMapper.getStatisticRecordCount(params);
        Integer pageSize = vo.getPageSize();
        // 计算总页数
        Integer pageTotal ;
        pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
        // 根据当前页码及每页数量计算偏移量
        Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
        params.put("pageCurr", pageCurr);
        List<VoStatistics> lit = seClientMapper.getStatistics(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 map_result = new HashMap();
        map_result.put("count", count);
        map_result.put("money", money);
        map_result.put("records", map_record);
        return map_result;
    }
    /**
@@ -197,6 +81,23 @@
        return seClientMapper.insert(po);
    }
    /**
     * 添加验证码记录
     * @param po
     * @return
     */
    public Integer addCodeVerify(SeCodeVerify po) {
        return seCodeVerifyMapper.insert(po);
    }
    /**
     * 根据手机号获取验证码验证对象
     * @param phoneNumber
     * @return
     */
    public SeCodeVerify getCodeVerify(String phoneNumber) {
        return seCodeVerifyMapper.getCodeVerify(phoneNumber);
    }
    /**
     * 根据6位区划串模糊查询农户编号
     * @param district6
@@ -255,4 +156,32 @@
    public List<Map<String, Object>> getWaterTypes() {
        return seClientMapper.getWaterTypes();
    }
    /**
     * 根据电话号码获取农户ID
     * @param phoneNumber
     * @return
     */
    public Long getClientIdByPhone(String phoneNumber) {
        return seClientMapper.getClientIdByPhone(phoneNumber);
    }
    /**
     * 添加微信用户账户记录
     * @param po
     * @return
     */
    public Long addOpenId(SeOpenId po) {
        seOpenIdMapper.insert(po);
        return po.getClientId();
    }
    /**
     * 根据配置项获取配置项值
     * @param itemName
     * @return
     */
    public String getItemValue(String itemName) {
        return baSettingsMapper.getItemValue(itemName);
    }
}