|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.SeOpenIdMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoSe.SeClient; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoSe.SeOpenId; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voSe.VoClient; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voSe.VoOperate; | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BaDistrictMapper baDistrictMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BaSettingsMapper baSettingsMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SeOpenIdMapper seOpenIdMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件获取农户数据 | 
|---|
|  |  |  | * @param queryVo | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Integer addClient(SeClient po) { | 
|---|
|  |  |  | return seClientMapper.insert(po); | 
|---|
|  |  |  | return seClientMapper.insertSelective(po); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | public List<Map<String, Object>> getWaterTypes() { | 
|---|
|  |  |  | return seClientMapper.getWaterTypes(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据配置项获取配置项值 | 
|---|
|  |  |  | * @param itemName | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String getItemValue(String itemName) { | 
|---|
|  |  |  | return baSettingsMapper.getItemValue(itemName); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据电话号码获取农户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(); | 
|---|
|  |  |  | return po.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|