优化第一版
This commit is contained in:
		@ -14,7 +14,6 @@ import cn.iocoder.yudao.module.member.service.admincard.AdminCardService;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Parameter;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
import org.springframework.security.access.prepost.PreAuthorize;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
import org.springframework.web.bind.annotation.DeleteMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.GetMapping;
 | 
			
		||||
@ -95,14 +94,14 @@ public class AdminCardController {
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/export-excel")
 | 
			
		||||
    @Operation(summary = "导出管理员卡 Excel")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('member:admin-card:export')")
 | 
			
		||||
    //@PreAuthorize("@ss.hasPermission('member:admin-card:export')")
 | 
			
		||||
    @OperateLog(type = EXPORT)
 | 
			
		||||
    public void exportAdminCardExcel(@Valid AdminCardPageReqVO pageReqVO,
 | 
			
		||||
              HttpServletResponse response) throws IOException {
 | 
			
		||||
        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
 | 
			
		||||
        List<AdminCardDO> list = adminCardService.getAdminCardPage(pageReqVO).getList();
 | 
			
		||||
        // 导出 Excel
 | 
			
		||||
        ExcelUtils.write(response, "管理员卡.xls", "数据", AdminCardRespVO.class,
 | 
			
		||||
        ExcelUtils.write(response, "饭卡管理.xls", "数据", AdminCardRespVO.class,
 | 
			
		||||
                        BeanUtils.toBean(list, AdminCardRespVO.class));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 | 
			
		||||
@ToString(callSuper = true)
 | 
			
		||||
public class AdminCardPageReqVO extends PageParam {
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "手机号")
 | 
			
		||||
    @Schema(description = "卡号")
 | 
			
		||||
    private String cardNo;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "类型")
 | 
			
		||||
 | 
			
		||||
@ -16,8 +16,8 @@ public class AdminCardRespVO {
 | 
			
		||||
    @ExcelProperty("编号")
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "手机号")
 | 
			
		||||
    @ExcelProperty("手机号")
 | 
			
		||||
    @Schema(description = "卡号")
 | 
			
		||||
    @ExcelProperty("卡号")
 | 
			
		||||
    private String cardNo;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "类型")
 | 
			
		||||
 | 
			
		||||
@ -1,33 +1,32 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.business;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessRespVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessSaveReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.business.BusinessDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.service.business.BusinessService;
 | 
			
		||||
import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
import org.springframework.security.access.prepost.PreAuthorize;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Parameter;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import javax.validation.*;
 | 
			
		||||
import javax.servlet.http.*;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
 | 
			
		||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.business.vo.BusinessRespVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.business.BusinessDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.service.business.BusinessService;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Operation;
 | 
			
		||||
import io.swagger.v3.oas.annotations.Parameter;
 | 
			
		||||
import io.swagger.v3.oas.annotations.tags.Tag;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
import org.springframework.web.bind.annotation.GetMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RequestMapping;
 | 
			
		||||
import org.springframework.web.bind.annotation.RequestParam;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
			
		||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@Tag(name = "管理后台 - 营业统计")
 | 
			
		||||
@ -66,7 +65,7 @@ public class BusinessController {
 | 
			
		||||
    @GetMapping("/get")
 | 
			
		||||
    @Operation(summary = "获得营业统计")
 | 
			
		||||
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('t:business:query')")
 | 
			
		||||
    //@PreAuthorize("@ss.hasPermission('t:business:query')")
 | 
			
		||||
    public CommonResult<BusinessRespVO> getBusiness(@RequestParam("id") Long id) {
 | 
			
		||||
        BusinessDO business = businessService.getBusiness(id);
 | 
			
		||||
        return success(BeanUtils.toBean(business, BusinessRespVO.class));
 | 
			
		||||
@ -74,7 +73,7 @@ public class BusinessController {
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/page")
 | 
			
		||||
    @Operation(summary = "获得营业统计分页")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('t:business:query')")
 | 
			
		||||
    //@PreAuthorize("@ss.hasPermission('t:business:query')")
 | 
			
		||||
    public CommonResult<PageResult<BusinessRespVO>> getBusinessPage(@Valid BusinessPageReqVO pageReqVO) {
 | 
			
		||||
        PageResult<BusinessDO> pageResult = businessService.getBusinessPage(pageReqVO);
 | 
			
		||||
        return success(BeanUtils.toBean(pageResult, BusinessRespVO.class));
 | 
			
		||||
@ -82,7 +81,7 @@ public class BusinessController {
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/export-excel")
 | 
			
		||||
    @Operation(summary = "导出营业统计 Excel")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('t:business:export')")
 | 
			
		||||
    //@PreAuthorize("@ss.hasPermission('t:business:export')")
 | 
			
		||||
    @OperateLog(type = EXPORT)
 | 
			
		||||
    public void exportBusinessExcel(@Valid BusinessPageReqVO pageReqVO,
 | 
			
		||||
              HttpServletResponse response) throws IOException {
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,12 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.business.vo;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 | 
			
		||||
import com.alibaba.excel.annotation.ExcelProperty;
 | 
			
		||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
import lombok.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import org.springframework.format.annotation.DateTimeFormat;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import com.alibaba.excel.annotation.*;
 | 
			
		||||
 | 
			
		||||
@Schema(description = "管理后台 - 营业统计 Response VO")
 | 
			
		||||
@Data
 | 
			
		||||
@ -39,11 +38,11 @@ public class BusinessRespVO {
 | 
			
		||||
    private BigDecimal rechargePurse;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "补贴钱包")
 | 
			
		||||
    @ExcelProperty("补贴钱包")
 | 
			
		||||
    //@ExcelProperty("补贴钱包")
 | 
			
		||||
    private BigDecimal subsidyPurse;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "VIP免单")
 | 
			
		||||
    @ExcelProperty("VIP免单")
 | 
			
		||||
    //@ExcelProperty("VIP免单")
 | 
			
		||||
    private Integer gratis;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "早餐")
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,8 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.diningplates.vo;
 | 
			
		||||
 | 
			
		||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
import lombok.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import javax.validation.constraints.*;
 | 
			
		||||
import org.springframework.format.annotation.DateTimeFormat;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
 | 
			
		||||
@Schema(description = "管理后台 - 餐盘新增/修改 Request VO")
 | 
			
		||||
@ -26,4 +24,14 @@ public class DiningPlatesSaveReqVO {
 | 
			
		||||
    @Schema(description = "绑定时间")
 | 
			
		||||
    private LocalDateTime bindingTime;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 所属门店
 | 
			
		||||
     */
 | 
			
		||||
    private Long storeId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 所属门店
 | 
			
		||||
     */
 | 
			
		||||
    private String storeName;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.group.vo;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @author zt
 | 
			
		||||
 * @description <description class purpose>
 | 
			
		||||
 * @since 2024/7/17
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class MemberGroupUserVo {
 | 
			
		||||
    private String name;
 | 
			
		||||
    private Long memberId;
 | 
			
		||||
}
 | 
			
		||||
@ -1,7 +1,10 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.order;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsRespVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderMoneyRespVO;
 | 
			
		||||
@ -18,9 +21,13 @@ import org.springframework.web.bind.annotation.RequestParam;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
 | 
			
		||||
 | 
			
		||||
@Tag(name = "管理后台 - 会员订单")
 | 
			
		||||
@RestController
 | 
			
		||||
@RequestMapping("/member/order")
 | 
			
		||||
@ -73,18 +80,18 @@ public class OrderController {
 | 
			
		||||
    //    return success(BeanUtils.toBean(pageResult, OrderRespVO.class));
 | 
			
		||||
    //}
 | 
			
		||||
    //
 | 
			
		||||
    //@GetMapping("/export-excel")
 | 
			
		||||
    //@Operation(summary = "导出会员订单 Excel")
 | 
			
		||||
    //@PreAuthorize("@ss.hasPermission('member:order:export')")
 | 
			
		||||
    //@OperateLog(type = EXPORT)
 | 
			
		||||
    //public void exportOrderExcel(@Valid OrderPageReqVO pageReqVO,
 | 
			
		||||
    //          HttpServletResponse response) throws IOException {
 | 
			
		||||
    //    pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
 | 
			
		||||
    //    List<OrderDO> list = orderService.getOrderPage(pageReqVO).getList();
 | 
			
		||||
    //    // 导出 Excel
 | 
			
		||||
    //    ExcelUtils.write(response, "会员订单.xls", "数据", OrderRespVO.class,
 | 
			
		||||
    //                    BeanUtils.toBean(list, OrderRespVO.class));
 | 
			
		||||
    //}
 | 
			
		||||
    @GetMapping("/export-excel")
 | 
			
		||||
    @Operation(summary = "导出会员订单 Excel")
 | 
			
		||||
    @PreAuthorize("@ss.hasPermission('member:order:export')")
 | 
			
		||||
    @OperateLog(type = EXPORT)
 | 
			
		||||
    public void exportOrderExcel(@Valid OrderDetailsReqVO pageReqVO,
 | 
			
		||||
              HttpServletResponse response) throws IOException {
 | 
			
		||||
        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
 | 
			
		||||
        List<OrderDetailsRespVO> list = orderService.getPageOrderDetails(pageReqVO).getList();
 | 
			
		||||
        // 导出 Excel
 | 
			
		||||
        ExcelUtils.write(response, "会员订单.xls", "数据", OrderDetailsRespVO.class,
 | 
			
		||||
                list);
 | 
			
		||||
    }
 | 
			
		||||
    /*================后台管理-订单管理========================*/
 | 
			
		||||
    /**
 | 
			
		||||
     * @Description:
 | 
			
		||||
 | 
			
		||||
@ -47,4 +47,6 @@ public class OrderDetailsReqVO extends PageParam {
 | 
			
		||||
    private String timePeriod;
 | 
			
		||||
    @Schema(description = "会员id", example = "早餐")
 | 
			
		||||
    private Long userId;
 | 
			
		||||
    @Schema(description = "分组Id", example = "1")
 | 
			
		||||
    private Long groupId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.order.vo;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.module.member.convert.excel.OrderStatusConverter;
 | 
			
		||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 | 
			
		||||
import com.alibaba.excel.annotation.ExcelProperty;
 | 
			
		||||
import io.swagger.v3.oas.annotations.media.Schema;
 | 
			
		||||
@ -18,14 +19,15 @@ import java.time.LocalDateTime;
 | 
			
		||||
@ToString(callSuper = true)
 | 
			
		||||
@ExcelIgnoreUnannotated
 | 
			
		||||
public class OrderDetailsRespVO {
 | 
			
		||||
    @Schema(description = "门店名称", example = "真好")
 | 
			
		||||
    @ExcelProperty("门店名称")
 | 
			
		||||
    private String storeName;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "订单编号", example = "20240401090630943547146")
 | 
			
		||||
    @ExcelProperty("订单编号")
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "门店名称", example = "真好")
 | 
			
		||||
    @ExcelProperty("门店名称")
 | 
			
		||||
    private String storeName;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "门店Id", example = "127")
 | 
			
		||||
    private Long storeId;
 | 
			
		||||
 | 
			
		||||
@ -33,12 +35,15 @@ public class OrderDetailsRespVO {
 | 
			
		||||
    @ExcelProperty("用户名称")
 | 
			
		||||
    private String userName;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "用户账号", example = "15111956918")
 | 
			
		||||
    @ExcelProperty("用户账号")
 | 
			
		||||
    @Schema(description = "小组", example = "1024")
 | 
			
		||||
    @ExcelProperty("小组")
 | 
			
		||||
    private String groupName;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "用户手机", example = "15111956918")
 | 
			
		||||
    @ExcelProperty("用户手机")
 | 
			
		||||
    private String userAccount;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "工号", example = "15111956918")
 | 
			
		||||
    @ExcelProperty("工号")
 | 
			
		||||
    private String userJob;
 | 
			
		||||
    @Schema(description = "用户头像", example = "15111956918")
 | 
			
		||||
    private String avatar;
 | 
			
		||||
@ -52,7 +57,6 @@ public class OrderDetailsRespVO {
 | 
			
		||||
    private BigDecimal totalMoney;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "支付方式", example = "钱包")
 | 
			
		||||
    @ExcelProperty("钱包")
 | 
			
		||||
    private String  payMethods;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "时间段", example = "早餐")
 | 
			
		||||
@ -60,9 +64,11 @@ public class OrderDetailsRespVO {
 | 
			
		||||
    private String  timePeriod;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "订单状态", example = "交易完成")
 | 
			
		||||
    @ExcelProperty("订单状态")
 | 
			
		||||
    @ExcelProperty(value = "订单状态",converter = OrderStatusConverter.class)
 | 
			
		||||
    private String  orderStatus ;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "用户id", example = "1024")
 | 
			
		||||
    private Long userId;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,13 @@ package cn.iocoder.yudao.module.member.controller.admin.user;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserAddVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserExportVo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserRespVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateLevelReqVO;
 | 
			
		||||
@ -35,7 +40,9 @@ import org.springframework.web.bind.annotation.RequestParam;
 | 
			
		||||
import org.springframework.web.bind.annotation.RestController;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
import javax.servlet.http.HttpServletResponse;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@ -46,6 +53,7 @@ import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 | 
			
		||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
 | 
			
		||||
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
 | 
			
		||||
 | 
			
		||||
@Tag(name = "管理后台 - 会员用户")
 | 
			
		||||
@ -65,6 +73,9 @@ public class MemberUserController {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private MemberPointRecordService memberPointRecordService;
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private MemberGroupService MemberGroupService;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @PutMapping("/update")
 | 
			
		||||
    @Operation(summary = "更新会员用户")
 | 
			
		||||
@ -106,12 +117,7 @@ public class MemberUserController {
 | 
			
		||||
    public CommonResult<MemberUserRespVO> getUser(@RequestParam("id") Long id) {
 | 
			
		||||
        MemberUserDO user = memberUserService.getUser(id);
 | 
			
		||||
        MemberUserRespVO memberUserRespVO = MemberUserConvert.INSTANCE.convert03(user);
 | 
			
		||||
        //if(StringUtils.isNotEmpty(memberUserRespVO.getFaceId())){
 | 
			
		||||
        //    FaceVo faceData = cardService.getFaceData(memberUserRespVO.getFaceId());
 | 
			
		||||
        //    System.out.println(faceData.toString());
 | 
			
		||||
        //    //memberUserRespVO.setFaceData(faceData);
 | 
			
		||||
        //}
 | 
			
		||||
 | 
			
		||||
        memberUserRespVO.setGroupName(MemberGroupService.getGroupNameByUserId(id));
 | 
			
		||||
        return success(memberUserRespVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -137,12 +143,11 @@ public class MemberUserController {
 | 
			
		||||
        List<MemberGroupDO> groups = memberGroupService.getGroupList(
 | 
			
		||||
                convertSet(pageResult.getList(), MemberUserDO::getGroupId));
 | 
			
		||||
        PageResult<MemberUserRespVO> memberUserRespVOPageResult = MemberUserConvert.INSTANCE.convertPage(pageResult, tags, levels, groups);
 | 
			
		||||
        //memberUserRespVOPageResult.getList().forEach(vo ->{
 | 
			
		||||
        //    if(StringUtils.isNotEmpty(vo.getFaceId())){
 | 
			
		||||
        //        Blob faceData = cardService.getFaceData(vo.getFaceId());
 | 
			
		||||
        //        vo.setFaceData(faceData);
 | 
			
		||||
        //    }
 | 
			
		||||
        //});
 | 
			
		||||
        //处理用户分组返显
 | 
			
		||||
        Map<Long, String> groupNames = MemberGroupService.getGroupNameByUserIds(pageResult.getList().stream().map(MemberUserDO::getId).collect(Collectors.toList()));
 | 
			
		||||
        memberUserRespVOPageResult.getList().forEach(respVo->{
 | 
			
		||||
            respVo.setGroupName(groupNames.get(respVo.getId()));
 | 
			
		||||
        });
 | 
			
		||||
        return success(memberUserRespVOPageResult);
 | 
			
		||||
    }
 | 
			
		||||
    @GetMapping("/heat")
 | 
			
		||||
@ -172,5 +177,19 @@ public class MemberUserController {
 | 
			
		||||
        return success(memberUserService.create(addVO));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/export-excel")
 | 
			
		||||
    @Operation(summary = "导出用户 Excel")
 | 
			
		||||
    @OperateLog(type = EXPORT)
 | 
			
		||||
    public void exportUserExcel(@Valid MemberUserPageReqVO pageReqVO,
 | 
			
		||||
                                     HttpServletResponse response) throws IOException {
 | 
			
		||||
        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
 | 
			
		||||
        List<MemberUserRespVO> list = getUserPage(pageReqVO).getData().getList();
 | 
			
		||||
 | 
			
		||||
        // 导出 Excel
 | 
			
		||||
        ExcelUtils.write(response, "用户.xls", "数据", MemberUserExportVo.class,
 | 
			
		||||
                BeanUtils.toBean(list, MemberUserExportVo.class));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,39 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.admin.user.vo;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.excel.annotation.ExcelProperty;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @author zt
 | 
			
		||||
 * @description <description class purpose>
 | 
			
		||||
 * @since 2024/7/17
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class MemberUserExportVo {
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("编号")
 | 
			
		||||
    private Long id;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("用户昵称")
 | 
			
		||||
    private String nickname;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("手机号")
 | 
			
		||||
    private String mobile;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("分组")
 | 
			
		||||
    private String groupName;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("卡号")
 | 
			
		||||
    private String cardId;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("最后登录时间")
 | 
			
		||||
    private LocalDateTime loginDate;
 | 
			
		||||
 | 
			
		||||
    @ExcelProperty("创建时间")
 | 
			
		||||
    private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -41,6 +41,12 @@ public class MemberUserPageReqVO extends PageParam {
 | 
			
		||||
    @Schema(description = "用户分组编号", example = "1")
 | 
			
		||||
    private Long groupId;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "卡号", example = "1")
 | 
			
		||||
    private Long cardId;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "分组筛选", example = "1")
 | 
			
		||||
    private List<Long> userIds;
 | 
			
		||||
 | 
			
		||||
    // TODO 芋艿:注册用户类型;
 | 
			
		||||
 | 
			
		||||
    // TODO 芋艿:登录用户类型;
 | 
			
		||||
 | 
			
		||||
@ -49,9 +49,5 @@ public class MemberUserRespVO extends MemberUserBaseVO {
 | 
			
		||||
    @Schema(description = "用户经验值", requiredMode  = Schema.RequiredMode.REQUIRED, example = "200")
 | 
			
		||||
    private Integer experience;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "绑定卡号")
 | 
			
		||||
    private String cardId;
 | 
			
		||||
 | 
			
		||||
    @Schema(description = "人脸ID")
 | 
			
		||||
    private Long faceId;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.controller.app.diningplates;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesRespVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.diningplates.vo.AppUserInfo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.service.diningplates.DiningPlatesService;
 | 
			
		||||
@ -53,4 +54,18 @@ public class AppDiningPlatesController {
 | 
			
		||||
        return success(diningPlatesService.appCheckBind(diningPlatesNum));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/unbind")
 | 
			
		||||
    @Operation(summary = "餐盘解绑")
 | 
			
		||||
    public CommonResult<String> unbind(String diningPlatesNum) {
 | 
			
		||||
        diningPlatesService.unbind(diningPlatesNum);
 | 
			
		||||
        return success("解绑成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/getUserAndDish")
 | 
			
		||||
    @Operation(summary = "根据餐盘号获取当前余额")
 | 
			
		||||
    public CommonResult<AppUserInfo> getMoney(String cId, Long dishesId) {
 | 
			
		||||
        return success(diningPlatesService.getMoney(cId,dishesId));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,22 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.controller.app.diningplates.vo;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @author zt
 | 
			
		||||
 * @description <description class purpose>
 | 
			
		||||
 * @since 2024/7/16
 | 
			
		||||
 */
 | 
			
		||||
@Data
 | 
			
		||||
public class AppUserInfo {
 | 
			
		||||
 | 
			
		||||
    private BigDecimal money;
 | 
			
		||||
 | 
			
		||||
    private String nickname;
 | 
			
		||||
 | 
			
		||||
    private String dishesName;
 | 
			
		||||
 | 
			
		||||
    private BigDecimal dishesBasePrice;
 | 
			
		||||
}
 | 
			
		||||
@ -44,4 +44,15 @@ public class AppOrderDetailRespVO {
 | 
			
		||||
    @ExcelProperty("创建时间")
 | 
			
		||||
    private LocalDateTime createTime;
 | 
			
		||||
 | 
			
		||||
    private BigDecimal dishesBasePrice;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 总价格
 | 
			
		||||
     */
 | 
			
		||||
    private BigDecimal dishesSumPrice;
 | 
			
		||||
    /**
 | 
			
		||||
     * 菜品总重量
 | 
			
		||||
     */
 | 
			
		||||
    private BigDecimal dishesNumber;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -139,5 +139,11 @@ public class AppMemberUserController {
 | 
			
		||||
    public CommonResult<Map<String,String>> getDishesList(@RequestParam("platesNum") String platesNum){
 | 
			
		||||
        return success(userService.getDishesList(platesNum));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/getCardId")
 | 
			
		||||
    @Operation(summary = "获取用户绑定的卡号")
 | 
			
		||||
    public CommonResult<String> getCardId(Long userId){
 | 
			
		||||
        return success(userService.getCardId(userId));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,57 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.convert.excel;
 | 
			
		||||
 | 
			
		||||
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 OrderStatusConverter implements Converter<String> {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Class<?> supportJavaTypeKey() {
 | 
			
		||||
        return String.class;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public CellDataTypeEnum supportExcelTypeKey() {
 | 
			
		||||
        return CellDataTypeEnum.STRING;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 这里读的时候会调用
 | 
			
		||||
     *
 | 
			
		||||
     * @param context
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public String convertToJavaData(ReadConverterContext<?> context) throws Exception {
 | 
			
		||||
        return Converter.super.convertToJavaData(context);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 这里是写的时候会调用 不用管
 | 
			
		||||
     *
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public WriteCellData<String> convertToExcelData(WriteConverterContext<String> context) {
 | 
			
		||||
 | 
			
		||||
        String value = context.getValue();
 | 
			
		||||
        if ("0".equals(value)) {
 | 
			
		||||
            value = "待付款";
 | 
			
		||||
        } else if ("1".equals(value)) {
 | 
			
		||||
            value = "已完成";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return new WriteCellData<>(value);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -70,4 +70,9 @@ public class DiningPlatesDO extends BaseDO {
 | 
			
		||||
     */
 | 
			
		||||
    private LocalDateTime bindingTime;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 订单ID
 | 
			
		||||
     */
 | 
			
		||||
    private Long orderId;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 | 
			
		||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUserVo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
 | 
			
		||||
import org.apache.ibatis.annotations.Mapper;
 | 
			
		||||
@ -42,4 +43,10 @@ public interface MemberGroupMapper extends BaseMapperX<MemberGroupDO> {
 | 
			
		||||
    Long memberCount(MemberGroupPageVO vo);
 | 
			
		||||
 | 
			
		||||
    List<Long> getMemberList(Long groupId);
 | 
			
		||||
 | 
			
		||||
    List<Long> getAllMember();
 | 
			
		||||
 | 
			
		||||
    String getGroupName(Long userId);
 | 
			
		||||
 | 
			
		||||
    List<MemberGroupUserVo> getGroupList(List<Long> list);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -49,7 +49,9 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
 | 
			
		||||
                .likeIfPresent(MemberUserDO::getNickname, reqVO.getNickname())
 | 
			
		||||
                .betweenIfPresent(MemberUserDO::getCreateTime, reqVO.getCreateTime())
 | 
			
		||||
                .eqIfPresent(MemberUserDO::getLevelId, reqVO.getLevelId())
 | 
			
		||||
                .eqIfPresent(MemberUserDO::getGroupId, reqVO.getGroupId())
 | 
			
		||||
                //.eqIfPresent(MemberUserDO::getGroupId, reqVO.getGroupId())
 | 
			
		||||
                .eqIfPresent(MemberUserDO::getCardId,reqVO.getCardId())
 | 
			
		||||
                .inIfPresent(MemberUserDO::getId,reqVO.getUserIds())
 | 
			
		||||
                .apply(StrUtil.isNotEmpty(tagIdSql), tagIdSql)
 | 
			
		||||
                .orderByDesc(MemberUserDO::getId));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -41,9 +41,9 @@ public class BalanceDeductionJob implements JobHandler {
 | 
			
		||||
    private StringRedisTemplate stringRedisTemplate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 20分钟之后自动解绑并扣款
 | 
			
		||||
     * 30分钟之后自动解绑并扣款
 | 
			
		||||
     */
 | 
			
		||||
    private static final Integer EXPIRATION_TIME = 20;
 | 
			
		||||
    private static final Integer EXPIRATION_TIME = 30;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -56,11 +56,11 @@ public class BalanceDeductionJob implements JobHandler {
 | 
			
		||||
 | 
			
		||||
        if(CollectionUtil.isNotEmpty(diningPlatesToCharging)){
 | 
			
		||||
            List<Long> ids = diningPlatesToCharging.stream().map(DiningPlatesDO::getId).collect(Collectors.toList());
 | 
			
		||||
            List<Long> users = diningPlatesToCharging.stream().map(DiningPlatesDO::getUserId).collect(Collectors.toList());
 | 
			
		||||
            List<Long> orderIds = diningPlatesToCharging.stream().map(DiningPlatesDO::getOrderId).collect(Collectors.toList());
 | 
			
		||||
            //先更改状态防止重复消费
 | 
			
		||||
            //platesService.updatePayFlag(ids,DiningPlatesDO.PAY);
 | 
			
		||||
            //获取用户订单
 | 
			
		||||
            List<DishOrderDO> toPay = orderService.getToPay(users);
 | 
			
		||||
            List<DishOrderDO> toPay = orderService.getToPayByOrder(orderIds);
 | 
			
		||||
            //扣除余额
 | 
			
		||||
            List<CardDO> list = new ArrayList<>();
 | 
			
		||||
            toPay.forEach(dishOrderDO -> {
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.diningplates.vo.AppUserInfo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
 | 
			
		||||
 | 
			
		||||
@ -92,4 +93,9 @@ public interface DiningPlatesService {
 | 
			
		||||
    AppUserInfoCardVO appCheckBind(String diningPlatesNum);
 | 
			
		||||
 | 
			
		||||
    List<DiningPlatesStoreVO> getDiningPlatesNum(LocalDateTime localDateTime, Integer time);
 | 
			
		||||
 | 
			
		||||
    void unbind(String diningPlatesNum);
 | 
			
		||||
 | 
			
		||||
    AppUserInfo getMoney(String diningPlatesNum, Long dishId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.service.diningplates;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
@ -8,6 +9,7 @@ import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.diningplates.vo.AppUserInfo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
 | 
			
		||||
@ -19,6 +21,8 @@ import cn.iocoder.yudao.module.member.service.card.CardService;
 | 
			
		||||
import cn.iocoder.yudao.module.member.util.MemberConstants;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.dish.DishesApi;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.dish.dto.DishesRespDto;
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
import org.springframework.data.redis.core.StringRedisTemplate;
 | 
			
		||||
@ -60,11 +64,18 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
    private WebSocketMessageSender webSocketMessageSender;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private CarteenApi carteenApi;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private DishesApi dishesApi;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Long createDiningPlates(DiningPlatesSaveReqVO createReqVO) {
 | 
			
		||||
        // 插入
 | 
			
		||||
        DiningPlatesDO diningPlates = BeanUtils.toBean(createReqVO, DiningPlatesDO.class);
 | 
			
		||||
        List<DiningPlatesDO> diningPlatesDOS = diningPlatesMapper.selectList(Wrappers.<DiningPlatesDO>lambdaQuery()
 | 
			
		||||
                .eq(DiningPlatesDO::getDiningPlatesNum, diningPlates.getDiningPlatesNum()));
 | 
			
		||||
        if(CollectionUtil.isNotEmpty(diningPlatesDOS)){
 | 
			
		||||
            throw exception(DINING_PLATES_ALREADY);
 | 
			
		||||
        }
 | 
			
		||||
        diningPlatesMapper.insert(diningPlates);
 | 
			
		||||
        // 返回
 | 
			
		||||
        return diningPlates.getId();
 | 
			
		||||
@ -134,6 +145,7 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
                .set(DiningPlatesDO::getStatus, DiningPlatesDO.FREE)
 | 
			
		||||
                .set(DiningPlatesDO::getUserId, null)
 | 
			
		||||
                .set(DiningPlatesDO::getBindingTime, null)
 | 
			
		||||
                .set(DiningPlatesDO::getOrderId, null)
 | 
			
		||||
                .in(DiningPlatesDO::getId, ids));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -160,7 +172,7 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
        diningPlatesDO.setUserId(memberUserDO.getId());
 | 
			
		||||
        diningPlatesDO.setStatus(DiningPlatesDO.USE);
 | 
			
		||||
        diningPlatesDO.setBindingTime(LocalDateTime.now());
 | 
			
		||||
        diningPlatesMapper.updateById(diningPlatesDO);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //创建初始订单
 | 
			
		||||
        DishOrderDO dishOrderDO = new DishOrderDO();
 | 
			
		||||
@ -171,6 +183,8 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
                .setStoreName(diningPlatesDO.getStoreName());
 | 
			
		||||
        dishOrderMapper.insert(dishOrderDO);
 | 
			
		||||
 | 
			
		||||
        diningPlatesDO.setOrderId(dishOrderDO.getId());
 | 
			
		||||
        diningPlatesMapper.updateById(diningPlatesDO);
 | 
			
		||||
        //设置总价
 | 
			
		||||
        stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
 | 
			
		||||
        AppUserInfoCardVO data = new AppUserInfoCardVO();
 | 
			
		||||
@ -199,7 +213,6 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
        diningPlatesDO.setUserId(memberUserDO.getId());
 | 
			
		||||
        diningPlatesDO.setStatus(DiningPlatesDO.USE);
 | 
			
		||||
        diningPlatesDO.setBindingTime(LocalDateTime.now());
 | 
			
		||||
        diningPlatesMapper.updateById(diningPlatesDO);
 | 
			
		||||
 | 
			
		||||
        //创建初始订单
 | 
			
		||||
        DishOrderDO dishOrderDO = new DishOrderDO();
 | 
			
		||||
@ -210,6 +223,8 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
                .setStoreName(diningPlatesDO.getStoreName());
 | 
			
		||||
        dishOrderMapper.insert(dishOrderDO);
 | 
			
		||||
 | 
			
		||||
        diningPlatesDO.setOrderId(dishOrderDO.getId());
 | 
			
		||||
        diningPlatesMapper.updateById(diningPlatesDO);
 | 
			
		||||
        //设置总价
 | 
			
		||||
        stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
 | 
			
		||||
        AppUserInfoCardVO data = new AppUserInfoCardVO();
 | 
			
		||||
@ -331,4 +346,44 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
 | 
			
		||||
        webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), 1L, // 给指定用户
 | 
			
		||||
                "demo-message-receive", s);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void unbind(String diningPlatesNum) {
 | 
			
		||||
 | 
			
		||||
        String money = stringRedisTemplate.opsForValue().get(diningPlatesNum);
 | 
			
		||||
        if(!"0".equals(money)){
 | 
			
		||||
            throw exception(DINING_PLATES_CANNOT_UNBIND);
 | 
			
		||||
        }
 | 
			
		||||
        DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
 | 
			
		||||
                .eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
 | 
			
		||||
                .last("limit 1"));
 | 
			
		||||
 | 
			
		||||
        diningPlatesMapper.update(Wrappers.<DiningPlatesDO>lambdaUpdate()
 | 
			
		||||
                .set(DiningPlatesDO::getPayFlag, DiningPlatesDO.TO_PAY)
 | 
			
		||||
                .set(DiningPlatesDO::getStatus, DiningPlatesDO.FREE)
 | 
			
		||||
                .set(DiningPlatesDO::getUserId, null)
 | 
			
		||||
                .set(DiningPlatesDO::getBindingTime, null)
 | 
			
		||||
                .set(DiningPlatesDO::getOrderId, null)
 | 
			
		||||
                .eq(DiningPlatesDO::getId,diningPlatesDO.getId()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public AppUserInfo getMoney(String diningPlatesNum,Long dishId) {
 | 
			
		||||
        DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
 | 
			
		||||
                .eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
 | 
			
		||||
                .last("limit 1"));
 | 
			
		||||
        BigDecimal moneyByUserId = cardService.getMoneyByUserId(diningPlatesDO.getUserId());
 | 
			
		||||
        MemberUserDO memberUserDO = memberUserMapper.selectById(diningPlatesDO.getUserId());
 | 
			
		||||
 | 
			
		||||
        DishesRespDto dish = dishesApi.getDish(dishId);
 | 
			
		||||
 | 
			
		||||
        AppUserInfo appUserInfo = new AppUserInfo();
 | 
			
		||||
        appUserInfo.setNickname(memberUserDO.getNickname())
 | 
			
		||||
                .setDishesName(dish.getDishesName())
 | 
			
		||||
                .setDishesBasePrice(dish.getDishesBasePrice())
 | 
			
		||||
                .setMoney(moneyByUserId);
 | 
			
		||||
        return appUserInfo;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 用户分组 Service 接口
 | 
			
		||||
@ -116,4 +117,13 @@ public interface MemberGroupService {
 | 
			
		||||
    PageResult<MemberUserDO> getUserList(MemberUserListVO listVO);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户所在组
 | 
			
		||||
     */
 | 
			
		||||
    String getGroupNameByUserId(Long userId);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户所在组
 | 
			
		||||
     */
 | 
			
		||||
    Map<Long,String> getGroupNameByUserIds(List<Long> userIds);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreat
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUpdateReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUserVo;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberUserVO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserListVO;
 | 
			
		||||
@ -25,6 +26,8 @@ import java.math.BigDecimal;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
			
		||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_HAS_USER;
 | 
			
		||||
@ -142,11 +145,23 @@ public class MemberGroupServiceImpl implements MemberGroupService {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public PageResult<MemberUserDO> getUserList(MemberUserListVO listVO) {
 | 
			
		||||
        List<Long> memberList = memberGroupMapper.getMemberList(listVO.getGroupId());
 | 
			
		||||
        //List<Long> memberList = memberGroupMapper.getMemberList(listVO.getGroupId());
 | 
			
		||||
        List<Long> memberList =  memberGroupMapper.getAllMember();
 | 
			
		||||
        listVO.setIds(memberList);
 | 
			
		||||
        PageResult<MemberUserDO> groupUserList = memberUserService.getGroupUserList(listVO);
 | 
			
		||||
 | 
			
		||||
        return groupUserList;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getGroupNameByUserId(Long userId) {
 | 
			
		||||
        return memberGroupMapper.getGroupName(userId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Map<Long, String> getGroupNameByUserIds(List<Long> userIds) {
 | 
			
		||||
        List<MemberGroupUserVo> groupList = memberGroupMapper.getGroupList(userIds);
 | 
			
		||||
        Map<Long, String> map = groupList.stream().collect(Collectors.toMap(MemberGroupUserVo::getMemberId, MemberGroupUserVo::getName));
 | 
			
		||||
        return map;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -74,6 +74,13 @@ public interface OrderService {
 | 
			
		||||
     */
 | 
			
		||||
    List<DishOrderDO> getToPay(List<Long> users);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取用户的未支付订单
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    List<DishOrderDO> getToPayByOrder(List<Long> orderIds);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 更改用户的支付状态
 | 
			
		||||
     * @return
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.module.member.service.order;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollectionUtil;
 | 
			
		||||
import cn.hutool.core.util.NumberUtil;
 | 
			
		||||
import cn.hutool.core.util.ObjUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
@ -19,6 +20,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.enums.CostTypeEnum;
 | 
			
		||||
@ -29,6 +31,8 @@ import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.deviceInfo.DeviceInfoApi;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.deviceInfo.dto.DeviceInfoDto;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.dish.DishesApi;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.dish.dto.DishesRespDto;
 | 
			
		||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
@ -69,7 +73,12 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private CarteenApi carteenApi;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private DishesApi dishesApi;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private CardMapper cardMapper;
 | 
			
		||||
    @Resource
 | 
			
		||||
    private MemberGroupMapper groupMapper;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Long createOrder(AppOrderSaveReqVO createReqVO) {
 | 
			
		||||
        // 插入
 | 
			
		||||
@ -105,10 +114,10 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
 | 
			
		||||
    private void validateOrderExists(Long id) {
 | 
			
		||||
        DishOrderDO dishOrderDO = dishOrderMapper.selectById(id);
 | 
			
		||||
        if ( dishOrderDO== null) {
 | 
			
		||||
        if (dishOrderDO == null) {
 | 
			
		||||
            throw exception(ORDER_NOT_EXISTS);
 | 
			
		||||
        }
 | 
			
		||||
        if("0".equals(dishOrderDO.getOrderStatus())){
 | 
			
		||||
        if ("0".equals(dishOrderDO.getOrderStatus())) {
 | 
			
		||||
            throw exception(ORDER_NOT_COMPLETE);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -119,19 +128,19 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
        AppOrderRespVO appOrderRespVO = BeanUtils.toBean(order, AppOrderRespVO.class);
 | 
			
		||||
        List<AppOrderDetailRespVO> appOrderDetailRespVOS = orderDetailService.selectListByOrderId(id);
 | 
			
		||||
        appOrderRespVO.setDetailList(appOrderDetailRespVOS);
 | 
			
		||||
        BigDecimal reduce1 = appOrderDetailRespVOS.stream().filter(heat -> ObjUtil.isNotEmpty(heat.getHeat())).map(m-> BigDecimal.valueOf(m.getHeat())).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
			
		||||
        BigDecimal reduce1 = appOrderDetailRespVOS.stream().filter(heat -> ObjUtil.isNotEmpty(heat.getHeat())).map(m -> BigDecimal.valueOf(m.getHeat())).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
			
		||||
        BigDecimal reduce = reduce1.setScale(2, RoundingMode.HALF_UP);
 | 
			
		||||
        appOrderRespVO.setIntake(reduce);
 | 
			
		||||
        //判断时间
 | 
			
		||||
        int hour = order.getCreateTime().getHour();
 | 
			
		||||
        if(TimePeriodEnum.MORNING.getStartInt()<=hour && hour<=TimePeriodEnum.MORNING.getEndInt()){
 | 
			
		||||
        if (TimePeriodEnum.MORNING.getStartInt() <= hour && hour <= TimePeriodEnum.MORNING.getEndInt()) {
 | 
			
		||||
            appOrderRespVO.setProposeIntake(MemberConstants.PROPOSE_MORNING);
 | 
			
		||||
        } else if (TimePeriodEnum.MIDDAY.getStartInt()<=hour && hour<=TimePeriodEnum.MIDDAY.getEndInt()){
 | 
			
		||||
        } else if (TimePeriodEnum.MIDDAY.getStartInt() <= hour && hour <= TimePeriodEnum.MIDDAY.getEndInt()) {
 | 
			
		||||
            appOrderRespVO.setProposeIntake(MemberConstants.PROPOSE_NOON);
 | 
			
		||||
        }else{
 | 
			
		||||
        } else {
 | 
			
		||||
            appOrderRespVO.setProposeIntake(MemberConstants.PROPOSE_NIGHT);
 | 
			
		||||
        }
 | 
			
		||||
        appOrderRespVO.setDifference(NumberUtil.sub(reduce,appOrderRespVO.getProposeIntake()));
 | 
			
		||||
        appOrderRespVO.setDifference(NumberUtil.sub(reduce, appOrderRespVO.getProposeIntake()));
 | 
			
		||||
        return appOrderRespVO;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -141,48 +150,67 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public  PageResult<AppOrderRespVO> getOrderList(AppPageVo vo) {
 | 
			
		||||
    public PageResult<AppOrderRespVO> getOrderList(AppPageVo vo) {
 | 
			
		||||
        PageResult<DishOrderDO> dishOrderDOPageResult = dishOrderMapper.selectPage(vo, Wrappers.<DishOrderDO>lambdaQuery().eq(DishOrderDO::getUserId, vo.getUserId()).orderByDesc(DishOrderDO::getCreateTime));
 | 
			
		||||
        PageResult<AppOrderRespVO> appOrderRespVOPageResult = BeanUtils.toBean(dishOrderDOPageResult, AppOrderRespVO.class);
 | 
			
		||||
        for (AppOrderRespVO dishOrderDO : appOrderRespVOPageResult.getList()){
 | 
			
		||||
        List<AppOrderRespVO> list = appOrderRespVOPageResult.getList();
 | 
			
		||||
        for (AppOrderRespVO dishOrderDO : list) {
 | 
			
		||||
            List<AppOrderDetailRespVO> appOrderDetailRespVOS = orderDetailService.selectListByOrderId(dishOrderDO.getId());
 | 
			
		||||
 | 
			
		||||
            if (CollectionUtil.isNotEmpty(appOrderDetailRespVOS)) {
 | 
			
		||||
                List<Long> dishIds = appOrderDetailRespVOS.stream().map(AppOrderDetailRespVO::getDishesId).collect(Collectors.toList());
 | 
			
		||||
 | 
			
		||||
                List<DishesRespDto> dishInfo = dishesApi.getDishInfo(dishIds);
 | 
			
		||||
                Map<Long, DishesRespDto> dishMap = dishInfo.stream().collect(Collectors.toMap(DishesRespDto::getId, DishesRespDto -> DishesRespDto));
 | 
			
		||||
 | 
			
		||||
                appOrderDetailRespVOS.forEach(respVo -> {
 | 
			
		||||
                    DishesRespDto dishesRespDto = dishMap.get(respVo.getDishesId());
 | 
			
		||||
 | 
			
		||||
                    respVo.setDishesBasePrice(dishesRespDto.getDishesBasePrice())
 | 
			
		||||
                            .setDishesSumPrice(dishesRespDto.getDishesSumPrice())
 | 
			
		||||
                            .setDishesNumber(dishesRespDto.getDishesNumber());
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            dishOrderDO.setDetailList(appOrderDetailRespVOS);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return appOrderRespVOPageResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public PageResult<OrderDetailsRespVO> getPageOrderDetails(OrderDetailsReqVO reqVO) {
 | 
			
		||||
        List<Long> userIds=new ArrayList<>();
 | 
			
		||||
        if(ObjUtil.isNotEmpty(reqVO.getUserName())
 | 
			
		||||
        List<Long> userIds = new ArrayList<>();
 | 
			
		||||
        if (ObjUtil.isNotEmpty(reqVO.getUserName())
 | 
			
		||||
                || ObjUtil.isNotEmpty(reqVO.getUserAccount())
 | 
			
		||||
                || ObjUtil.isNotEmpty(reqVO.getUserJob())
 | 
			
		||||
                || ObjUtil.isNotEmpty(reqVO.getUserId())
 | 
			
		||||
        ){
 | 
			
		||||
                || ObjUtil.isNotEmpty(reqVO.getGroupId())
 | 
			
		||||
        ) {
 | 
			
		||||
            //根据用户属性获取ids
 | 
			
		||||
            userIds = memberUserMapper.selectList(new LambdaQueryWrapperX<MemberUserDO>()
 | 
			
		||||
                            .likeIfPresent(MemberUserDO::getNickname, reqVO.getUserName())
 | 
			
		||||
                            .eqIfPresent(MemberUserDO::getMobile, reqVO.getUserAccount())
 | 
			
		||||
                            .eqIfPresent(MemberUserDO::getCardId, reqVO.getUserJob())
 | 
			
		||||
                            .eqIfPresent(MemberUserDO::getId, reqVO.getUserId()))
 | 
			
		||||
                            .eqIfPresent(MemberUserDO::getId, reqVO.getUserId())
 | 
			
		||||
                            .inIfPresent(MemberUserDO::getId,groupMapper.getMemberList(reqVO.getGroupId())))
 | 
			
		||||
                    .stream().map(MemberUserDO::getId).collect(Collectors.toList());
 | 
			
		||||
        }
 | 
			
		||||
        Map<String, LocalDateTime> timePeriod = this.getTimePeriod(reqVO.getTimePeriod());
 | 
			
		||||
        LocalDateTime startTime =null;
 | 
			
		||||
        LocalDateTime endTime =null;
 | 
			
		||||
        if(ObjUtil.isNotEmpty(timePeriod)){
 | 
			
		||||
            startTime=timePeriod.get("start");
 | 
			
		||||
            endTime=timePeriod.get("end");
 | 
			
		||||
        LocalDateTime startTime = null;
 | 
			
		||||
        LocalDateTime endTime = null;
 | 
			
		||||
        if (ObjUtil.isNotEmpty(timePeriod)) {
 | 
			
		||||
            startTime = timePeriod.get("start");
 | 
			
		||||
            endTime = timePeriod.get("end");
 | 
			
		||||
        }
 | 
			
		||||
        //进行分页查询
 | 
			
		||||
        PageResult<DishOrderDO> pageResult = dishOrderMapper.selectPageList(reqVO, userIds, startTime, endTime);
 | 
			
		||||
        List<OrderDetailsRespVO> list=new ArrayList<>();
 | 
			
		||||
        List<OrderDetailsRespVO> list = new ArrayList<>();
 | 
			
		||||
        for (DishOrderDO dishOrderDO : pageResult.getList()) {
 | 
			
		||||
            OrderDetailsRespVO bean = BeanUtils.toBean(dishOrderDO, OrderDetailsRespVO.class);
 | 
			
		||||
            userDetails(bean);
 | 
			
		||||
            list.add(bean);
 | 
			
		||||
        }
 | 
			
		||||
        return new PageResult<>(list,pageResult.getTotal());
 | 
			
		||||
        return new PageResult<>(list, pageResult.getTotal());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -194,6 +222,7 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
 | 
			
		||||
    private void userDetails(OrderDetailsRespVO bean) {
 | 
			
		||||
        MemberUserDO userDO = memberUserMapper.selectById(bean.getUserId());
 | 
			
		||||
        bean.setGroupName(groupMapper.getGroupName(bean.getUserId()));
 | 
			
		||||
        bean.setUserName(userDO.getNickname());
 | 
			
		||||
        bean.setUserJob(userDO.getMobile());
 | 
			
		||||
        bean.setAvatar(userDO.getAvatar());
 | 
			
		||||
@ -203,19 +232,19 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return
 | 
			
		||||
     * @Description: 数据类型对标 {@link CostTypeEnum}
 | 
			
		||||
     * @Author: qjq
 | 
			
		||||
     * @Date: 2024/4/1 11:18
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public Map<String,LocalDateTime> getTimePeriod(String type){
 | 
			
		||||
        if(TimePeriodEnum.MORNING.getCode().equalsIgnoreCase(type)){
 | 
			
		||||
    public Map<String, LocalDateTime> getTimePeriod(String type) {
 | 
			
		||||
        if (TimePeriodEnum.MORNING.getCode().equalsIgnoreCase(type)) {
 | 
			
		||||
            return TimePeriodEnum.MORNING.getStartToEnd();
 | 
			
		||||
        }else if(TimePeriodEnum.MIDDAY.getCode().equalsIgnoreCase(type)){
 | 
			
		||||
        } else if (TimePeriodEnum.MIDDAY.getCode().equalsIgnoreCase(type)) {
 | 
			
		||||
            return TimePeriodEnum.MIDDAY.getStartToEnd();
 | 
			
		||||
        }else if(TimePeriodEnum.NIGHT.getCode().equalsIgnoreCase(type)){
 | 
			
		||||
        } else if (TimePeriodEnum.NIGHT.getCode().equalsIgnoreCase(type)) {
 | 
			
		||||
            return TimePeriodEnum.NIGHT.getStartToEnd();
 | 
			
		||||
        }else {
 | 
			
		||||
        } else {
 | 
			
		||||
            return Collections.emptyMap();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -228,6 +257,14 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
        return dishOrderDOS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<DishOrderDO> getToPayByOrder(List<Long> orderIds) {
 | 
			
		||||
        List<DishOrderDO> dishOrderDOS = dishOrderMapper.selectList(Wrappers.<DishOrderDO>lambdaQuery()
 | 
			
		||||
                .in(DishOrderDO::getId, orderIds)
 | 
			
		||||
                .eq(DishOrderDO::getOrderStatus, DishOrderDO.INCOMPLETE));
 | 
			
		||||
        return dishOrderDOS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void updateBatch(List<DishOrderDO> orderDOS) {
 | 
			
		||||
        dishOrderMapper.updateBatch(orderDOS);
 | 
			
		||||
@ -236,19 +273,19 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<DishOrderDO> getDishOrderByTime(LocalDateTime startTime, LocalDateTime endTime) {
 | 
			
		||||
        List<DishOrderDO> dishOrderDOS = dishOrderMapper.selectList(Wrappers.<DishOrderDO>lambdaQuery()
 | 
			
		||||
                .eq(DishOrderDO::getUserId,SecurityFrameworkUtils.getLoginUserId())
 | 
			
		||||
                .eq(DishOrderDO::getUserId, SecurityFrameworkUtils.getLoginUserId())
 | 
			
		||||
                .between(DishOrderDO::getCreateTime, startTime, endTime));
 | 
			
		||||
        return dishOrderDOS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Integer selectUser(Long storeId, String time) {
 | 
			
		||||
        return dishOrderMapper.selectUser(storeId,time);
 | 
			
		||||
        return dishOrderMapper.selectUser(storeId, time);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public BigDecimal getSaleMoney(Long storeId, String time) {
 | 
			
		||||
        return dishOrderMapper.getSaleMoney(storeId,time);
 | 
			
		||||
        return dishOrderMapper.getSaleMoney(storeId, time);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -259,7 +296,7 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MemberConstants.DATE_FORMAT);
 | 
			
		||||
        String today = LocalDateTime.now().format(formatter);
 | 
			
		||||
        List<DishOrderDO> dishOrderDOS = dishOrderMapper.selectList();
 | 
			
		||||
        for (CarteenRespDto dto : carteenList){
 | 
			
		||||
        for (CarteenRespDto dto : carteenList) {
 | 
			
		||||
            CarTeenInfoVO carTeenInfoVO = new CarTeenInfoVO();
 | 
			
		||||
            long deviceNum = device.stream().filter(vo -> vo.getCarteenId().equals(dto.getId())).count();
 | 
			
		||||
            carTeenInfoVO.setDeviceNum(String.valueOf(deviceNum));
 | 
			
		||||
@ -294,13 +331,13 @@ public class OrderServiceImpl implements OrderService {
 | 
			
		||||
        OrderMoneyRespVO orderMoneyRespVO = new OrderMoneyRespVO();
 | 
			
		||||
        //获取充值的金额
 | 
			
		||||
        BigDecimal add = cardMapper.selectAddMoney(userId, CardDO.ADD);
 | 
			
		||||
        if(add == null){
 | 
			
		||||
        if (add == null) {
 | 
			
		||||
            add = BigDecimal.ZERO;
 | 
			
		||||
        }
 | 
			
		||||
        orderMoneyRespVO.setRechargeMoney(add);
 | 
			
		||||
        //消费的金额
 | 
			
		||||
        BigDecimal minus = cardMapper.selectAddMoney(userId, CardDO.MINUS);
 | 
			
		||||
        if(minus == null){
 | 
			
		||||
        if (minus == null) {
 | 
			
		||||
            minus = BigDecimal.ZERO;
 | 
			
		||||
        }
 | 
			
		||||
        orderMoneyRespVO.setConsumeMoney(minus);
 | 
			
		||||
 | 
			
		||||
@ -240,4 +240,7 @@ public interface MemberUserService {
 | 
			
		||||
     */
 | 
			
		||||
    PageResult<MemberUserDO> getGroupUserList(MemberUserListVO listVO);
 | 
			
		||||
 | 
			
		||||
    String getCardId(Long userId);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -37,6 +37,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.orderdetail.OrderDetailDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.diningplates.DiningPlatesMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.orderdetail.OrderDetailMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
 | 
			
		||||
@ -82,6 +83,7 @@ import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
 | 
			
		||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 | 
			
		||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@ -128,6 +130,9 @@ public class MemberUserServiceImpl implements MemberUserService {
 | 
			
		||||
    @Resource
 | 
			
		||||
    private AdminCardService adminCardService;
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private MemberGroupMapper memberGroupMapper;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public MemberUserDO getUserByMobile(String mobile) {
 | 
			
		||||
@ -353,6 +358,9 @@ public class MemberUserServiceImpl implements MemberUserService {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public PageResult<MemberUserDO> getUserPage(MemberUserPageReqVO pageReqVO) {
 | 
			
		||||
        if(pageReqVO.getGroupId()!=null){
 | 
			
		||||
            pageReqVO.setUserIds(memberGroupMapper.getMemberList(pageReqVO.getGroupId()));
 | 
			
		||||
        }
 | 
			
		||||
        return memberUserMapper.selectPage(pageReqVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -713,4 +721,13 @@ public class MemberUserServiceImpl implements MemberUserService {
 | 
			
		||||
    public PageResult<MemberUserDO> getGroupUserList(MemberUserListVO listVO) {
 | 
			
		||||
        return memberUserMapper.selectUserList(listVO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String getCardId(Long userId) {
 | 
			
		||||
        if(userId == null){
 | 
			
		||||
             userId = getLoginUserId();
 | 
			
		||||
        }
 | 
			
		||||
        MemberUserDO memberUserDO = memberUserMapper.selectById(userId);
 | 
			
		||||
        return memberUserDO.getCardId();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -53,4 +53,22 @@
 | 
			
		||||
        select member_id from member_group_member where group_id = #{groupId}
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="getAllMember" resultType="Long">
 | 
			
		||||
        select member_id from member_group_member
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="getGroupName" resultType="string">
 | 
			
		||||
        SELECT name FROM member_group WHERE
 | 
			
		||||
        id = (select group_id from member_group_member where member_id = #{userId})
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
    <select id="getGroupList" resultType="cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUserVo">
 | 
			
		||||
        SELECT mg.name,mm.member_id FROM member_group_member mm left join member_group mg on  mm.group_id = mg.id
 | 
			
		||||
         where mm.member_id in
 | 
			
		||||
        <foreach item="id" collection="list" open="(" separator="," close=")">
 | 
			
		||||
            #{id}
 | 
			
		||||
        </foreach>
 | 
			
		||||
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
</mapper>
 | 
			
		||||
		Reference in New Issue
	
	Block a user