| | |
| | | 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.SeWalletRechargeHistoryMapper; |
| | | 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.SeWalletRechargeHistory; |
| | | 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.QueryVo; |
| | | import com.dy.pipIrrSell.wallet.qo.QoWalletRecharge; |
| | | 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 |
| | |
| | | private SeWalletRechargeMapper seWalletRechargeMapper; |
| | | |
| | | @Autowired |
| | | private SeWalletRechargeHistoryMapper seWalletRechargeHistoryMapper; |
| | | private SeConsumeMapper seConsumeMapper; |
| | | |
| | | @Autowired |
| | | private SeRefundMapper seRefundMapper; |
| | | |
| | | /** |
| | | * 根据农户ID获取电子钱包对象 |
| | | * @param clientId |
| | | * @return |
| | | */ |
| | | public SeWallet getWalletByClientId(Long clientId) { |
| | | return seWalletMapper.getWalletByClientId(clientId); |
| | | } |
| | | |
| | | /** |
| | | * 注册电子钱包账号 |
| | | * @param po 电子钱包实体类 |
| | | * @return 电子钱包ID |
| | | */ |
| | | public Long addWallet(SeWallet po) { |
| | | seWalletMapper.insert(po); |
| | | return po.getId(); |
| | | } |
| | | |
| | | /** |
| | | * 电子钱包充值 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Integer add(SeWallet po) { |
| | | return seWalletMapper.insert(po); |
| | | public Long addRecharge(SeWalletRecharge po) { |
| | | seWalletRechargeMapper.insert(po); |
| | | return po.getId(); |
| | | } |
| | | |
| | | /** |
| | | * 根据编号从钱包表中获取该钱包余额 |
| | | * @param id |
| | | * 电子钱包消费 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Float getMoneyById(Long id) { |
| | | SeWallet po = seWalletMapper.selectByPrimaryKey(id); |
| | | return po.getMoney(); |
| | | public Long addConsume(SeConsume po) { |
| | | seConsumeMapper.insert(po); |
| | | return po.getId(); |
| | | } |
| | | |
| | | /** |
| | | * 根据钱包编号修改钱包余额 |
| | | * @param id 钱包编号(主键) |
| | | * @param money 钱包余额 |
| | | * @return 修改记录数量 |
| | | */ |
| | | public Integer updateMoneyById(Long id, Float money) { |
| | | SeWallet po = seWalletMapper.selectByPrimaryKey(id); |
| | | po.setMoney(money); |
| | | return seWalletMapper.updateByPrimaryKey(po); |
| | | } |
| | | |
| | | /** |
| | | * 根据id删除充值记录 |
| | | * @param id |
| | | * 添加退款申请 |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Integer deleteWallerRechargeById(Long id) { |
| | | return seWalletMapper.deleteByPrimaryKey(id); |
| | | public Long addRefund(SeRefund po) { |
| | | seRefundMapper.insert(po); |
| | | return po.getId(); |
| | | } |
| | | |
| | | /** |
| | | * 将充值记录添加到充值历史表 |
| | | * @param po 充值历史实体 |
| | | * 根据钱包ID获取待审核的退款申请对象 |
| | | * @param walletId |
| | | * @return |
| | | */ |
| | | public Integer addWallerRechargeHistory(SeWalletRechargeHistory po) { |
| | | return seWalletRechargeHistoryMapper.insert(po); |
| | | 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 ; |
| | | } |
| | | } |