美文网首页
PO-BO-DTO-VO-DAO实际应用

PO-BO-DTO-VO-DAO实际应用

作者: yichen_china | 来源:发表于2020-12-26 09:13 被阅读0次

PO 实体类对象:对应数据库的字段
DTO是数据传递对象:控制器接收前端数据模型,然后传递给servise
BO 业务对象:适合多查询的,比如多个PO组合起来的,或者多表查询返回的数据模型在servise里在处理成VO返回给前端
VO 是servise 返回的结果,给前端用的

package com....admin.controller.user;

public List<UserInfoBaseVO> export(UserManageDTO userManageDTO) {
        return userManageService.export(userManageDTO);

package com.….common.vo.user;

@Data
public class UserInfoBaseVO {
    private Integer userId;// 用户id
    /**
     * 性别,0男,1女
     */
    private Integer sex;
    /**
     * 生日
     */
    private String birthday;
    /**
     * 用户等级:0为普通用户,其他等级根据积分取等级设置表的id
     */
    private Integer memberLevelId;
    /**
     * 用户被邀请的时间
     */
    @Column(name = "invited_time")
    @JsonFormat(locale="zh", pattern="yyyy-MM-dd HH:mm:ss")
    private Date invitedTime;

    private String openId;

    private String qrcodeUrl;

    public UserInfoBaseVO() {
        if (memberDiscount!=null && this.memberDiscount.compareTo(new BigDecimal(10)) == 0) {
            this.memberDiscount=new BigDecimal(10);
        }
    }

    private String inviterDisplay;// 优先姓名,没有姓名就昵称,没昵称就手机号
}

package com....admin.service.user;

public interface UserManageService {
    PageInfo getUserList(UserManageDTO userManageDTO);
    List<UserInfoBaseVO> export(UserManageDTO userManageDTO);
    void importUserInfos(InputStream inputStream, int i);
    String importProgress(int i);

package com....admin.service.impl.user;

@Service
@Slf4j
public class UserManageServiceImpl implements UserManageService {
    @Resource
    private UserInfoBaseMapper userInfoBaseMapper;
    @Resource
    private DistributionMapper distributionMapper;
    @Resource
    private UserInfoWechatMapper userInfoWechatMapper;

    @Override
    public PageInfo getUserList(UserManageDTO userManageDTO) {
        try{
            PageContext.startPage();
            if(MemberLevelSettingConstant.LEVEL_NO_ORDINARY.equals(userManageDTO.getMemberLevelId())) {
                userManageDTO.setMember(Boolean.FALSE);
            }
            List<UserInfoBaseVO> userInfoBaseVOList = userInfoBaseMapper.selectByselective(userManageDTO);
…………………………………………………………………………………………………………………………
public interface GoodsInfoMapper extends Mapper<GoodsInfo> {

    List<GoodsInfoVO> searchGoodsInfoByName(GoodsSearchDTO goodsSearchDTO);
package com....common.dto.common;

import lombok.Data;

/**
 * @ClassName BaseDTO
 * @Description DTO基础类,设置一些通用字段
 * @Author Ying.bw
 * @Date 2020/5/20 11:18
 * @Version 1.0
 */
@Data
public class BaseDTO<T> {
    public static final String DEFAULT_SORT_FIELD = "gmt_create";
    public static final Integer ASC = 0;
    public static final Integer DESC = 1;
    public static final Integer DEFAULT_PAGE_NUM = 1;
    public static final Integer DEFAULT_PAGE_SIZE = 20;

    private String sortField = DEFAULT_SORT_FIELD; // 排序字段,默认为创建时间
    private Integer sortType = DESC;// 排序类型默认为降序,0升序,1降序
    private Integer pageNum;// 页码,不填则默认1
    private Integer pageSize;// 每页数量,不填则默认10


}

GoodsSearchDTO

/**
 * @ClassName GoodsSearchDTO
 * @Description 商品搜索DTO
 * @Author Ying.bw
 * @Date 2020/5/14 14:42
 * @Version 1.0
 */
@Data
public class GoodsSearchDTO extends BaseDTO {
    private String keyword;// 检索关键字
}

entity.goods;

/*
* GoodsInfo.java
* http://www.wmeimob.com
* Copyright © 2018 wmeimob All Rights Reserved,version 1.0
* 作者:应博伟
* Thu May 14 11:24:53 CST 2020 Created
*/ 
package com.....common.entity.goods;


@Table(name = "`goods_info`")
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class GoodsInfo implements Serializable {
    
   private static final long serialVersionUID = 1L;
    
    /**
     * 自增主键
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    /**
     * 商品编号
     */
    @Column(name = "goods_no")
    private String goodsNo;
    /**
     * 商品名称
     */
    @Column(name = "goods_name")
    private String goodsName;
    /**
     * 品牌id
     */
    @Column(name = "brand_id")
    private Integer brandId;
    /**
     * 商品分类id,多个分类按照逗号分割
     */
    @Column(name = "category_id")
    private Integer categoryId;


    @Column(name = "goods_category_id")
    private Integer goodsCategoryId;
    /**
     * 商品标签id,多个逗号分隔
     */
    @Column(name = "label_id")
    private String labelId;
    /**
     * 商品视频地址
     */
    @Column(name = "goods_video_url")
    private String goodsVideoUrl;
    /**
     * 商品图片地址
     */
    @Column(name = "goods_img_url")
    private String goodsImgUrl;
    /**
     * 商品封面图片地址
     */
    @Column(name = "goods_cover_url")
    private String goodsCoverUrl;
    /**
     * 成本价
     */
    @Column(name = "cost_price")
    private BigDecimal costPrice;
    /**
     * 虚拟销量
     */
    @Column(name = "virtual_sales")
    private Integer virtualSales;
    /**
     * 实际销量
     */
    @Column(name = "actual_sales")
    private Integer actualSales;
    /**
     * 赠品已赠送数量
     */
    @Column(name = "actual_gift_given_num")
    private Integer actualGiftGivenNum;
    /**
     * 市场价
     */
    @Column(name = "market_price")
    private BigDecimal marketPrice;
    /**
     * 单价
     */
    @Column(name = "unit_price")
    private BigDecimal unitPrice;
    /**
     * 实际库存
     */
    @Column(name = "actual_stock")
    private Integer actualStock;
    /**
     * 冻结库存
     */
    @Column(name = "frezz_stock")
    private Integer frezzStock;
    /**
     * 总库存
     */
    @Column(name = "total_stock")
    private Integer totalStock;
    /**
     * 运费模版id,0为免运费
     */
    @Column(name = "freight_template_id")
    private Integer freightTemplateId;
    /**
     * 是否赠品;0:否,1:是
     */
    @Column(name = "is_gift")
    private Boolean giftStatus;
    /**
     * 是否返佣;0:否,1:是
     */
    @Column(name = "is_rebate")
    private Boolean rebate;
    /**
     * 排序值
     */
    @Column(name = "sort")
    private Integer sort;
    /**
     * 是否支持7天退货;0:不支持,1:支持
     */
    @Column(name = "is_support_seven_days_return")
    private Boolean supportSevenDaysReturn;
    /**
     * 是否支持货到付款;0:不支持,1:支持
     */
    @Column(name = "is_support_cash_on_delivery")
    private Boolean supportCashOnDelivery;
    /**
     * 状态;0:上架,1:下架,2:删除
     */
    @Column(name = "status")
    private Integer status;
    /**
     * 创建时间
     */
    @Column(name = "gmt_create")
    @JsonFormat(locale="zh", pattern="yyyy-MM-dd HH:mm:ss")
    private Date gmtCreate;
    /**
     * 更新时间
     */
    @Column(name = "gmt_modified")
    @JsonFormat(locale="zh", pattern="yyyy-MM-dd HH:mm:ss")
    private Date gmtModified;
    /**
     * 商品类型:0为普通商品,1为限时折扣商品
     */
    @Column(name = "goods_type")
    private Integer goodsType;
   /**
    * 处方药和非处方药类型:1为非处方药,2为处方药
    */
    @Column(name = "prescription_status")
    private Integer prescriptionStatus;

    private Integer volume;// 体积cm^3
    private Integer length;// 长cm
    private Integer width;// 宽cm
    private Integer high;// 高cm

//    private String brandName;//品牌名称

    private ExpressTemplate expressTemplate;

}

GoodsInfoVO

package com.wmeimob.boai.common.vo.goods;

import com.....common.entity.goods.GoodsLabel;
import com.....common.vo.Preferential.PreferentialGiftVO;
import com.....common.vo.Preferential.PreferentialUnitPriceVO;

/**
 * @ClassName GoodsInfoVO
 * @Description 商品详情VO
 * @Author Ying.bw
 * @Date 2020/5/14 14:13
 * @Version 1.0
 */
@Data
public class GoodsInfoVO{
    private Integer goodsId;// 商品id
    private Integer status;// 状态;0:上架,1:下架,2:删除
    private BigDecimal costPrice;// 成本价
    private String categoryName;// 分类名称
    private List<String> labelName;// 标签名称
    /**
     * 商品编号
     */
    private String goodsNo;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 商品标签id,多个逗号分隔
     */
    private String labelId;
    /**
     * 商品视频地址
     */
    private String goodsVideoUrl;
    /**
     * 商品图片地址
     */
    private String goodsImgUrl;
    /**
     * 商品封面地址
     */
    private String goodsCoverUrl;
    /**
     * 商品图片地址,数组形式
     */
    private String[] goodsImgUrlArr;
    /**
     * 虚拟销量
     */
    private Integer virtualSales;

    /**
     * 限时折扣虚拟销量
     */
    private Integer discountLimitVirsualSales;
    /**
     * 市场价
     */
    private BigDecimal marketPrice;
    /**
     * 单价
     */
    private BigDecimal unitPrice;
    /**
     * 运费模版id,0为免运费
     */
    private Long freightTemplateId;
    /**
     * 是否赠品;0:否,1:是
     */
    private Boolean giftStatus;
    /**
     * 是否返佣;0:否,1:是
     */
    private Boolean rebate;
    /**
     * 是否支持7天退货;0:不支持,1:支持
     */
    private Boolean supportSevenDaysReturn;
    /**
     * 是否支持货到付款;0:不支持,1:支持
     */
    private Boolean supportCashOnDelivery;
    /**
     * 商品类型:0为普通商品,1为限时折扣商品
     */
    private Integer goodsType;
    /**
     * 处方药和非处方药类型:1为非处方药,2为处方药
     */
    private Integer prescriptionStatus;

    private String brandName; // 品牌名称
    private List<GoodsLabel> labelList; //标签
    private String instruction;// 说明书
    private String detail;// 详情介绍

    /**
     * 原价
     */
    private BigDecimal originalPrice;
    /**
     * 折扣比例,百分比
     */
    private Integer discountRatio;
    /**
     * 折扣比例,折扣
     */
    private BigDecimal discountRatioDisplay;
    /**
     * 限时折扣开始时间
     */
    private Date discountStartTime;
    /**
     * 限时折扣结束时间
     */
    private Date discountEndTime;
    /**
     * 限时折扣,限制购买数量,0不限制
     */
    private Integer perUserBuyNum;
    /**
     * 折扣价
     */
    private BigDecimal discountPrice;

    private List<PreferentialUnitPriceVO> preferentialUnitPrices;// 单价优惠

    private List<GoodsPackageVO> goodsPackageList;// 联合医药列表

    private List<PreferentialGiftVO> preferentialGifts;// 赠送商品列表
    private String preferentialGiftNameDisplay;// 前端展示的赠品名称,按照;分隔
    private Integer preferentialGiftNumDisplay;// 前端展示的满*件,赠送

    private BigDecimal savePrice;// 我的收藏展示用,立省**元

    private Integer orderGoodsNum;// 下单专用字段;商品扣减数量

    private Integer giftGoodsId;// 下单专用字段;客户选择的赠送商品id

    private Integer giftGoodsNum;// 下单专用字段;客户选择的赠送商品数量

    private Integer actualStock;// 实际库存
    private Integer totalStock;// 总库存

    private Integer memberDiscountSavePrice;// 会员折扣立减金额
}

相关文章

  • PO-BO-DTO-VO-DAO实际应用

    PO 实体类对象:对应数据库的字段DTO是数据传递对象:控制器接收前端数据模型,然后传递给serviseBO 业务...

  • TCP 实际应用

    在 浅谈 TCP 介绍了 TCP 基础的理论知识,这篇主要介绍 TCP 的一些应用场景,主要包括(SYN Floo...

  • NSDate实际应用

    1. 获得当前的时间(NSDate): + (NSDate *)currentDate { NSDate *dat...

  • RunTime实际应用

    一. RunTime简介 RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是...

  • NSProxy 实际应用

    NSProxy An abstract superclass defining an API for object...

  • Runtime:实际应用

    一、遍历一个类所有的成员变量,实现一键归档解档二、使用Method Swizzling 1、从全局上为项目做一些统...

  • UiPath实际应用

    【RPA之家视频教程34】执行非查询活动UiPath-在UiPath-UiPath RPA中写入插入、更新、删除查...

  • 应用文的实际应用

    应用文写作语文课程标准(2011年版)中明确要求:学写常见的应用文(5—6年级)、写常见的应用(7—9年级)。众所...

  • promise的实际应用

    1.https://www.jianshu.com/p/c85953427e54 2.回调嵌套 3.改写成promise

  • RxJava实际应用案例

    前言 上一篇文章,我们已经了解了RxJava的相关概念以及基础使用方式。这篇文章将会结合RxJava知识点与开发中...

网友评论

      本文标题:PO-BO-DTO-VO-DAO实际应用

      本文链接:https://www.haomeiwen.com/subject/bauinktx.html