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;// 会员折扣立减金额
}
网友评论