From 0f7906605c19c8f59a60243084568a79eff24dc2 Mon Sep 17 00:00:00 2001 From: yuyang Date: Wed, 23 Mar 2022 13:27:58 +0800 Subject: [PATCH] =?UTF-8?q?C=E7=AB=AF=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=B4=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/XhpcHistoryOrderServiceImpl.java | 5 +- .../user/controller/XhpcUserController.java | 31 +++++++- .../com/xhpc/user/mapper/XhpcUserMapper.java | 6 ++ .../xhpc/user/service/IXhpcUserService.java | 5 ++ .../service/impl/XhpcUserServiceImpl.java | 16 +++++ .../main/resources/mapper/XhpcUserMapper.xml | 71 +++++++++++++++++++ 6 files changed, 131 insertions(+), 3 deletions(-) diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java index c75ff03d..486a2492 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcHistoryOrderServiceImpl.java @@ -174,7 +174,10 @@ public class XhpcHistoryOrderServiceImpl extends BaseService implements IXhpcHis DateTime parse1 = DateUtil.parse(DateUtil.format(endTime, "yyyy-MM-dd"), "yyyy-MM-dd"); //每分钟多少度电 BigDecimal decimal = new BigDecimal((endTime.getTime() - startTime.getTime())).divide(new BigDecimal(60000),4,BigDecimal.ROUND_HALF_UP); - BigDecimal divide = chargingDegree.divide(decimal,4,BigDecimal.ROUND_HALF_UP); + BigDecimal divide =new BigDecimal(0); + if(decimal.compareTo(new BigDecimal(0))==1){ + divide=chargingDegree.divide(decimal,4,BigDecimal.ROUND_HALF_UP); + } long betweenDay = DateUtil.between(parse,parse1, DateUnit.DAY); if(betweenDay==0){ powerPriceTotal = getBigDecimal(rateModelId,DateUtil.formatTime(startTime), DateUtil.formatTime(endTime), powerPriceTotal, divide); diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java index 7bfc97e7..cbd9a6ae 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java @@ -9,7 +9,6 @@ import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.log.annotation.Log; import com.xhpc.common.log.enums.BusinessType; -import com.xhpc.common.security.annotation.PreAuthorize; import com.xhpc.common.security.service.TokenService; import com.xhpc.system.api.domain.SysRole; import com.xhpc.system.api.domain.SysUser; @@ -22,7 +21,7 @@ import org.apache.shiro.authz.annotation.RequiresRoles; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -244,6 +243,34 @@ public class XhpcUserController extends BaseController { return AjaxResult.success(); } + /** + * C端用户数据维度 + * @param activity 活跃度 + * @param frequency 充电次数 + * @param amount 充电金额 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param phone 手机号 + * @return + */ + @GetMapping("/getUserDimension") + public TableDataInfo getUserDimension(Integer activity, Integer frequency, BigDecimal amount, String startTime, String endTime,String phone){ + List> userDimension = iXhpcUserService.getUserDimension(activity, frequency, amount, startTime, endTime,phone); + return getDataTable(userDimension); + } + + + + + + + + + + + + + private void addXhpcDataDimension(Long[] menuIds,Long userId){ if(menuIds !=null){ //添加数据维度 diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcUserMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcUserMapper.java index 81b7792d..4885945f 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcUserMapper.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcUserMapper.java @@ -5,6 +5,7 @@ import com.xhpc.system.api.domain.SysUser; import com.xhpc.user.domain.SysUserRole; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -144,4 +145,9 @@ public interface XhpcUserMapper { * @param userId */ public void updateXhpcDataDimension(@Param("userId")Long userId); + + + public int getOrderTimeNumber(@Param("userId")String userId,@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("tenantId")String tenantId); + + List> getUserDimension(@Param("number")Integer number,@Param("userId")String userId,@Param("startTime")String startTime,@Param("endTime")String endTime,@Param("tenantId")String tenantId,@Param("activity")Integer activity,@Param("frequency")Integer frequency,@Param("amount") BigDecimal amount,@Param("phone")String phone); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcUserService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcUserService.java index e5328c98..6cf3edfe 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcUserService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcUserService.java @@ -1,8 +1,10 @@ package com.xhpc.user.service; +import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.system.api.domain.SysRole; import com.xhpc.system.api.domain.SysUser; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -128,4 +130,7 @@ public interface IXhpcUserService { * @param userId */ public void updateXhpcDataDimension(Long userId); + + + List> getUserDimension(Integer activity, Integer frequency, BigDecimal amount, String startTime, String endTime,String phone); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java index dadcc90a..982af13b 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java @@ -4,6 +4,7 @@ import com.xhpc.common.core.constant.StatusConstants; import com.xhpc.common.core.constant.UserConstants; import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.utils.StringUtils; +import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.service.BaseService; import com.xhpc.common.security.service.TokenService; import com.xhpc.system.api.domain.SysRole; @@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -222,5 +224,19 @@ public class XhpcUserServiceImpl extends BaseService implements IXhpcUserService xhpcUserMapper.updateXhpcDataDimension(userId); } + @Override + public List> getUserDimension(Integer activity, Integer frequency, BigDecimal amount, String startTime, String endTime,String phone) { + + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + + //时间范围内的所有订单总数 + int orderTimeNumber = xhpcUserMapper.getOrderTimeNumber(null, startTime, endTime, tenantId); + startPage(); + List> userDimension = xhpcUserMapper.getUserDimension(orderTimeNumber, null, startTime, endTime, tenantId,activity,frequency,amount,phone); + + return userDimension; + } + } diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcUserMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcUserMapper.xml index e3813ea1..1c6e96c8 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcUserMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcUserMapper.xml @@ -304,4 +304,75 @@ update xhpc_data_dimension set del_flag = 1 where user_id = #{userId} + + + + + +