导出修改
This commit is contained in:
@ -83,4 +83,8 @@ public class OrderSpaceCapsulePageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "机器编号")
|
||||
private String machineNum;
|
||||
@Schema(description = "用户手机号")
|
||||
private String phone;
|
||||
@Schema(description = "太空舱名称")
|
||||
private String spaceName;
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.member.convert.excel.OrderSpaceCapsuleStatusConverter;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
@ -25,18 +26,16 @@ public class OrderSpaceCapsuleRespVO {
|
||||
private BigDecimal money;
|
||||
|
||||
@Schema(description = "太空船id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22979")
|
||||
@ExcelProperty("太空船id")
|
||||
private Long spaceCapsuleId;
|
||||
|
||||
@Schema(description = "门店id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5246")
|
||||
@ExcelProperty("门店id")
|
||||
private Long carteenId;
|
||||
@Schema(description = "门店名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "5246")
|
||||
@ExcelProperty("门店名称")
|
||||
private String carteenName;
|
||||
|
||||
@Schema(description = "0未使用1使用中2已完成3已退款", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("0未使用1使用中2已完成3已退款")
|
||||
@ExcelProperty(value = "状态",converter = OrderSpaceCapsuleStatusConverter.class )
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "套餐金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "32723")
|
||||
@ -64,19 +63,15 @@ public class OrderSpaceCapsuleRespVO {
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "产生订单的用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30766")
|
||||
@ExcelProperty("产生订单的用户id")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "消费前的余额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("消费前的余额")
|
||||
private BigDecimal startMoney;
|
||||
|
||||
@Schema(description = "消费后的余额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("消费后的余额")
|
||||
private BigDecimal endMoney;
|
||||
|
||||
@Schema(description = "支付方式", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("支付方式")
|
||||
private String payMethods;
|
||||
/**
|
||||
* 套餐数量
|
||||
@ -96,7 +91,12 @@ public class OrderSpaceCapsuleRespVO {
|
||||
private String qrCode;
|
||||
@Schema(description = "支付编号")
|
||||
private Integer payNum;
|
||||
|
||||
@Schema(description = "机器编号")
|
||||
private String machineNum;
|
||||
@Schema(description = "用户手机号")
|
||||
@ExcelProperty("用户手机号")
|
||||
private String phone;
|
||||
@Schema(description = "太空舱名称")
|
||||
@ExcelProperty("太空舱名称")
|
||||
private String spaceName;
|
||||
}
|
@ -78,4 +78,8 @@ public class OrderSpaceCapsuleSaveReqVO {
|
||||
|
||||
@Schema(description = "机器编号")
|
||||
private String machineNum;
|
||||
@Schema(description = "用户手机号")
|
||||
private String phone;
|
||||
@Schema(description = "太空舱名称")
|
||||
private String spaceName;
|
||||
}
|
@ -48,4 +48,8 @@ public class OrderSpaceCapsuleStatisticsVo {
|
||||
@Schema(description = "均单价")
|
||||
private BigDecimal compAvgOrderMoney;
|
||||
List<OrderSpaceCapsuleStatisticsComVo> lists;
|
||||
@Schema(description = "用户手机号")
|
||||
private String phone;
|
||||
@Schema(description = "太空舱名称")
|
||||
private String spaceName;
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder;
|
||||
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderRespVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.*;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||
import cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -39,7 +37,11 @@ public class StatisticsSpaceCapsuleOrderController {
|
||||
|
||||
@Resource
|
||||
private StatisticsSpaceCapsuleOrderService statisticsSpaceCapsuleOrderService;
|
||||
|
||||
@GetMapping("/space/money")
|
||||
@Operation(summary = "根据太空舱分组营业额")
|
||||
public CommonResult<List<SpaceCapsuleOrderNameRespVO>> getStatisticsSpaceCapsuleOrder(SpaceCapsuleOrderReqVO vo) {
|
||||
return success(statisticsSpaceCapsuleOrderService.getStatisticsSpaceCapsuleOrder(vo));
|
||||
}
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建太空舱订单营业额统计")
|
||||
@PreAuthorize("@ss.hasPermission('t:statistics-space-capsule-order:create')")
|
||||
|
@ -0,0 +1,14 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Schema(description = "管理后台 - 太空舱订单营业根据太空舱resp vo")
|
||||
@Data
|
||||
public class SpaceCapsuleOrderNameRespVO extends StatisticsSpaceCapsuleOrderRespVO {
|
||||
@Schema(description = "太空舱名称")
|
||||
private String spName;
|
||||
@Schema(description = "太空舱id")
|
||||
private Long spId;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Schema(description = "管理后台 - 太空舱订单营业额统 Request VO")
|
||||
@Data
|
||||
public class SpaceCapsuleOrderReqVO {
|
||||
@Schema(description = "太空舱id")
|
||||
private Long id;
|
||||
@Schema(description = "门店id")
|
||||
private Long carteenId;
|
||||
@Schema(description = "开始时间")
|
||||
@DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
|
||||
private Date startTime;
|
||||
@Schema(description = "结束时间")
|
||||
@DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
|
||||
private Date endTime;
|
||||
}
|
@ -31,7 +31,6 @@ public class StatisticsSpaceCapsuleOrderRespVO {
|
||||
private BigDecimal totalMinute;
|
||||
|
||||
@Schema(description = "门店id", example = "22393")
|
||||
@ExcelProperty("门店id")
|
||||
private Long carteenId;
|
||||
|
||||
@Schema(description = "总退款金额", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
@ -0,0 +1,65 @@
|
||||
package cn.iocoder.yudao.module.member.convert.excel;
|
||||
|
||||
import cn.iocoder.yudao.module.member.enums.SpaceCapsuleOrderEnum;
|
||||
import com.alibaba.excel.converters.Converter;
|
||||
import com.alibaba.excel.converters.ReadConverterContext;
|
||||
import com.alibaba.excel.converters.WriteConverterContext;
|
||||
import com.alibaba.excel.enums.CellDataTypeEnum;
|
||||
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author zt
|
||||
* @description <description class purpose>
|
||||
* @since 2024/7/17
|
||||
*/
|
||||
@Component
|
||||
public class OrderSpaceCapsuleStatusConverter implements Converter<Integer> {
|
||||
|
||||
@Override
|
||||
public Class<?> supportJavaTypeKey() {
|
||||
return Integer.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CellDataTypeEnum supportExcelTypeKey() {
|
||||
return CellDataTypeEnum.NUMBER;
|
||||
}
|
||||
|
||||
/**
|
||||
* 这里读的时候会调用
|
||||
*
|
||||
* @param context
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Integer convertToJavaData(ReadConverterContext<?> context) throws Exception {
|
||||
return Converter.super.convertToJavaData(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* 这里是写的时候会调用 不用管
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public WriteCellData<String> convertToExcelData(WriteConverterContext<Integer> context) {
|
||||
Integer value = context.getValue();
|
||||
String s1=null;
|
||||
if (SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_UNUSED.getCode().equals(value)) {
|
||||
s1 = SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_UNUSED.getName();
|
||||
} else if (SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode().equals(value)) {
|
||||
s1 = SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getName();
|
||||
}else if (SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_IN_USE.getCode().equals(value)) {
|
||||
s1 = SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_IN_USE.getName();
|
||||
}
|
||||
else if (SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_REFUNDED.getCode().equals(value)) {
|
||||
s1 = SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_REFUNDED.getName();
|
||||
}
|
||||
else if (SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_APPOINTMENT.getCode().equals(value)) {
|
||||
s1 = SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_APPOINTMENT.getName();
|
||||
}
|
||||
return new WriteCellData<>(s1);
|
||||
}
|
||||
|
||||
}
|
@ -102,4 +102,6 @@ public class OrderSpaceCapsuleDO extends BaseDO {
|
||||
private String qrCode;
|
||||
private Integer payNum;
|
||||
private String machineNum;
|
||||
private String phone;
|
||||
private String spaceName;
|
||||
}
|
@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsulePageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@ -41,5 +42,6 @@ public interface OrderSpaceCapsuleMapper extends BaseMapperX<OrderSpaceCapsuleDO
|
||||
.orderByDesc(OrderSpaceCapsuleDO::getId));
|
||||
}
|
||||
OrderSpaceCapsuleStatisticsVo compDay(@Param("status")Integer status,@Param("start") Date start,@Param("end") Date end,@Param("carteenId")Long carteenId);
|
||||
SpaceCapsuleOrderNameRespVO compDay1(@Param("status")Integer status, @Param("start") Date start, @Param("end") Date end,@Param("spId")Long spId);
|
||||
OrderSpaceCapsuleStatisticsComVo compMoney(@Param("start") Date start, @Param("end") Date end);
|
||||
}
|
@ -83,6 +83,7 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
|
||||
BigDecimal initialMoney = user.getMoney();
|
||||
// 设置变动前的余额
|
||||
orderSpaceCapsule.setStartMoney(initialMoney);
|
||||
orderSpaceCapsule.setPhone(user.getMobile());
|
||||
//获取订单总金额
|
||||
BigDecimal multiply = orderSpaceCapsule.getComboPrice().multiply(BigDecimal.valueOf(orderSpaceCapsule.getComboNum()));
|
||||
orderSpaceCapsule.setMoney(multiply);
|
||||
@ -138,6 +139,7 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
|
||||
throw exception(ORDER_SPACE_CAPSULE_EXIST);
|
||||
}
|
||||
updateObj.setSpaceCapsuleId(spaceCapsule.getId());
|
||||
updateObj.setSpaceName(spaceCapsule.getSpaceName());
|
||||
updateObj.setOrderStartTime(LocalDateTime.now());
|
||||
updateSpaceCapsuleStatus(spaceCapsule, SpaceCapsuleEnum.SPACE_CAPSULE_ENUM_IN_USE.getCode());
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||
@ -55,4 +57,5 @@ public interface StatisticsSpaceCapsuleOrderService {
|
||||
PageResult<StatisticsSpaceCapsuleOrderDO> getStatisticsSpaceCapsuleOrderPage(StatisticsSpaceCapsuleOrderPageReqVO pageReqVO);
|
||||
List<StatisticsSpaceCapsuleOrderDO> statistics(Date startTime,Date endTime);
|
||||
OrderSpaceCapsuleStatisticsVo compDayMon(Long carteenId,String type,Date time);
|
||||
List<SpaceCapsuleOrderNameRespVO> getStatisticsSpaceCapsuleOrder(SpaceCapsuleOrderReqVO vo);
|
||||
}
|
@ -2,12 +2,17 @@ package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
||||
|
||||
import cn.hutool.core.date.*;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.spacecapsule.SpaceCapsuleDO;
|
||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.spacecapsule.SpaceCapsuleMapper;
|
||||
import cn.iocoder.yudao.module.member.dal.mysql.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderMapper;
|
||||
import cn.iocoder.yudao.module.member.enums.SpaceCapsuleOrderEnum;
|
||||
import cn.iocoder.yudao.module.member.service.orderspacecapsule.OrderSpaceCapsuleServiceImpl;
|
||||
@ -18,7 +23,6 @@ import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_REFUND_NOT_STATISTICS_EXISTS;
|
||||
@ -36,6 +40,8 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
||||
@Resource
|
||||
private OrderSpaceCapsuleMapper orderSpaceCapsuleMapper;
|
||||
@Resource
|
||||
private SpaceCapsuleMapper spaceCapsuleMapper;
|
||||
@Resource
|
||||
private StatisticsSpaceCapsuleOrderMapper statisticsSpaceCapsuleOrderMapper;
|
||||
@Resource
|
||||
private OrderSpaceCapsuleServiceImpl orderSpaceCapsuleService;
|
||||
@ -102,6 +108,27 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SpaceCapsuleOrderNameRespVO> getStatisticsSpaceCapsuleOrder(SpaceCapsuleOrderReqVO vo) {
|
||||
List<SpaceCapsuleOrderNameRespVO> list=new ArrayList<>();
|
||||
if(vo.getId()==null){
|
||||
Long carteenId = vo.getCarteenId();
|
||||
Date endTime = vo.getEndTime();
|
||||
Date startTime = vo.getStartTime();
|
||||
List<SpaceCapsuleDO> spaceCapsuleDOS = spaceCapsuleMapper.selectList(new LambdaQueryWrapperX<SpaceCapsuleDO>().eq(SpaceCapsuleDO::getCarteenId, carteenId));
|
||||
for (SpaceCapsuleDO aDo : spaceCapsuleDOS) {
|
||||
SpaceCapsuleOrderNameRespVO vo1 = getStatisticsSpaceCapsuleOrder1(aDo.getId(), endTime, startTime);
|
||||
list.add(vo1);
|
||||
}
|
||||
}else{
|
||||
list.add(getStatisticsSpaceCapsuleOrder1(vo.getId(),vo.getStartTime(),vo.getEndTime()));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public SpaceCapsuleOrderNameRespVO getStatisticsSpaceCapsuleOrder1(Long id,Date start,Date end){
|
||||
return orderSpaceCapsuleMapper.compDay1(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(),start,end,id);
|
||||
}
|
||||
/**
|
||||
* 日报
|
||||
* @param carteenId
|
||||
|
@ -40,4 +40,28 @@
|
||||
where create_time between #{start} and #{end}
|
||||
|
||||
</select>
|
||||
|
||||
<select id="compDay1"
|
||||
resultType="cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO">
|
||||
SELECT
|
||||
IFNULL(SUM(a.money), 0) AS totalMoney,
|
||||
IFNULL(COUNT(a.id), 0) AS totalOrder,
|
||||
IFNULL(SUM(a.combo_num * a.combo_minutes), 0) AS totalMinute,
|
||||
IFNULL(SUM(a.refund_money), 0) AS refundMoney,
|
||||
IFNULL(SUM(a.combo_num), 0) AS totalPackageSum,
|
||||
IFNULL(a.carteen_id, 0) AS carteenId,
|
||||
IFNULL(a.carteen_name, 'Unknown') AS carteenName,
|
||||
IFNULL(COUNT(DISTINCT a.user_id), 0) AS totalCustomer,
|
||||
IFNULL(ROUND(SUM(a.money) / NULLIF(COUNT(a.id), 0)), 0) AS avgOrderMoney,
|
||||
a.space_capsule_id AS spId,
|
||||
b.space_name AS spName
|
||||
FROM
|
||||
t_order_space_capsule AS a
|
||||
LEFT JOIN t_space_capsule AS b ON a.space_capsule_id = b.id
|
||||
WHERE
|
||||
a.`status` = = #{status}
|
||||
AND DATE(a.create_time) BETWEEN #{start} AND #{end} and a.space_capsule_id=#{spId}
|
||||
GROUP BY
|
||||
a.carteen_id, a.carteen_name, a.space_capsule_id, b.space_name;
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user