luodangjia
2024-09-26 b72094a519b590ccebb805b5ca6906e380dcb566
9.24
1个文件已添加
21个文件已修改
14915 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserIntegralChange.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/IntegrationFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/IntegrationClient.java 14707 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ExchangeBackDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/PointChangeDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -57,10 +57,7 @@
                return R.fail("修改用户失败:"+throwable.getMessage());
            }
            @Override
            public R change(PointChangeDto points) {
                return null;
            }
            @Override
            public R changeDown(PointChangeDto points) {
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java
@@ -57,8 +57,8 @@
    @PostMapping("/t-app-user/user/updateAppUser")
    R updateAppUser(@RequestBody TAppUser appUser);
    @PostMapping("/t-app-user/user/points/change")
    R change(@RequestBody PointChangeDto points);
//    @PostMapping("/t-app-user/user/points/change")
//    R change(@RequestBody PointChangeDto points);
    @PostMapping("/t-app-user/user/points/change/down")
    R changeDown(@RequestBody PointChangeDto points);
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserIntegralChange.java
@@ -39,6 +39,9 @@
    @TableField("code")
    private String code;
    @ApiModelProperty(value = "对应跳转订单号")
    @TableField("order_code")
    private String orderCode;
    @ApiModelProperty(value = "用户id")
    @TableField("app_user_id")
    private Long appUserId;
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/IntegrationFallbackFactory.java
@@ -122,6 +122,11 @@
            public R<String> platformRemoteUpdate(PlatformRemoteUpdate platformRemoteUpdate) {
                return R.fail("远程更新调用失败:" + throwable.getMessage());
            }
            @Override
            public R<String> setupBillingModel1(String deviceId) {
                return R.fail("远程更新硬件:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/feignClient/IntegrationClient.java
Diff too large
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ExchangeBackDto;
import com.ruoyi.common.core.dto.ExchangeDto;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.order.api.model.ChargingListQuery;
@@ -49,7 +50,7 @@
            }
            @Override
            public R<Long> exchangeCreate(ExchangeDto exchangeDto) {
            public R<ExchangeBackDto> exchangeCreate(ExchangeDto exchangeDto) {
                return R.fail("创建订单" + cause.getMessage());
            }
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ExchangeBackDto;
import com.ruoyi.common.core.dto.ExchangeDto;
import com.ruoyi.order.api.factory.OrderFallbackFactory;
import com.ruoyi.order.api.model.ChargingListQuery;
@@ -38,7 +39,7 @@
    public R<Long> getExchangeById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId,@RequestParam("goodType") Integer goodType);
    @PostMapping("/t-exchange-order/create")
    public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto);
    public R<ExchangeBackDto> exchangeCreate(@RequestBody ExchangeDto exchangeDto);
    @PostMapping("/t-vip-order//addVipOrder")
    public R<Long> addVipOrder(@RequestBody TVipOrder vipOrder);
    @PostMapping("/t-shopping-order/create")
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/ExchangeBackDto.java
New file
@@ -0,0 +1,9 @@
package com.ruoyi.common.core.dto;
import lombok.Data;
@Data
public class ExchangeBackDto {
    private Long id;
    private String code;
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/dto/PointChangeDto.java
@@ -8,4 +8,5 @@
    private Integer points;
    private String remark;
    private Integer type;
    private String code;
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -198,6 +198,10 @@
    @DeleteMapping(value = "/unit/delete")
    @Log(title = "【单位管理】删除单位", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public R add(@RequestParam String ids) {
        List<TAppUser> list = appUserService.lambdaQuery().in(TAppUser::getCompanyId, Arrays.asList(ids.split(","))).list();
        if (!list.isEmpty()){
            return R.fail("当前单位已存在用户,无法删除!");
        }
        String[] split = ids.split(",");
        for (String s : split) {
            otherClient.unitDelete(Integer.valueOf(s));
@@ -277,6 +281,14 @@
        if (userListQueryDto.getUserTagId() != null){
            userIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, userListQueryDto.getUserTagId()).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList());
        }
        LocalDateTime end1 = null;
        LocalDateTime end2 = null ;
        if (userListQueryDto.getVipEndTime1()!=null) {
            end1 =    LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime1());
        }
        if (userListQueryDto.getVipEndTime2()!=null){
            end2 = LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime2());
        }
        //列表查询
        Page<TAppUser> page = appUserService.lambdaQuery()
                .ge(TAppUser::getVipEndTime, LocalDateTime.now())
@@ -285,8 +297,8 @@
                .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode())
                .eq(userListQueryDto.getStatus() != null, TAppUser::getStatus, userListQueryDto.getStatus())
                .eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId())
                .ge(userListQueryDto.getVipEndTime1() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime1() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime1()))
                .le(userListQueryDto.getVipEndTime2() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime2() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime2()))
                .ge(userListQueryDto.getVipEndTime1() != null, TAppUser::getVipEndTime, end1 )
                .le(userListQueryDto.getVipEndTime2() != null, TAppUser::getVipEndTime, end2)
                .in(!userIds.isEmpty(), TAppUser::getId, userIds)
                .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize()));
        if (page.getRecords().isEmpty()){
@@ -406,6 +418,11 @@
                }
            }
        }else {
           List<TAppUser> list = appUserService.lambdaQuery().eq(TAppUser::getPhone, tAppUser.getPhone()).list();
           if (!list.isEmpty()){
               return R.fail("该手机号已注册");
           }
        }
        appUserService.saveOrUpdate(tAppUser);
        return R.ok();
@@ -415,12 +432,16 @@
    @GetMapping(value = "/user/detail/{id}")
    public R<UserDetailDto> userDetail(@PathVariable Long id) {
        TAppUser user = appUserService.getById(id);
        UserDetailDto userDetailDto =  new UserDetailDto();
        BeanUtils.copyProperties(user,userDetailDto);
        if (user.getVipId()!=null) {
            R<Map<Integer, String>> vipMap = otherClient.getVipMap(Arrays.asList(user.getVipId()));
        R<Map<Integer, String>> vipMap = otherClient.getVipMap(Collections.singletonList(user.getVipId()));
        if (user.getVipEndTime()!=null&&user.getVipEndTime().isAfter(LocalDateTime.now())) {
            //匹配vipMap的值
            user.setVipName(vipMap.getData().get(user.getVipId()));
        }
        UserDetailDto userDetailDto =  new UserDetailDto();
        BeanUtils.copyProperties(user,userDetailDto);
        //获取累计充电数量
        R<Long> useOrderCount = chargingOrderClient.useOrderCount(user.getId());
        userDetailDto.setOrderCount(useOrderCount.getData());
@@ -436,6 +457,9 @@
        userDetailDto.setTagName(tagMap.getData().values()
                .stream()
                .collect(Collectors.joining(",")));
        return R.ok(userDetailDto);
    }
@@ -551,7 +575,7 @@
        Long count = signService.lambdaQuery().eq(TAppUserSign::getAppUserId,userId).eq(TAppUserSign::getSignDay, LocalDate.now()).count();
        appUserInfoDto.setIsSign(count>0?1:0);
        //获取当前拥有的优惠卷数量
        Long coupons = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).eq(TAppCoupon::getStatus, 1).count();
        Long coupons = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).ge(TAppCoupon::getEndTime, LocalDateTime.now()).eq(TAppCoupon::getStatus, 1).count();
        appUserInfoDto.setCouponNum(Math.toIntExact(coupons));
        //当前绑定的车辆
        List<TAppUserCar> list = carService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).list();
@@ -834,7 +858,7 @@
                signService.updateById(appUserSign);
            }
        }
        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points,1,userId,"每日签到","JF");
        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points,1,userId,"每日签到","JF","");
        byId.setPoints(byId.getPoints()+points);
        appUserService.updateById(byId);
        return R.ok();
@@ -873,19 +897,19 @@
    //积分变化记录用
    @PostMapping(value = "/user/points/change")
    public R change(@RequestBody PointChangeDto points) {
        TAppUser byId = appUserService.getById(points.getUserId());
        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF");
        byId.setPoints(byId.getPoints()+points.getPoints());
        appUserService.updateById(byId);
        return R.ok();
    }
//    @PostMapping(value = "/user/points/change")
//    public R change(@RequestBody PointChangeDto points) {
//        TAppUser byId = appUserService.getById(points.getUserId());
//        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF");
//        byId.setPoints(byId.getPoints()+points.getPoints());
//        appUserService.updateById(byId);
//        return R.ok();
//    }
    @PostMapping(value = "/user/points/change/down")
    public R changeDown(@RequestBody PointChangeDto points) {
        TAppUser byId = appUserService.getById(points.getUserId());
        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()-points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF");
        pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()-points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF",points.getCode());
        byId.setPoints(byId.getPoints()-points.getPoints());
        appUserService.updateById(byId);
        return R.ok();
@@ -949,7 +973,7 @@
                }
            //增加积分记录
            pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),"");
            pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),"","");
            byId.setPoints(byId.getPoints()+point);
            byId.setFirstAdd(1);
            appUserService.updateById(byId);
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserVipDetailController.java
@@ -48,7 +48,7 @@
    @ApiOperation(value = "生效会员列表", tags = {"小程序-个人中心"})
    public R<List<TAppUserVipDetail>> getVipUseDetail(){
        Long userId = tokenService.getLoginUserApplet().getUserId();
        List<TAppUserVipDetail> list = appUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, userId).last(" and now() between start_time and end_time order by start_time desc").list();
        List<TAppUserVipDetail> list = appUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, userId).last(" and now() between start_time and end_time order by start_time asc").list();
        for (TAppUserVipDetail tAppUserVipDetail : list) {
            if(null != tAppUserVipDetail.getVipId()){
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java
@@ -12,6 +12,7 @@
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@@ -61,7 +62,7 @@
    @Scheduled(fixedRate = 1000 * 60)
    public void changeVipId(){
        LocalDate currentDate = LocalDate.now();
        LocalDateTime currentDate = LocalDateTime.now();
        List<TAppUserVipDetail> recentDetails = tAppUserVipDetailService.lambdaQuery()
                .le(TAppUserVipDetail::getStartTime, currentDate)
                .ge(TAppUserVipDetail::getEndTime, currentDate)
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java
@@ -12,7 +12,7 @@
public class PointDetailUtil {
    @Resource
    private TAppUserIntegralChangeService appUserIntegralChangeService;
    public void addDetail(Integer old,Integer now,Integer type,Long userId,String extension,String code){
    public void addDetail(Integer old,Integer now,Integer type,Long userId,String extension,String code,String orderCode){
        TAppUserIntegralChange tAppUserIntegralChange= new TAppUserIntegralChange();
        tAppUserIntegralChange.setCode(OrderCodeUtil.getOrderCode(code));
@@ -22,6 +22,7 @@
        tAppUserIntegralChange.setCurrentIntegral(now);
        tAppUserIntegralChange.setCreateTime(LocalDateTime.now());
        tAppUserIntegralChange.setExtension(extension);
        tAppUserIntegralChange.setOrderCode(orderCode);
        appUserIntegralChangeService.save(tAppUserIntegralChange);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -7,6 +7,7 @@
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.chargingPile.api.dto.TAccountingStrategyDTO;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
import com.ruoyi.chargingPile.api.query.TAccountingStrategyQuery;
import com.ruoyi.chargingPile.api.vo.TAccountingStrategyDetailVO;
import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
@@ -25,6 +26,7 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.swagger.annotations.Api;
@@ -303,6 +305,8 @@
        return AjaxResult.ok(accountingStrategyService.pageList(query));
    }
    @Resource
    private IntegrationClient integrationClient;
    @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核")
    @PostMapping(value = "/auth/pass")
@@ -339,6 +343,10 @@
                }
                //硬件
                 List<TChargingPile> list = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, byId.getSiteId()).list();
                for (TChargingPile tChargingPile : list) {
                    integrationClient.setupBillingModel1(tChargingPile.getCode());
                }
            }
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java
@@ -351,6 +351,8 @@
        return R.ok(message);
    }
    @ApiOperation(value = "远程重启",tags = {"硬件接口"})
    @PostMapping(value = "/platformRestart")
    public R platformRestart(String deviceId) {
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -584,7 +584,7 @@
    }
    @ResponseBody
    @GetMapping(value = "/work/shop")
    @PostMapping(value = "/work/shop")
    @ApiOperation(value = "购物收入", tags = {"后台-工作台"})
    public R workShop(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
        //count近6个月的数据
@@ -971,19 +971,50 @@
            siteIds.add(statisticsQueryDto.getSiteId());
        }
        if (statisticsQueryDto.getDayType()==1) {
          List<Map<String,Object>> charMap = chargingOrderService.getHourType(siteIds,statisticsQueryDto);
          List<Map<String,Object>> charMap1 = chargingOrderService.getHourType(siteIds,statisticsQueryDto);
            List<Map<String, Object>> charMap = new ArrayList<>();
            // 生成从 "00:00" 到 "23:00" 的时间数据
            for (int hour = 0; hour < 24; hour++) {
                String time = String.format("%02d:00", hour);
                 Map<String, Object> mapWithTimeValue = findMapWithTimeValue(charMap1, time);
                if (mapWithTimeValue!=null){
                    charMap.add(mapWithTimeValue);
                }else {
                    Map<String, Object> timeMap = new HashMap<>();
                    timeMap.put("time", time); // 初始化值为 null
                    timeMap.put("electrovalence", 0);
                    timeMap.put("orderCount", 0);
                    timeMap.put("servicecharge", 0);
                    timeMap.put("electricity", 0);
                    charMap.add(timeMap);
                }
            }
          return R.ok(charMap);
        }else if (statisticsQueryDto.getDayType()==2){
            List<Map<String,Object>> charMap =  chargingOrderService.getDateType(siteIds,statisticsQueryDto);
            return R.ok(charMap);
        }else if (statisticsQueryDto.getDayType()==3){
            List<Map<String,Object>> charMap =  chargingOrderService.getMonthType(siteIds,statisticsQueryDto);
        }
            return R.ok(charMap);
        }
        return R.ok();
    }
    private static Map<String, Object> findMapWithTimeValue(List<Map<String, Object>> charMap1,String timeValue) {
        for (Map<String, Object> map : charMap1) {
            if (map.containsKey("time") && map.get("time").equals(timeValue)) {
                return map;
            }
        }
        return null; // 如果没有找到,返回 null
    }
    @ResponseBody
    @PostMapping(value = "/work/use")
@@ -1019,9 +1050,9 @@
    @Resource
    private TOrderInvoiceService invoiceService;
    @ResponseBody
    @PostMapping(value = "/work/shopOrder")
    @GetMapping(value = "/work/shopOrder")
    @ApiOperation(value = "购物订单统计", tags = {"管理后台-工作台"})
    public R shopOrder(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
    public R shopOrder() {
        Long count = shoppingOrderService.lambdaQuery().eq(TShoppingOrder::getStatus, 1).count();
        Long count1 = shoppingOrderService.lambdaQuery().eq(TShoppingOrder::getStatus, 2).count();
        List<Long> counts = new ArrayList<>();
@@ -1031,9 +1062,9 @@
    }
    @ResponseBody
    @PostMapping(value = "/work/invoice")
    @GetMapping(value = "/work/invoice")
    @ApiOperation(value = "开票统计", tags = {"管理后台-工作台"})
    public R invoice(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
    public R invoice() {
        Long count = invoiceService.lambdaQuery().eq(TOrderInvoice::getStatus, 1).count();
        Long count1 = invoiceService.lambdaQuery().eq(TOrderInvoice::getStatus, 3).count();
        List<Long> counts = new ArrayList<>();
@@ -1043,9 +1074,9 @@
    }
    @ResponseBody
    @PostMapping(value = "/work/users/count")
    @GetMapping(value = "/work/users/count")
    @ApiOperation(value = "用户数量", tags = {"管理后台-工作台"})
    public R usersCount(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
    public R usersCount() {
       List<Map<String,Object>>  userMap  =    chargingOrderService.countAllUserData();
            return R.ok(userMap);
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -9,6 +9,7 @@
import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.ExchangeBackDto;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
@@ -265,7 +266,7 @@
    }
    @PostMapping("/create")
    public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto){
    public R<ExchangeBackDto> exchangeCreate(@RequestBody ExchangeDto exchangeDto){
        TExchangeOrder tExchangeOrder = new TExchangeOrder();
        tExchangeOrder.setCode(OrderCodeUtil.getOrderCode("DH"));
        tExchangeOrder.setAppUserId(exchangeDto.getUserId());
@@ -287,7 +288,10 @@
        tExchangeOrder.setCreateTime(LocalDateTime.now());
        tExchangeOrder.setDelFlag(false);
        exchangeOrderService.save(tExchangeOrder);
        return R.ok(tExchangeOrder.getId());
        ExchangeBackDto exchangeBackDto = new ExchangeBackDto();
        exchangeBackDto.setId(tExchangeOrder.getId());
        exchangeBackDto.setCode(tExchangeOrder.getCode());
        return R.ok(exchangeBackDto);
    }
    
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -1285,9 +1285,10 @@
        <if test="statisticsQueryDto.type == 2">
            end_time
        </if>
        , '%Y-%m-%d %H' ) as time,
        , '%H:00' ) as time,
    SUM(service_charge) as servicecharge,
    SUM(electrovalence) as electrovalence,
    SUM(electricity) as electricity,
    count(1) as orderCount
        FROM
            t_charging_order
@@ -1323,7 +1324,8 @@
        , '%Y-%m-%d' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(electrovalence) as electrovalence,
        count(1) as orderCount
        count(1) as orderCount,
        SUM(electricity) as electricity,
        FROM
        t_charging_order
@@ -1358,7 +1360,8 @@
        , '%Y-%m' ) as time,
        SUM(service_charge) as servicecharge,
        SUM(electrovalence) as electrovalence,
        count(1) as orderCount
        count(1) as orderCount,
        SUM(electricity) as electricity,
        FROM
        t_charging_order
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -305,17 +305,16 @@
        payment_amount
        FROM
        t_shopping_order
        <where>
            WHERE del_flag = 0 and payment_status = 2 and ISNULL(refund_status) and status!=4
            WHERE del_flag = 0 and payment_status = 2 and ISNULL(refund_status) and status!=4 and
                DATE_FORMAT(create_time, '%Y-%m-%d') between #{statisticsQueryDto.startTime} and #{statisticsQueryDto.endTime}
        </where>
        ) AS subquery
        GROUP BY
        DATE_FORMAT( subquery.create_time, '%Y-%m-%d' );
        DATE_FORMAT( subquery.create_time, '%Y-%m-%d' )
    </select>
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCompanyController.java
@@ -31,7 +31,7 @@
    public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) {
        Page<TCompany> page = companyService.lambdaQuery()
                .orderByDesc(TCompany::getCreateTime)
                .like(unitListQueryDto.getCompanyName() != null && unitListQueryDto.getCompanyName().isEmpty(), TCompany::getName, unitListQueryDto.getCompanyName())
                .like(unitListQueryDto.getCompanyName() != null && unitListQueryDto.getCompanyName()!="", TCompany::getName, unitListQueryDto.getCompanyName())
                .page(Page.of(unitListQueryDto.getPageCurr(), unitListQueryDto.getPageSize()));
        return R.ok(page);
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -12,6 +12,7 @@
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.dto.AppGoodQuery;
import com.ruoyi.common.core.dto.ExchangeBackDto;
import com.ruoyi.common.core.dto.PointChangeDto;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BasePage;
@@ -184,8 +185,7 @@
        return R.ok();
    }
    @ApiOperation(tags = {"小程序-" +
            "兑换商城"},value = "积分兑换商品")
    @ApiOperation(tags = {"小程序-兑换商城"},value = "积分兑换商品")
    @PostMapping(value = "/app/shop")
    public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) {
        //检查当前用户积分是否够
@@ -201,6 +201,9 @@
            Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData();
            if (good.getLimitExchangeTimes() != -1 && count >= good.getLimitExchangeTimes()) {
                return AjaxResult.error("当前用户已兑换"+count+"张");
            }else {
                //减少库存
                good.setInventory(good.getInventory()-exchangeDto.getNum());
            }
        if (user.getPoints()<good.getRedeemPoints()){
            return AjaxResult.error("当前用户积分不足");
@@ -210,17 +213,21 @@
            point = coupon.getRedeemPoints();
            Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData();
            if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) {
                return AjaxResult.error("当前用户已到达兑换"+coupon+"次");
            }
            if (user.getPoints()<point){
                return AjaxResult.error("当前用户积分不足");
            }
            if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) {
                return AjaxResult.error("当前用户已到达兑换"+coupon+"次");
            }else {
                coupon.setInventoryQuantity(coupon.getInventoryQuantity()-exchangeDto.getNum());
            }
        }
        exchangeDto.setPoint(point);
        exchangeDto.setUserId(userId);
        //生成积分兑换成功的订单
        R<Long> longR = orderClient.exchangeCreate(exchangeDto);
        R<ExchangeBackDto> longR = orderClient.exchangeCreate(exchangeDto);
        if (exchangeDto.getGoodType()==2) {
            TCoupon coupon = couponService.getById(exchangeDto.getGoodId());
@@ -247,6 +254,7 @@
        pointChangeDto.setPoints(point);
        pointChangeDto.setRemark(longR.getData().toString());
        pointChangeDto.setType(6);
        pointChangeDto.setCode(longR.getData().getCode());
        appUserClient.changeDown(pointChangeDto);
        return AjaxResult.success();
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TVipController.java
@@ -214,6 +214,8 @@
    }
    @ApiOperation(value = "购买会员", tags = {"小程序-个人中心"})
    @GetMapping("/vipInfo/pay")
    public R vipInfoPay(@RequestParam("vipId")Integer vipId,@RequestParam("buyType") Integer buyType,