ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
@@ -1,6 +1,7 @@ package com.ruoyi.integration.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.*; import org.slf4j.Logger; @@ -43,7 +44,7 @@ } @Override public R<List<UploadRealTimeMonitoringData>> getAll(Set<String> values, Integer page, Integer size) { public R<List<UploadRealTimeMonitoringData>> getAll(MongoChargingOrderQuery mongoChargingOrderQuery) { return null; } }; ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/UploadRealTimeMonitoringDataClient.java
@@ -2,10 +2,12 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import com.ruoyi.integration.api.factory.UploadRealTimeMonitoringDataFallbackFactory; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -42,5 +44,5 @@ R<List<UploadRealTimeMonitoringData>> getDataByOrderCode(@RequestParam("code") String code); @PostMapping("/uploadRealTimeMonitoringData/getAll") R<List<UploadRealTimeMonitoringData>> getAll(@RequestParam("values") Set<String> values, @RequestParam("page") Integer page, @RequestParam("size")Integer size); R<List<UploadRealTimeMonitoringData>> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery); } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.domain.TEnterpriseUserApplication; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.domain.*; import com.ruoyi.other.api.dto.TagListQueryDto; import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.feignClient.OtherClient; @@ -102,6 +99,11 @@ public R<List<TEnterpriseUserApplication>> getTnterPrise() { return R.fail("查询:"+throwable.getMessage()); } @Override public R<Region> getRegionBuyCode(String code) { return R.fail("远程调用根据code查询名称失败:"+throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -72,4 +72,6 @@ @PutMapping(value = "/t-enterprise-user-application/export") R<List<TEnterpriseUserApplication>> getTnterPrise(); @GetMapping("/region/getRegionBuyCode/{code}") R<Region> getRegionBuyCode(@PathVariable("code") String code); } ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/MongoChargingOrderQuery.java
New file @@ -0,0 +1,35 @@ package com.ruoyi.common.core.dto; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel(value = "ChargingOrderQuery充电桩订单查询对象",description = "管理后台充电桩订单查询对象") public class MongoChargingOrderQuery extends BasePage { @ApiModelProperty(value = "订单编号") private String code; @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private Integer orderType; @ApiModelProperty(value = "手机号") private String phone; @ApiModelProperty(value = "状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") private Integer status; @ApiModelProperty(value = "站点id") private Integer siteId; @ApiModelProperty(value = "充电桩code ") private String chargingPileCode; @ApiModelProperty(value = "充电枪code ") private String chargingGunCode; @ApiModelProperty(value = "开始时间2020-01-01 00:00:00 - 2021-01-01 23:59:59") private String startTime; @ApiModelProperty(value = "结束时间2020-01-01 00:00:00 - 2021-01-01 23:59:59") private String endTime; @ApiModelProperty(value = "订单来源 1明星 2快电 3新电途") private Integer orderSource; @ApiModelProperty(value = "用户ids 前端忽略") private List<Long> userIds; } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -112,6 +112,7 @@ @Resource private IntegralRuleClient integralRuleClient; @Resource private VipClient vipClient; @Resource @@ -363,6 +364,14 @@ R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds); //循环处理 for (TAppUser appUser : page.getRecords()) { if (appUser.getProvinceCode()!=null){ Region data = otherClient.getRegionBuyCode(appUser.getProvinceCode()).getData(); appUser.setProvince(data.getName()); } if(appUser.getCityCode()!=null){ Region data = otherClient.getRegionBuyCode(appUser.getCityCode()).getData(); appUser.setProvince(data.getName()); } //拿到最新的tagId TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); //设置最新的tagName ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/UploadRealTimeMonitoringDataController.java
@@ -1,17 +1,14 @@ package com.ruoyi.integration.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Set; /** * <p> @@ -75,8 +72,8 @@ @PostMapping(value = "/getAll") public R<List<UploadRealTimeMonitoringData>> getAll(@RequestParam("values") Set<String> values,@RequestParam("page") Integer page, @RequestParam("size")Integer size){ List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataAll(values,page,size); public R<List<UploadRealTimeMonitoringData>> getAll(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery){ List<UploadRealTimeMonitoringData> list = uploadRealTimeMonitoringDataService.getDataAll(mongoChargingOrderQuery); return R.ok(list); } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java
@@ -1,11 +1,10 @@ package com.ruoyi.integration.mongodb.service; import com.ruoyi.common.core.domain.R; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.mongodb.base.BaseService; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import java.util.List; import java.util.Set; public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { @@ -15,7 +14,7 @@ * @return */ List<UploadRealTimeMonitoringData> getDataByOrderCode(String code); List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size); List<UploadRealTimeMonitoringData> getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery); /** * 查询订单最新一条数据 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -1,10 +1,10 @@ package com.ruoyi.integration.mongodb.service.impl; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.integration.iotda.constant.IotConstant; import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; @@ -15,7 +15,6 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.Set; @Service public class UploadRealTimeMonitoringDataServiceImpl implements UploadRealTimeMonitoringDataService { @@ -58,13 +57,48 @@ } @Override public List<UploadRealTimeMonitoringData> getDataAll(Set<String> values, Integer page, Integer size) { public List<UploadRealTimeMonitoringData> getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) { Query query = new Query(); if (!values.isEmpty()){ query.addCriteria(Criteria.where("transaction_serial_number").in(values)); // if (!values.isEmpty()){ // query.addCriteria(Criteria.where("transaction_serial_number").in(values)); // } if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) { query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(), "i")); // "i" 表示不区分大小写 } if (mongoChargingOrderQuery.getOrderType() !=null){ query.addCriteria(Criteria.where("order_type").is(mongoChargingOrderQuery.getOrderType())); } if (mongoChargingOrderQuery.getSiteId() != null){ query.addCriteria(Criteria.where("site_id").is(mongoChargingOrderQuery.getSiteId())); } if (mongoChargingOrderQuery.getChargingPileCode() != null && !mongoChargingOrderQuery.getChargingPileCode().isEmpty()) { query.addCriteria(Criteria.where("charging_pile_code").is(mongoChargingOrderQuery.getChargingPileCode())); } if (mongoChargingOrderQuery.getChargingGunCode() != null && !mongoChargingOrderQuery.getChargingGunCode().isEmpty()){ query.addCriteria(Criteria.where("charging_gun_code").is(mongoChargingOrderQuery.getChargingGunCode())); } if (mongoChargingOrderQuery.getStatus() != null){ query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus())); } if (mongoChargingOrderQuery.getStartTime() != null) { String[] split = mongoChargingOrderQuery.getStartTime().split(" - "); query.addCriteria(Criteria.where("startTime").gte(split[0]).lt(split[1])); } if (mongoChargingOrderQuery.getEndTime() != null && mongoChargingOrderQuery.getEndTime() != null) { String[] split = mongoChargingOrderQuery.getEndTime().split(" - "); query.addCriteria(Criteria.where("lastTime").gte(split[0]).lt(split[1])); } // 设置分页 Pageable pageable = PageRequest.of(page, size); Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize()); query.with(pageable); List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find( ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1,6 +1,5 @@ package com.ruoyi.order.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import java.math.BigDecimal; import java.math.RoundingMode; @@ -21,29 +20,24 @@ import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; import com.ruoyi.chargingPile.api.model.TParkingRecord; import com.ruoyi.chargingPile.api.vo.SiteVO; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.ChargingOrderGroup; import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient; import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.*; import com.ruoyi.order.api.query.ChargingOrderQuery; import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import com.ruoyi.order.api.query.TChargingCountQuery; import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery; import com.ruoyi.order.api.vo.*; import com.ruoyi.order.api.vo.ChargingOrderInfoVO; import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.api.vo.GetChargingOrderByLicensePlate; import com.ruoyi.order.api.vo.TCharingOrderVO; import com.ruoyi.order.dto.GetMyChargingOrderList; @@ -53,18 +47,14 @@ import com.ruoyi.order.dto.OrderEvaluateVo; import com.ruoyi.order.dto.*; import com.ruoyi.order.service.*; import com.ruoyi.order.service.impl.TChargingOrderServiceImpl; import com.ruoyi.order.util.PreviousSixMonths; import com.ruoyi.order.vo.EndOfChargePageInfo; import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.AliQueryOrder; import com.ruoyi.payment.api.vo.WxRefundNotifyResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.models.auth.In; import jdk.nashorn.internal.runtime.ListAdapter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -73,15 +63,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -691,37 +678,37 @@ @ResponseBody @PostMapping(value = "/watch/chargingOrder") @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"}) public R<List<ChargingOrderAndUploadRealTimeMonitoringDataDto>> watchChargingOrder(@RequestBody ChargingOrderQuery dto) { Integer page = dto.getPageCurr(); Integer pageSize = dto.getPageSize(); List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); dto.setUserIds(data); dto.setPageCurr(1); dto.setPageSize(99999); TCharingOrderVO res = chargingOrderService.chargingOrder(dto); Map<String,TChargingOrder> map = new HashMap<>(); //吧list放入map中 for (ChargingOrderVO record : res.getList().getRecords()) { map.put(record.getCode(),record); } Set<String> strings = map.keySet(); public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) { // Integer page = dto.getPageCurr(); // Integer pageSize = dto.getPageSize(); // List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); // dto.setUserIds(data); // dto.setPageCurr(1); // dto.setPageSize(99999); // TCharingOrderVO res = chargingOrderService.chargingOrder(dto); // Map<String,TChargingOrder> map = new HashMap<>(); // //吧list放入map中 // for (ChargingOrderVO record : res.getList().getRecords()) { // map.put(record.getCode(),record); // } // Set<String> strings = map.keySet(); List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(strings, page, pageSize).getData(); List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery).getData(); List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) { ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto); TChargingOrder tChargingOrder = map.get(uploadRealTimeMonitoringData.getCharging_pile_code()); if (tChargingOrder!=null) { BeanUtils.copyProperties(tChargingOrder, dataDto); } dtos.add(dataDto); } // List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); // for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) { // ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); // BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto); // TChargingOrder tChargingOrder = map.get(uploadRealTimeMonitoringData.getCharging_pile_code()); // if (tChargingOrder!=null) { // BeanUtils.copyProperties(tChargingOrder, dataDto); // } // dtos.add(dataDto); // } return R.ok(dtos); return R.ok(data1); } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -102,10 +102,10 @@ and t1.charging_gun_id = #{req.gunId} </if> <if test="startTime1 != null and startTime1!=''"> and (t1.start_time between #{startTime1} and #{startTime2} and (t1.start_time between #{startTime1} and #{startTime2}) </if> <if test="endTime1 != null and endTime1!=''"> and (t1.end_time between #{endTime1} and #{endTime2} and (t1.end_time between #{endTime1} and #{endTime2}) </if> </select> <select id="payOrderQuery" resultType="com.ruoyi.order.dto.PayOrderDto"> ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml
@@ -71,7 +71,7 @@ </foreach> </if> </where> ORDER BY toi.billing_time DESC ORDER BY toi.create_time DESC </select> <select id="statusCount" resultType="java.util.Map"> select ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RegionController.java
@@ -1,6 +1,7 @@ package com.ruoyi.other.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.other.api.domain.Region; import com.ruoyi.other.service.IRegionService; @@ -34,4 +35,15 @@ List<Region> list = regionService.list(new LambdaQueryWrapper<Region>().eq(Region::getParentId, pid)); return AjaxResult.success(list); } /** * 根据code获取对应名称 * @return */ @ResponseBody @GetMapping("/getRegionBuyCode/{code}") public R<Region> getRegionBuyCode(@PathVariable("code") String code){ Region list = regionService.getOne(new LambdaQueryWrapper<Region>().eq(Region::getCode, code)); return R.ok(list); } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java
@@ -68,7 +68,7 @@ @ApiOperation(tags = {"管理后台-广告管理"},value = "广告修改") @Log(title = "【广告管理】修改广告", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) public AjaxResult updateVip(@RequestBody TAdvertising dto) { if (dto.getJumpType() == 2){ if (dto.getJumpType()!=null && dto.getJumpType() == 2){ // 清空跳转地址 advertisingService.updateById(dto); LambdaUpdateWrapper<TAdvertising> tAdvertisingLambdaUpdateWrapper = new LambdaUpdateWrapper<>();