From fd35f223b7f40ee9ee4a9307384b54a96d7956a2 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 31 十月 2024 09:35:12 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java | 3 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java | 2 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java | 3 + ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java | 36 +++++++++++++++-- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 13 ++++-- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java | 3 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 11 ++++- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 7 +++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java | 1 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java | 4 +- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java | 3 + 12 files changed, 71 insertions(+), 17 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java index 72db785..ce10ebb 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/AppUserInfoDto.java @@ -17,7 +17,7 @@ @ApiModelProperty("最低会员价格") private BigDecimal minPrice; @ApiModelProperty("vip结束时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private LocalDateTime vipExpireTime; @ApiModelProperty("当天是否签到") private Integer isSign; @@ -25,6 +25,7 @@ private Integer points; @ApiModelProperty("当前优惠卷数量") private Integer couponNum; + private Long vipCouponNum; @ApiModelProperty("是否第一次添加车") private Integer firstAdd; @ApiModelProperty("当前绑定的车辆") diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java index d51745e..2acc636 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppCoupon.java @@ -87,6 +87,9 @@ @TableField("coupon_json") private String couponJson; + @TableField("detail_id") + private Long detailId; + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index ed787d8..3a6752e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -586,6 +587,8 @@ return R.ok(); } + @Resource + private TAppUserVipDetailService appUserVipDetailService; @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"}) @GetMapping(value = "/user/info") @@ -602,12 +605,14 @@ if (byId.getVipEndTime()==null||byId.getVipEndTime().isBefore(LocalDateTime.now())){ appUserInfoDto.setIsVip(0); }else { + TAppUserVipDetail one = appUserVipDetailService.getOne(new LambdaQueryWrapper<TAppUserVipDetail>() + .eq(TAppUserVipDetail::getAppUserId, userId) + .eq(TAppUserVipDetail::getVipId, byId.getVipId()) + .last(" and now() between start_time and end_time")); + Long count = appCouponService.lambdaQuery().eq(TAppCoupon::getDetailId, one.getId()).count(); + appUserInfoDto.setVipCouponNum(count); appUserInfoDto.setIsVip(1); appUserInfoDto.setVipExpireTime(byId.getVipEndTime()); - - - - diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java index 12dccfc..2e9bd75 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java @@ -77,6 +77,7 @@ tAppCoupon.setWaysToObtain(4); tAppCoupon.setStatus(1); tAppCoupon.setCouponJson(JSON.toJSONString(coupon)); + tAppCoupon.setDetailId(tAppUserVipDetail.getId()); appCouponService.save(tAppCoupon); } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java index 9a33506..627d205 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java @@ -18,6 +18,7 @@ import com.ruoyi.chargingPile.domain.SiteMenu; import com.ruoyi.chargingPile.mapper.SiteMapper; import com.ruoyi.chargingPile.service.*; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -88,6 +89,7 @@ * @param siteList * @return */ + @Override public PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList) { Set<Integer> ids = null; @@ -95,12 +97,15 @@ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); //合作商 if(roleType == 2){ ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + //改用roleId=1来判断 + if(admin.getData()!=1){ +// if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); if(data2.size() > 0){ @@ -134,12 +139,14 @@ SysUser sysUser = sysUserClient.getSysUser(userId).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); + //合作商 if(roleType == 2){ ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(admin.getData()!=1){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java index e1c3c85..f7019e4 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java @@ -482,13 +482,14 @@ Set<Integer> siteIds = new HashSet<>(); if(0 == query.getSiteId()){ SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); if(2 == roleType){ siteIds = partnerService.authSite(objectId, SiteMenu.SITE_LIST); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(admin.getData()!=1){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java index 2463e5e..ed002bf 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/UploadRealTimeMonitoringDataService.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.dto.MongoChargingOrderQuery; import java.text.ParseException; +import java.util.Date; import java.util.List; public interface UploadRealTimeMonitoringDataService extends BaseService<UploadRealTimeMonitoringData> { @@ -26,4 +27,6 @@ UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number); void delete(String id); + + void updateById(String id); } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java index c23a6a6..529427e 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java @@ -8,12 +8,14 @@ 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.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import java.text.ParseException; @@ -68,7 +70,7 @@ // 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" 表示不区分大小写 + query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(),"i")); // "i" 表示不区分大小写 } if (mongoChargingOrderQuery.getOrderType() !=null){ query.addCriteria(Criteria.where("orderType").is(mongoChargingOrderQuery.getOrderType())); @@ -112,17 +114,31 @@ long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class); - // 设置分页 - Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize()); + + // 创建带有排序的 Pageable 对象 + Pageable pageable = PageRequest.of( + mongoChargingOrderQuery.getPageCurr()-1, + mongoChargingOrderQuery.getPageSize(), + Sort.by(Sort.Direction.DESC, "create_time") + ); + + // 设置分页和排序 query.with(pageable); - query.with(Sort.by(Sort.Direction.DESC,"create_time")); + + // 执行查询并获取 Page 对象 + List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data"); + + // 设置分页 +// Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize()); +// query.with(pageable); +// query.with(Sort.by(Sort.Direction.DESC,"create_time")); List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find( query , UploadRealTimeMonitoringData.class); UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData(); uploadRealTimeMonitoringPageData.setCount(totalElements); - uploadRealTimeMonitoringPageData.setRecords(uploadRealTimeMonitoringData); + uploadRealTimeMonitoringPageData.setRecords(page); return uploadRealTimeMonitoringPageData; } @@ -145,4 +161,14 @@ mongoTemplate.remove(byId); } + @Override + public void updateById(String id) { + // 创建查询条件 + Query query = new Query(Criteria.where("_id").is(id)); + // 创建更新对象 + Update update = new Update().set("last_time", new Date()); + // 执行更新操作 + mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class); + } + } diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java index 0ba5a50..4a4cb95 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java @@ -201,7 +201,7 @@ uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence()); uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge()); if (Objects.nonNull(data)) { - data.setLast_time(new Date()); + uploadRealTimeMonitoringDataService.updateById(data.getId()); uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount().subtract(data.getPaid_amount())); uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree().subtract(data.getCharging_degree())); uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP)); @@ -337,7 +337,7 @@ // 添加实时上传记录结束记录 // 查询mogondb上一条数据 UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number()); - if(Objects.nonNull(data)){ + if(Objects.nonNull(data) && data.getStatus() != 5){ UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData(); BeanUtils.copyProperties(data,uploadRealTimeMonitoringData); uploadRealTimeMonitoringData.setStatus(5); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index aeede6b..e1a49c2 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -1683,7 +1683,7 @@ Long userId = tokenService.getLoginUserApplet().getUserId(); List<TChargingOrder> list = chargingOrderService.list(Wrappers.lambdaQuery(TChargingOrder.class) .eq(TChargingOrder::getAppUserId, userId) - .eq(TChargingOrder::getStatus, 3)); + .in(TChargingOrder::getStatus, Arrays.asList(1,2,3,4))); List<Integer> gunIds = list.stream().map(TChargingOrder::getChargingGunId).collect(Collectors.toList()); return R.ok(gunIds); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java index 96f71ec..0322582 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderAppealController.java @@ -65,7 +65,7 @@ .like(manageOrderAppealQuery.getPhone() != null, TOrderAppeal::getPhone, manageOrderAppealQuery.getPhone()) .eq(manageOrderAppealQuery.getOrderType() != null, TOrderAppeal::getOrderType, manageOrderAppealQuery.getOrderType()) .in(TOrderAppeal::getOrderType, 1, 2) - .orderByDesc(TOrderAppeal::getFeedbackTime) + .orderByDesc(TOrderAppeal::getCreateTime) .page(Page.of(manageOrderAppealQuery.getPageCurr(), manageOrderAppealQuery.getPageSize())); for (TOrderAppeal record : page.getRecords()) { diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index 53a3e02..1408d4f 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -1448,6 +1448,13 @@ <if test="statisticsQueryDto.dayType == 1"> AND DATE( create_time ) between #{statisticsQueryDto.startTime} and #{statisticsQueryDto.endTime} </if> + + <if test="siteIds != null and siteIds.size() > 0"> + and site_id IN + <foreach collection="siteIds" item="siteId" open="(" separator="," close=")"> + #{siteId} + </foreach> + </if> GROUP BY time ORDER BY -- Gitblit v1.7.1