|  |  | 
 |  |  | 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; | 
 |  |  | import com.dy.pipIrrGlobal.daoSe.SeWalletRechargeMapper; | 
 |  |  | import com.dy.pipIrrGlobal.pojoSe.SeConsume; | 
 |  |  | 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 | 
 |  |  | 
 |  |  |         return po.getId(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public Integer updateWallet(SeWallet po) { | 
 |  |  |         return seWalletMapper.updateByPrimaryKeySelective(po); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 电子钱包充值 | 
 |  |  |      * @param po | 
 |  |  | 
 |  |  |         return po.getId(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 电子钱包消费 | 
 |  |  |      * @param po | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Long addConsume(SeConsume po) { | 
 |  |  |         seConsumeMapper.insert(po); | 
 |  |  |         return po.getId(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 添加退款申请 | 
 |  |  |      * @param po | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Long addRefund(SeRefund po) { | 
 |  |  |         seRefundMapper.insert(po); | 
 |  |  |         return po.getId(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 根据钱包ID获取待审核的退款申请对象 | 
 |  |  |      * @param walletId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public SeRefund getRefundByWallerId(Long walletId) { | 
 |  |  |         return seRefundMapper.getRefundByWallerId(walletId); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 审核退款申请 | 
 |  |  |      * @param po | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Integer auditRefund(SeRefund po) { | 
 |  |  |         return seRefundMapper.updateByPrimaryKeySelective(po); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 修改电子钱包 | 
 |  |  |      * 充值、消费、申请退款、审核退款时需要修改电子钱包的:余额、最后操作、最后操作时间 | 
 |  |  |      * @param po | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public Integer updateWallet(SeWallet po) { | 
 |  |  |         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 ; | 
 |  |  |     } | 
 |  |  | } |