提交 1aec4c41 作者: 张小凤

Merge branch 'master' into develop

package com.mmc.pms.common;
/**
* @Author small
* @Date 2023/5/15 14:29
* @Version 1.0
*/
public interface BaseErrorInfoInterface {
/**
* 错误码
*
* @return
*/
String getResultCode();
/**
* 错误描述
*
* @return
*/
String getResultMsg();
}
package com.mmc.pms.common;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/15 14:28 @Version 1.0
*/
// @Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel("统一返回对象")
// @ApiModel(value = "com.mmc.result.ResultBody", description = "请求响应体")
public class ResultBody<T> implements Serializable {
private static final long serialVersionUID = 6341937455634693363L;
/** 响应代码 */
@ApiModelProperty(name = "code", value = "响应码", required = true, example = "200", position = 0)
private String code;
/** 响应消息 */
@ApiModelProperty(
name = "message",
value = "响应消息",
required = true,
example = "操作成功",
position = 1)
private String message;
/** 响应结果 */
@ApiModelProperty(name = "result", value = "返回结果集", required = true, example = "{}", position = 2)
private T result;
public ResultBody(BaseErrorInfoInterface errorInfo) {
this.code = errorInfo.getResultCode();
this.message = errorInfo.getResultMsg();
}
/**
* 成功
*
* @return
*/
public static ResultBody success() {
return success(null);
}
/**
* 成功
*
* @param data
* @return
*/
public static <T> ResultBody success(T data) {
ResultBody rb = new ResultBody();
rb.setCode(ResultEnum.SUCCESS.getResultCode());
rb.setMessage(ResultEnum.SUCCESS.getResultMsg());
rb.setResult(data);
return rb;
}
/**
* 成功
*
* <p>*
*/
public static ResultBody success1(ResultEnum enums) {
ResultBody rb = new ResultBody();
rb.setCode("200");
rb.setMessage(enums.getResultMsg());
rb.setResult(null);
return rb;
}
public void buildSuccess() {
this.setCode(ResultEnum.SUCCESS.getResultCode());
this.setMessage(ResultEnum.SUCCESS.getResultMsg());
}
/** 失败 */
public static ResultBody error(BaseErrorInfoInterface errorInfo) {
ResultBody rb = new ResultBody();
rb.setCode(errorInfo.getResultCode());
rb.setMessage(errorInfo.getResultMsg());
rb.setResult(null);
return rb;
}
/** 失败 */
public static ResultBody error(String code, String message) {
ResultBody rb = new ResultBody();
rb.setCode(code);
rb.setMessage(message);
rb.setResult(null);
return rb;
}
/** 失败 */
public static ResultBody error(ResultEnum enums) {
ResultBody rb = new ResultBody();
rb.setCode(enums.getResultCode());
rb.setMessage(enums.getResultMsg());
rb.setResult(null);
return rb;
}
/** 失败 */
public static ResultBody error(String message) {
ResultBody rb = new ResultBody();
rb.setCode("-1");
rb.setMessage(message);
rb.setResult(null);
return rb;
}
/** 失败 */
public static ResultBody error(ResultEnum enums, Object data) {
ResultBody rb = new ResultBody();
rb.setCode(enums.getResultCode());
rb.setMessage(enums.getResultMsg());
rb.setResult(data);
return rb;
}
public static boolean isSuccess(ResultBody res) {
return res.getCode().equals(ResultEnum.SUCCESS.getResultCode());
}
@Override
public String toString() {
return JSONObject.toJSONString(this);
}
}
package com.mmc.pms.common;
/**
* @Author small
* @Date 2023/5/15 14:30
* @Version 1.0
*/
public enum ResultEnum implements BaseErrorInfoInterface {
// 数据操作错误定义
SUCCESS("200", "success"), BODY_NOT_MATCH("400", "请求的数据格式不符!"), SIGNATURE_NOT_MATCH("401", "请求的数字签名不匹配!"),
NOT_FOUND("404", "未找到该资源!"), INTERNAL_SERVER_ERROR("500", "服务器内部错误!"), SERVER_BUSY("503", "服务器正忙,请稍后再试!"),
FILE_UPLOAD_ERROR("600", "文件上传有误"), FILE_UPLOAD_NULL_ERROR("601", "上传的文件不能为空"),
TOKEN_EXPIRED_ERROR("602", "登录信息已过期,请重新登录"), TOKEN_INVALID_ERROR("603", "无效的登录信息"),
VERIFY_CODE_ERROR("604", "验证码错误,请重新输入"), TOKEN_REDIS_ERROR("605", "登录失效"),
AUTH_ACCOUNT_ERROR("606", "当前账号未授权,请先授权"), TOEKN_REPEAT_ERROR("607", "该账号已在其他设备登录,请重新登录"),
TOKEN_NOT_VALID_ERROR("608", "access_token已失效或access_token不是最新的"),
SCHEDULE_SYS_ERROR("703", "系统定时任务执行错误"),
FORM_REPEAT_ERROR("704", "操作次数频繁,请稍后重试"), DATA_VERSION_ERROR("705", "数据写入版本不一致,请稍后重试。"),
REQUEST_PARAM_ILLEGAL_ERROR("706", "请求参数非法"),
DATA_INSERT_ERROR("707", "数据插入失败"),
SCORE_RELEASE_ERROR("708", "积分发放失败,请重试或联系管理员!"),
ENTRY_INTO_FORCE_TIME_SET_ERROR("709", "生效时间不能小于当前时间!"),
INFO_NO_EXISTENCE_OR_STATUS_ERROR("710", "信息不存在或状态有误!"),
// 业务操作错误定义
CUSTOM_ERROR("-1", "自定义业务错误消息"),
FEIGN_ORDER_SERVLET_ERROR("4001", "访问订单服务失败"), FEIGN_USER_SERVLET_ERROR("4002", "访问用户服务失败"),
FEIGN_PAY_SERVLET_ERROR("4003", "访问消耗服务失败"),
DISABLE_ACCOUNT_TOKEN_ERROR("4004", "账号信息变更,登录失效"),
FEIGN_OPERATION_SERVLET_ERROR("4005", "访问行业服务失败"),
ADMIN_ROLE_REPEAT_ERROR("4006", "操作失败,超级管理员和运营管理员有且只有一个"),
FEIGN_FLYER_SERVLET_ERROR("4007", "访问飞手服务失败"),
FEIGN_REPOORDER_SERVLET_ERROR("4008", "访问订单服务失败"),
FEIGN_REPOPAY_SERVLET_ERROR("4009", "访问云仓消耗服务失败"),
FEIGN_REPOUSER_SERVLET_ERROR("4010", "访问云仓用户服务失败"),
FEIGN_WARE_SERVLET_ERROR("4010", "访问云仓商品服务失败"),
FEIGN_DEVICE_SERVLET_ERROR("4011", "访问云仓设备服务失败"),
CENTER_USER_SERVLET_ERROR("4012", "访问用户中心服务失败"), GATEWAY_HYSRIX_ERROR("4013", "服务器貌似在开小差~"),
FEIGN_FLYER_PAY_SERVLET_ERROR("4014", "访问飞手消耗服务失败"),
MALL_USER_SERVLET_ERROR("4015", "访问机城用户服务失败"),
PRIMARY_KEY_DEFECT("5001", "主键ID缺失"),
WALLET_NOT_FIND_ERROR("5002", "钱包账户不存在"),
PARAM_DEFECT("5004", "参数缺失"),
LOGIN_ACCOUNT_NOT_EXIT_ERROR("5005", "账号不存在"),
LOGIN_PASSWORD_ERROR("5006", "密码错误"),
LOGIN_ACCOUNT_STATUS_ERROR("5008", "外部访问"),
OPERATE_USER_ORDERCOUNT_ERROR("5007", "当前账号有存在相关订单未关闭"),
WALLET_CASH_NOT_ENOUGH_ERROR("5009", "现金余额不足"),
AMT_PAID_VERITY_ERROR("5010", "变更额度不在有效范围"),
CREDIT_NOT_ENOUGH_ERROR("5011", "信用余额不足,当前信用余额:"),
CREDIT_METHOD_ERROR("5012", "变更类型有误"),
CREDIT_OWED_BEGGER_ERROR("5013", "归还额度不可超过剩余欠款,当前剩余欠款:"),
CASH_ADD_OWED_ERROR("5014", "该账号仍有剩余欠款,请先将全部欠款归还后,再进行充值。"),
WALLET_CREDIT_NOT_ENOUGH_ERROR("5015", "信用余额不足"),
ORDER_PAY_FORMAT_ERROR("5016", "现金和信用金额不能同时为空"),
WALLET_CASH_FREEZE_NOT_ENOUGH_ERROR("5017", "现金的冻结余额不足"),
WALLET_CREDIT_FREEZE_NOT_ENOUGH_ERROR("5018", "信用的冻结余额不足"),
ORDER_CASH_FREEZE_NOT_FIND_ERROR("5019", "现金的冻结余额不存在"),
ORDER_CREDIT_FREEZE_NOT_FIND_ERROR("5019", "信用的冻结余额不存在"),
WALLET_BANLANCE_NOT_ENOUGH_ERROR("5020", "现金和信用的余额不足"),
WALLET_FREEZE_NOT_ENOUGH_ERROR("5020", "现金和信用的冻结余额不足"),
CREDIT_REPEAT_NULL_ERROR("5021", "欠款归还不能为空"),
CREDIT_CHANGE_NULL_ERROR("5021", "信用余额变更不能为空"),
ORDER_TOTAL_COST_ERROR("5022", "结算金额不能大于预支付的金额"),
ORDER_PAY_NOT_ENOUGH_ERROR("5023", "总余额不足,订单无法结算"),
NOT_MENU_POWER_ERROR("5024", "当前账号无平台使用权限"),
OPENID_NOT_FIND_ERROR("5025", "OPENID未注册,请登录授权后调用"),
PASSWORD_INCONSISTENT("5026", "新密码与确认密码不一致,请确认一致"),
WX_ACCESS_TOKEN_ERROR("5027", "获取微信AccessToken失败"),
WX_NOT_REL_ERROR("5028", "获取微信公众号用户信息失败"),
WX_NOT_SEND_MSG_PARAM_ERROR("5029", "userId和openId至少一个不为空"),
APPLET_QR_CODE_CREATE_ERROR("5030", "生成小程序码错误:"),
APPLET_USER_ACCESS_TOKE_ERROR("5031", "获取accessToken签名校验失败"),
REBATE_AMT_NOT_MIN_ERROR("5032", "金额不足300元无法提现,300元为最低门槛"),
REBATE_AMT_NOT_ENOUGH_ERROR("5033", "申请失败,超过可提现的金额"),
BANK_INFO_NOT_SAVE_ERROR("5034", "请先完善收款账号,才可以申请提现"),
REBATE_APPLY_STATUS_ERROR("5035", "提现状态有误"),
REBATE_INFO_NOT_FIND_ERROR("5036", "提现申请单信息不存在"),
REBATE_FAIL_EXIT_ERROR("5037", "你的收款账号信息有误,请修改信息后重新申请提现。"),
REBATE_AMT_FORMAT_ERROR("5038", "提现金额必须大于0元"),
REBATE_REPEAT_CHECK_ERROR("5039", "提现申请单已被审批,切勿重复审批。"),
CHOOSE_FLYER_NUM_ERROR("5040", "请至少选中一个飞手。"),
CHOOSE_FLYER_MORE_NUM_ERROR("5041", "暂只支持一个订单只能指派一个飞手。"),
ORDER_NO_EXIT_ERROR("5042", "订单信息不存在。"),
ORDER_STATUS_ERROR("5043", "订单状态流程有误。"),
INTERFACE_NOT_INVAILD("5044", "接口已废弃或不存在"),
PAPER_CODE_NOT_INVAILD("5045", "接口已废弃或不存在"),
PHONE_INVAILD_ERROR("5046", "无效的手机号"),
TIME_CODE_INVAILD_ERROR("5047", "无效的时间编码"),
REPEACT_COMMIT_ERROR("5048", "已提交,切勿重复提交"),
IMPORT_EXCEL_ERROR("5049", "excel导入失败"),
REQ_SMS_CODE_ERROR("5050", "注册码格式有误"),
SKU_NOT_PRICE_ERROR("5051", "当前SKU未配置价格"),
SKU_NOT_ENOUGH_ERROR("5052", "套餐(sku)数量不足"),
LEASE_DATE_MATH_ERROR("5053", "租期开始日不能大于结束日"),
ADD_LEASE_ADDR_ERROR("5054", "请选择收货方式"),
SHOP_NEED_PHONE_ERROR("5055", "门店自取需要您的联系电话,请填写联系电话"),
ORDER_POWER_ERROR("5056", "订单不存在或你无权操作该订单"),
ORDER_AUTH_ERROR("5057", "请完成认证再下单"),
EXPRESS_RETURN_ERROR("5058", "请完善物流单号和物流公司"),
SHOP_RETURN_ERROR("5059", "请选择门店"),
ORDER_REFUND_EXIT_ERROR("5060", "该订单已提交过退款申请,请勿重复申请。"),
ORDER_EXPRESS_ERROR("5061", "获取订单物流信息有误。"),
ORDER_PAY_JOB_ERROR("5062", "执行定时任务有误"),
NO_AUTH_ORDER_ERROR("5063", "请完成企业认证或实名认证后再进行下单"),
WARE_NOT_ENOUGH_ERROR("5064", "商品数量不足"),
EX_INFO_ERROR("5065", "物流信息不完善"),
NOT_REAL_AUTH_ERROR("5066", "请完成实名认证后再进行操作"),
REBATE_NOT_ENOUGH_ERROR("5067", "提现申请金额需在10至8000元范围之内"),
MORE_THAN_LIMIT_ERROR("5067", "提现申请金额需在0.1至98000元范围之内"),
FLYER_ENT_MORE_THAN_LIMIT_ERROR("50670", "飞手机构用户银行卡单笔最低10元,最高100,000元"),
FLYER_MORE_THAN_LIMIT_ERROR("50671", "飞手个人用户银行卡单笔最低10元,最高5,000元"),
MORE_THAN_LIMIT_TODAY_ERROR("50672", "单个账户每月提现额度为100,000元"),
SYSTEM_AMT_NOT_ENOUGH_ERROR("5068", "系统处理中,请稍后再试。"),
FEIGN_XZH_SERVLET_ERROR("5069", "访问线上支付接口服务失败"),
XZH_SERVLET_ERROR("5070", "调用线上支付失败:"),
XZH_FAIL_ERROR("5071", "支付服务失败:"),
REFUSE_COUNT_ERROR("5072", "今日拒绝的次数已达上限,暂不可参与抢单"),
APPLY_ORDER_COUNT_ERROR("5073", "请勿重复接单"),
ORDER_ARRIVE_ERROR("5074", "抢单失败,订单已被指派"),
REST_APPLY_ORDER_ERROR("5075", "请先开启接单状态后再进行抢单"),
EVALUATED_ERROR("5076", "您已经评价过啦!"),
BACKET_TYPE_ERROR("5077", "红包类型有误"),
BACKET_NOT_ENOUGH_ERROR("5078", "红包已被抢光"),
USER_PHONE_AUTH_ERROR("5079", "请授权登录后领取"),
TOKEN_REQUIRED_ERROR("5080", "Please bring a token"),
UNIONID_NOT_ERROR("5081", "UnionId不能为空"),
OPENID_NOT_ERROR("5081", "云享飞openid、云飞手openid、云仓openid、无人机城openid至少要有一个"),
NO_EVALUATED_ERROR("5090", "暂无评价信息!"),
DAY_NUM_ERROR("5091", "天数有误"),
TASK_TYPE_ERROR("5092", "您的账号类型为个人飞手,只能抢任务人数1人的订单。"),
TASK_FLYER_COUNT_LESS_ERROR("5093", "机构认证的飞手多于任务需要的飞手才可以抢单。"),
FLYER_REBATE_ERROR("5094", "提现失败,请稍后重试"),
OPERATION_SYS_ERROR("5095", "操作失败,请稍后重试"),
WAG_CHECK_STATUS_ERROR("5096", "操作失败,未通过或待确认状态才能进行重新编辑"),
EXPORT_NO_DATA_ERROR("5097", "查询到当前符合条件的数据为0条"),
WAG_ZERO_ERROR("5098", "工资抵扣后当月工资不能少于0元"),
WAG_REPEAT_DATE_ERROR("5099", "操作失败,工资日期重复:"),
BUY_NUM_ERROR("5100", "购买数量必须大于0"),
SHOP_CAR_ERROR("5101", "购物车信息不存在"),
GOODS_VERSION_ERROR("5102", "操作失败,当前商品已经发生信息变更,请刷新后重试"),
WAG_DETAIL_COUNT_ERROR("5103", "账单天数必须大于0"),
WAG_TERM_PARAM_ERROR("5104", "飞手工资、结算基数、操作三个选项必须填一个"),
IMPORT_PARAM_ERROR("5105", "导入的数据行不能为空或者格式错误"),
SHOP_GOODS_NOT_ERROR("5106", "当前商品已下架或已删除"),
ALL_PAY_ERROR("5107", "当前订单为分期付款,请先上传尾款凭证"),
FLYER_EVLT_PARAM_ERROR("5108", "飞手评分参数有误,请检查"),
FLYER_REPEAT_BIND_ERROR("5108", "飞手已被绑定过,请勿重复绑定"),
FLYER_NUM_BIND_ERROR("5108", "飞手数量有误,本任务需要的飞手人数为:"),
FLYER_ORDER_TYPE_ERROR("5110", "飞手类型有误,该订单只允许个人飞手接单"),
FLYER_ENT_ORDER_TYPE_ERROR("5111", "飞手类型有误,该订单只允许飞手机构接单"),
PHONE_NUM_EXIT_ERROR("5112", "手机号已存在"),
FLYER_UN_BIND_ERROR("5113", "飞手已被解绑,请勿重复解绑"),
REPEAT_NOTIFICATION("5114", "您已对此订单进行过催付款操作"),
FLYER_WORK_ERROR("5115", "指派飞手失败,飞手休息中:"),
DISABLE_APPLY_ORDER_ERROR("5116", "当前时间此订单不可抢"),
COMPANY_EXIT_ERROR("5117", "单位名称已存在"),
COMPANY_NOT_BIND_ERROR("5118", "未绑定单位,请先绑定单位"),
COMPANY_REMOVE_ERROR("5119", "删除失败,请先移除该单位的账号信息"),
COMPANY_REMOVE_CHILD_ERROR("5120", "删除失败,请先移除该单位的子级单位"),
EXIST_THE_SAME_GOODS_ERROR("5121", "购物车已存在您选择的商品"),
// clientOAuth
OAUTH_CLIENT_NOT_FOUND("6404", "client_id不存在或已注销"),
OAUTH_SECRET_ERROR("6405", "client_secret有误"),
OAUTH_AUTHORIZE_ERROR("6406", "当前账号未获得任何授权,请确认"),
OAUTH_API_AUTH_ERROR("6407", "当前资源未被授权"),
OAUTH_CREATE_TOKEN_ERROR("6408", "系统内部错误,获取accessToken失败,"),
PWD_CREATE_ERROR("6001", "创建密码失败"),
PWD_CONPARED_ERROR("6002", "密码错误"), PWD_ALERT_ERROR("6003", "密码不一致"),
PWD_REQUEST_AUTH_ERROR("6003", "密码请求验证"),
APPLET_PORT_TYPE_ERROR("7001", "小程序端口类型错误"),
APPLET_GET_OPENID_ERROR("7002", "获取小程序openid失败"),
UPDATE_USER_ACCOUNT_REPEAT("7003", "修改后的账户名已存在"), ADD_USER_ACCOUNT_NAME_EXISTS("7004", "新增账户名已经存在"),
ACCOUNT_NOT_FIND_ERROR("8000", "账号信息不存在"),
REPEAT_SOFT_DELETE("8001", "账号已删除"),
ADMIN_ROLE_DELETE_ERROR("8002", "此账号为管理员账号,禁止删除"),
ROLE_ADMIN_DELETE_ERROR("8003", "此角色为管理员角色,禁止删除"),
ROLE_NAME_REPEAT_ERROR("8004", "角色名已存在"),
ROLE_AVL_USER_DELETE_ERROR("8005", "此角色尚有可用账号,请将所有账号移除后在进行操作"),
ROLE_AVL_USER_STATUS_ERROR("8006", "此角色尚有可用账号,请将所有账号禁用后在进行操作"),
ROLE_SYSTEM_DELETE_ERROR("8007", "此角色为系统角色,禁止删除"),
ADMIN_ROLE_POWER_ERROR("8008", "禁止修改管理类角色权限"), SYSTEM_ROLE_POWER_ERROR("8009", "禁止修改系统类角色权限"),
ROLE_SELF_POWER_ERROR("8010", "禁止修改与当前登录账号角色相同的角色权限"),
ADMIN_ACCOUNT_DISABLE_ERROR("8011", "此账号为管理员账号,禁用失败"),
OPERATE_USER_DEL_ERROR("8012", "该账号仍有进行中的订单需要负责,请先移交订单后再删除。"),
OPERATE_USER_DISABLED_ERROR("8013", "该账号仍有进行中的订单需要负责,请先移交订单后再禁用。"),
DELETE_USER_UNFILLED_ORDER_EXIST("9001", "平台中有此账号相关的订单,不可删除此账号"),
STOP_UNFILLED_ORDER_EXIST("9002", "平台中有此账号相关的订单正在进行中,不可停用此账号"),
ACCOUNT_ALREADY_DELETED("10001", "此账号已经被删除"),
ACCOUNT_ALREADY_STOP("10002", "此账号已经被停用,不能登录此小程序,详情请联系管理员"),
INDUSTRY_NAME_CREATE_ERROR("20001", "行业名称请勿重复,请重新输入"),
INSPECTION_NAME_CREATE_ERROR("20002", "服务名称请勿重复,请重新输入"),
INSPECTION_REPEAT("20003", "绑定服务重复"),
INDUSTRY_REPEAT("20004", "绑定行业重复"),
INSERT_INDUSTRY_SUCCESS("20005", "新增行业成功"),
UPDATE_INDUSTRY_SUCCESS("20006", "修改行业成功"),
DELETE_INDUSTRY_SUCCESS("20007", "删除行业成功"),
INSERT_INSPECTION_SUCCESS("20008", "新增服务成功"),
UPDATE_INSPECTION_SUCCESS("20009", "修改服务成功"),
DELETE_INSPECTION_SUCCESS("20010", "删除服务成功"),
SORT_PARAMETER_ERROR("28199", "排序参数错误"),
OPRATING_FREQUENCY_TOO_HIGH("28449", "更新频率过快,请重试"),
INSERT_INDUSTRY_INSPECTION_SUCCESS("20011", "添加对应服务成功"),
INSERT_INSPECTION_INDUSTRY_SUCCESS("20012", "添加对应行业成功"),
DELETE_INDUSTRY_INSPECTION_SUCCESS("20013", "删除对应服务成功"),
DELETE_INSPECTION_INDUSTRY_SUCCESS("20014", "删除对应行业成功"),
INSERT_INDUSTRY_SHELF_SUCCESS("20015", "行业上架成功"),
DELETE_INDUSTRY_SHELF_SUCCESS("20016", "行业下架成功"),
INSERT_INSPECTION_SHELF_SUCCESS("20017", "服务上架成功"),
DELETE_INSPECTION_SHELF_SUCCESS("20018", "服务下架成功"),
DELETE_INSPECTION_ERROR("20022", "该服务仍有未完成的订单,不可删除"),
INSPECTION_NOT_EXIST("20023", "很抱歉,目前该服务已下架"),
FAKE_NUM_CREATE_ERROR("20024", "输入的数据有误,请重新输入!"),
WORK_TYPE_NAME_ERROR("20026", "服务作业类型重复,请重新输入"),
EXIST_BINDING_INSPECTION_ERROR("20027", "此作业类型被服务绑定,删除失败!"),
UPLOAD_IMG_ERROR("20019", "请选择jpg,png,jpeg格式的图片"),
UPLOAD_VIDEO_ERROR("20020", "请选择MP4,avi,mov,mkv格式的视频"),
UPLOAD_DOC_ERROR("20021", "请选择doc,ppt,pdf,xls格式的文件"),
UPLOAD_IMG_LESS_3M_ERROR("20022", "请上传小于3M的图片"),
INSERT_ORDER_SUCCESS("21000", "新增订单成功"),
UPDATE_ORDER_SUCCESS("21001", "修改订单成功"),
ORDER_TRANS_SUCCESS("21002", "订单移交成功"),
ORDER_EVALUATE_SUCCESS("21003", "订单评价完成"),
ORDER_BEFORE_PAY_ERROR("21004", "订单预支付失败"),
ORDER_CLOSE_PAY_ERROR("21005", "订单结算支付失败"),
INSERT_ORDER_DETAIL_SUCCESS("21006", "新增订单动态成功"),
CHECK_USER_ERROR("22001", "用户未通过验证"),
GET_ORDER_LIST_ERROR("22002", "获取订单列表失败"),
COMMANT_CAR_NAME_EXIST("22003", "指挥车名字已存在,请重新输入"),
//认证提示
APP_CODE_ERROR("30301", "appcode 错误"),
REQUE_ENVIROMENT_ERROR("30302", "请求的 Method、Path 或者环境错误"),
REQUEST_PARAMETER_ERROR("30303", "请求参数错误"),
SERVICE_NOT_AUTHORIZED("30304", "服务未被授权(或URL和Path不正确)"),
TIMES_USED_UP("30305", "很抱歉,目前我们的实名认证次数已达上限,正在处理中,请稍后再进行认证。"),
OTHER_ERROR("30306", "其他错误/服务次数用完"),
LIVE_AUTHENTICATION_FAILED("3824", "活体认证失败"),
ID_INFO_AND_ID_card_MISMATCH("3904", "身份信息与身份证不匹配"),
LIVE_AUTHENTICATION_SUCESS("3999", "活体验证成功"),
NO_REAL_NAME("3854", "用户未实名认证"),
URL_FORMAT_ERROR("37462", "URL格式错误"),
URL_ADDRESS_ERROR("36752", "URL地址错误"),
INTERFACE_ACCESS_EXCEPTION("36894", "接口访问异常/次数用尽"),
FRONT_BACK_VAGUE("35556", "身份证正反面不明确"),
ID_CARD_THOTO_MESSAGE_ERROR("36651", "身份照信息错误"),
EXPTION_ID_CARD_THOTO_MESSAGE_ERROR("36651", "信息异常"),
PHOTO_FORMAT_ERROR("12138", "身份证图片格式错误"),
VALIDATION_INFO_EXPIRED("32815", "认证时间过长信息过期或认证信息不完整,请重新开始认证"),
REAL_IMAGE_AUTHENTICATION_SUCESS("38844", "验证成功"),
REAL_IMAGE_AUTHENTICATION_FAILED("38855", "验证失败,请再次进行人脸识别"),
IDENTITY_HAS_BEEN_AUTHENTICATED("34444", "此身份证信息已经被认证,请重试"),
REAL_NAME_ACCOUNT_ID_ERROR("36771", "账户id错误"),
REAL_NAME_FUSING_ERROR("36772", "认证失败,请重新认证"),
//企业认证
BUSINESS_LICENSE_CHECK_ANALYSIS_ERROR("30400", "营业执照解析失败,请上传有效清晰的执照"),
BUSINESS_LICENSE_CHECK_PARAMETER_ERROR("30401", "企业信息与营业执照信息不一致,请重新上传"),
BANK_ACCOUNT_CHECK1_ERROR("30402", "账号与开户名不符"),
BANK_ACCOUNT_CHECK2_ERROR("30403", "开户行名称错误"),
BANK_ACCOUNT_CHECK3_ERROR("30404", "仅支持对公账户验证,不支持个人卡"),
BANK_ACCOUNT_CHECK4_ERROR("30405", "企业账号信息有误,请重新输入"),
BANK_ACCOUNT_CHECK5_ERROR("30406", "24小时之内不能重复申请"),
BANK_ACCOUNT_CHECK6_ERROR("30407", "很抱歉,目前我们的企业认证次数已达上限,如需继续认证请及时联系相关负责人进行处理,联系方式:科比特管理人员,18938853647。"),
BANK_ACCOUNT_CHECK7_ERROR("30408", "企业名称与开户名称不一致,请确认一致后再提交认证"),
ENTERPRISE_HAVE_VERIFIED("30409", "您输入的企业信息已被其他用户认证,请重新输入"),
ID_NUMBER_PARA_ERROR("30410", "身份证号码有错,请重新输入"),
DEAL_ERROR("30411", "有报错,请联系平台客服。"),
NOT_DATA_ERROR("30412", "查无数据"),
API_STOP_USE_ERROR("30413", "接口停用"),
OFFICE_DATA_SUSTAIN_ERROR("30414", "官方数据源维护,请稍候再试"),
SERVER_SUSTAIN_ERROR("30415", "服务商维护,请稍候再试"),
PARA_ERROR("30416", "参数错误,请重新输入"),
VERIFY_COUNT_ERROR("30416", "认证次数上限,请联系管理员"),
NOT_ENT_VERIFY_ERROR("30417", "机构未认证或认证未通过,请先进行机构认证"),
NOT__VERIFY_ERROR("30418", "机构未认证或飞手认证未通过,请先进行认证"),
//渠道认证
NOT_ENT_USER("30501", "感谢您有意向成为我们的渠道商,请先完成企业认证。"),
NEW_NOT_ENT_USER("30502", "此用户未进行企业认证,渠道变更失败!"),
BEFORE_NOT_CHANNEL_USER("30503", "此用户还不是渠道"),
//飞手端认证
NOT_AUTH_FLYER_ERROR("30600", "飞手未认证,请先完成飞手认证"),
NOT_HAVE_AUTH_FLYER_ERROR("30601", "没有认证的飞手,暂不可接单"),
//设备型号提醒
DEVICE_MODEL_REPEAT_ERROR("30700", "产品名称不可重复,请重新输入"),
DEVICE_MODEL_FAILURE_ERROR("30701", "设备添加失败"),
DEVICE_MODEL_REMOVE_ERROR("30702", "设备未在仓库,删除失败"),
DEVICE_MODEL_UPDATE_ERROR("30703", "设备修改失败"),
DEVICE_HAS_BEEN_RENT_ERROR("30704", "该设备不在仓库,不能出库"),
//仓库提醒
REPO_INFO_NAME("30800", "仓库名称不可重复,请重新输入"),
REPO_INFO_FAILURE("30801", "仓库添加失败"),
REPO_INFO_REMOVE("30702", "仓库删除失败"),
//商品
WARE_NAME_HAS_BEEN_EXIST("30900", "商品名称已存在"),
WARE_TYPE_NAME_HAS_BEEN_EXIST("30901", "分类名称已存在"),
WARE_TYPE_ICON_NOT_NULL("30902", "一级分类图标不能为空"),
GROUP_DONT_DELETE("30903", "该分类下尚有商品存在"),
GOODS_STATUS_ERROR("30904", "状态有误"),
GOODS_ON_SHELF_SUCCESS("30905", "商品上架成功"),
GOODS_DOWN_SHELF_SUCCESS("30906", "商品下架成功"),
GOODS_SKU_IS_NOT_NULL("30907", "商品规格不能为空"),
GOODS_PIC_IS_NOT_NULL("30908", "主图不能为空"),
GOODS_DESC_IS_NOT_NULL("30910", "商品描述不能为空"),
GOODS_GROUP_IS_NOT_NULL("30911", "商品类型不能为空"),
GROUP_DONT_DELETE_BY_CHILD("30912", "该分类下尚有子分类存在"),
GOODS_NOT_EXIST_OR_ALREADY_DOWN_SHELF("30913", "商品不存在或已下架"),
GOODS_NAME_IS_NOT_NULL("30914", "商品名称不能为空或名字长度不能大于60"),
GOODS_DELETE_FAIL("30915", "批量删除商品失败,商品已被其他商品绑定"),
BRAND_DELETE_FAIL("30916", "删除失败,产品管理中有产品绑定该品牌名称"),
//返祖
RETURN_SHARE_ORDER_ERROR("40000", "设备返祖订单相关信息找不到,请重新输入订单号"),
RETURN_SHARE_ORDER_NOT_FINISH_ERROR("40001", "此设备的订单未完成,请添加其他设备"),
RETURN_SHARE_ORDER_HAS_BEEN_ADD_ERROR("40002", "此订单的设备已经被添加过,不能重复添加"),
//宣传中心
EXIST_SAME_NAME_OF_MODULE_ERROR("40500", "所属产品中不能有相同名字的模块"),
EXIST_SAME_NAME_OF_BANNER_ERROR("40501", "名称重复,请重新输入"),
EXIST_SAME_CODE_OF_MODULE_ERROR("40502", "moduleCode已重复,请输入其他moduleCode"),
HAS_BEEN_USE_ERROR("40503", "此标签有用户在使用,不能删除!"),
FILE_PARSE_ERROR("40600", "上传文件无数据或内容识别失败,请重新上传"),
HAS_BEEN_APPLY_ERROR("40601", "已提交申请!将有客服人员与你联系"),
PRICE_TO_HIGH_ERROR("40602", "标价确认在0-10000000万元内"),
EXIST_SAME_NAME_ERROR("40603", "快讯名称重复,请重新上传"),
TENDER_FORMAT_ERROR("40604", "招标序号或内容不能为空,请补全后上传"),
TENDER_CONTENT_TOO_LONG_ERROR("40605", "存在招标内容字符过长"),
GOODS_CATEGORY_NAME_EXIST_ERROR("40605", "名称重复,请重新输入!"),
CONTRACT_STATUS_MISTAKEN("40607", "当前合同状态不可进行编辑!"),
CONTRACT_STATUS_CANNOT_BE_DELETED("40607", "当前合同状态不可进行删除!"),
CONTRACT_NOT_EXIST("40608", "合同不存在或已删除!"),
CONTRACT_STATUS_DOES_NOT_ALLOW_FILE("40609", "该状态合同不允许归档!"),
SEAL_INFO_NOT_EXIST("40610", "请前往印章管理上传印章或设置默认印章!"),
AGENCY_NO_FLYER("40611", "机构下暂无飞手,快去招募吧~"),
NO_FLYER_WORK("40612", "现在没有飞手上班哦~"),
TEMPORARY_NOT_SUPPORT_TRANSFER_ORDER("40613", "个人订单暂不支持转单操作~"),
ELECTRONIC_SIGNATURE_NOT_REAL_NAME_AUTHENTICATION("40614", "请完成电子签约实名认证后再进行操作"),
DIRECTORY_DOES_NOT_EXIST("40615", "目录不存在或已删除"),
DEFAULT_DIRECTORY_CANNOT_BE_DEL("40616", "默认目录不可删除"),
THERE_ARE_CATEGORIES_IN_THE_DIRECTORY("40167", "该目录下有分类存在不可删除"),
DIRECTORY_NAME_HAS_BEEN_EXIST("40168", "目录名称已存在"),
FAILED_TO_ADD_DATA("40169", "数据新增失败,请稍后重试"),
FAILED_TO_EDIT_DATA("40170", "数据修改失败,请稍后重试"),
SKU_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED("40171", "sku不存在或已删除,请刷新后重试!"),
SPEC_DOES_NOT_EXIST_OR_HAS_BEEN_DELETED("40172", "规格不存在或已删除,请刷新后重试!"),
SKU_ALREADY_EXIST_IN_THIS_INDUSTRY("40173", "该所属行业下已经存在sku,请检查后重试!"),
SPEC_EXIST_UNDER_THE_SKU("40174", "该sku下有规格存在,无法删除!"),
SPEC_NOT_CONFIG_PRICE("40175", "存在规格没有配置价格,请联系客服获取报价!"),
SHOP_CAR_SIZE_MORE_2("40176", "行业购物车下单数量仅限一个"),
CONTRACT_TEMPLATE_NOT_EXIST_OR_DELETED("40177", "合同模板不存在或已删除!"),
SCORE_ERROR("40177", "您输入的积分数量有误,请重新输入!"),
PLEASE_FILL_IN_THE_CONTRACT_TEMPLATE_FIRST("40178", "请先填充合同模板!"),
SCORE_NOT_GIVE_MYSELF("40179","积分不能转赠给本人,请重新操作"),
ALREADY_FINISH_ENT_AUTH_ERROR("2000", "助力已完成!"),
SYSTEM_ERROR ("2001","系统错误,请稍后重试") ,
RULE_ERROR ("2002","当前兑换比例已失效,请刷新后重试"),
COUNT_LIMIT_ERROR("2003", "参与次数已达上线"),
ALREADY_ENT_AUTH_ERROR("2004","助力失败,您已完成企业认证!"),
ALREADY_REAL_NAME_AUTH_ERROR("2005","助力失败,您已完成实名认证!"),
PARTICIPATE_BUT_NOT_AUTH_ERROR("2006", "待完成授权或认证"),
ALREADY_HELP_ERROR("2007", "已助力"),
ALREADY_STOP_ERROR("2008", "活动已下线"),
HELP_FAIL_ERROR("2009", "不能给自己助力哦!"),
ALREADY_BINDING_ERROR("2010", "优惠券已被绑定"),
ALREADY_DIVIDE_ERROR("2011", "订单已分成"),
DIVIDE_OBJ_NOT_EXIST("2012", "先点击确认添加分成对象");
/**
* 错误码
*
* @return
*/
String resultCode;
/**
* 错误描述
*
* @return
*/
String resultMsg;
ResultEnum(String resultCode, String resultMsg) {
this.resultCode = resultCode;
this.resultMsg = resultMsg;
}
@Override
public String getResultCode() {
return resultCode;
}
@Override
public String getResultMsg() {
return resultMsg;
}
}
package com.mmc.pms.controller;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.model.dto.*;
import com.mmc.pms.model.qo.WareInfoQO;
import com.mmc.pms.model.vo.LeaseVo;
import com.mmc.pms.page.Page;
import com.mmc.pms.service.WebDeviceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @Author small @Date 2023/5/15 13:24 @Version 1.0
*/
@Api(tags = {"小程序设备租赁-接口"})
@RestController
@RequestMapping("/appDevice")
public class MiniProgramDeviceController {
@Autowired private WebDeviceService webDeviceService;
@ApiOperation(value = "地域")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/getSecondDistrictInfo")
public ResultBody getSecondDistrictInfo() {
return webDeviceService.listSecondDistrict();
}
@ApiOperation("设备类目")
@GetMapping("/category")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = DeviceCategoryDTO.class)})
public ResultBody<DeviceCategoryDTO> category() {
return webDeviceService.category();
}
@ApiOperation("品牌")
@GetMapping("/brand")
public ResultBody<BrandDTO> brand() {
return webDeviceService.brand();
}
@ApiOperation("型号")
@GetMapping("/model")
public ResultBody<ModelDTO> model() {
return webDeviceService.model();
}
@ApiOperation(value = "设备列表筛选")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = WareInfoItemDTO.class)})
@PostMapping("/deviceList")
public ResultBody<WareInfoItemDTO> listWareInfoPage(
@RequestBody @Validated(Page.class) WareInfoQO param) {
return webDeviceService.listWareInfoPage(param);
}
@ApiOperation(value = "设备详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/detail")
public ResultBody<WareInfoDTO> detail(@RequestParam(value = "id", required = true) Integer id) {
WareInfoDTO wareInfoDTO = webDeviceService.getWareInfoById(id);
return wareInfoDTO == null
? ResultBody.error(ResultEnum.NOT_FOUND)
: ResultBody.success(wareInfoDTO);
}
@ApiOperation(value = "立即租赁")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/update")
public ResultBody update(@RequestBody LeaseVo param) {
return webDeviceService.update(param);
}
}
package com.mmc.pms.controller;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.dto.AppGoodsInfoDetailDTO;
import com.mmc.pms.model.dto.GoodsInfoListDTO;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.service.MiniProgramProductMallService;
import com.mmc.pms.service.WebProductMallService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Author small @Date 2023/5/15 13:23 @Version 1.0
*/
@Api(tags = {"小程序产品商城-接口"})
@RestController
@RequestMapping("/AppProductMall/")
public class MiniProgramProductMallController {
@Autowired private WebProductMallService webProductMallService;
@Autowired private MiniProgramProductMallService miniProgramProductMallService;
@ApiOperation(value = "小程序-商品信息-分页")
@PostMapping("listPageGoodsInfo")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = GoodsInfoListDTO.class)})
public ResultBody<GoodsInfoListDTO> listPageGoodsInfo(
@ApiParam("商品查询条件QO") @RequestBody GoodsInfoQO param) {
return ResultBody.success(webProductMallService.listPageGoodsInfo(param));
}
@ApiOperation(value = "小程序端-获取商品详细信息--共多少种选择")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppGoodsInfoDetailDTO.class)})
@GetMapping("getAppGoodsInfoDetail")
public ResultBody<AppGoodsInfoDetailDTO> getAppGoodsInfoDetail(@RequestParam Integer id) {
return miniProgramProductMallService.getAppGoodsInfoDetail(id);
}
}
package com.mmc.pms.controller;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.model.dto.*;
import com.mmc.pms.model.vo.LeaseVo;
import com.mmc.pms.service.WebDeviceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Author small @Date 2023/5/15 13:25 @Version 1.0
*/
@Api(tags = {"web设备租赁-接口"})
@RestController
@RequestMapping("/webDevice")
public class WebDeviceController {
@Autowired private WebDeviceService webDeviceService;
@ApiOperation(value = "地域")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/getSecondDistrictInfo")
public ResultBody<DistrictInfoDTO> getSecondDistrictInfo() {
return webDeviceService.listSecondDistrict();
}
@ApiOperation("设备类目")
@GetMapping("/category")
public ResultBody<DeviceCategoryDTO> category() {
return webDeviceService.category();
}
@ApiOperation("品牌")
@GetMapping("/brand")
public ResultBody<BrandDTO> brand() {
return webDeviceService.brand();
}
@ApiOperation("型号")
@GetMapping("/model")
public ResultBody<ModelDTO> model() {
return webDeviceService.model();
}
@ApiOperation(value = "设备详情")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/detail")
public ResultBody<WareInfoDTO> detail(@RequestParam(value = "id", required = true) Integer id) {
WareInfoDTO wareInfoDTO = webDeviceService.getWareInfoById(id);
return wareInfoDTO == null
? ResultBody.error(ResultEnum.NOT_FOUND)
: ResultBody.success(wareInfoDTO);
}
@ApiOperation(value = "立即租赁")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/update")
public ResultBody update(@RequestBody LeaseVo param) {
return webDeviceService.update(param);
}
}
package com.mmc.pms.controller;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.dto.AppGoodsInfoDetailDTO;
import com.mmc.pms.model.dto.GoodsInfoListDTO;
import com.mmc.pms.model.dto.ProductCategoryDTO;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.service.MiniProgramProductMallService;
import com.mmc.pms.service.WebProductMallService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @Author small @Date 2023/5/15 13:24 @Version 1.0
*/
@Api(tags = {"web产品商城-接口"})
@RestController
@RequestMapping("/webProductMall")
public class WebProductMallController {
@Autowired private WebProductMallService webProductMallService;
@Autowired private MiniProgramProductMallService miniProgramProductMallService;
@ApiOperation("产品类目")
@GetMapping("/category")
public ResultBody<ProductCategoryDTO> productCategory() {
return webProductMallService.productCategory();
}
@ApiOperation("产品部件")
@GetMapping("/parts")
public ResultBody<ProductCategoryDTO> productParts() {
return webProductMallService.productParts();
}
@ApiOperation("产品成色")
@GetMapping("/quality")
public ResultBody<ProductCategoryDTO> productQuality() {
return webProductMallService.productQuality();
}
@ApiOperation(value = "小程序-商品信息-分页")
@PostMapping("listPageGoodsInfo")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = GoodsInfoListDTO.class)})
public ResultBody<GoodsInfoListDTO> listPageGoodsInfo(
@ApiParam("商品查询条件QO") @RequestBody GoodsInfoQO param) {
return ResultBody.success(webProductMallService.listPageGoodsInfo(param));
}
@ApiOperation(value = "小程序端-获取商品详细信息--共多少种选择")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = AppGoodsInfoDetailDTO.class)})
@GetMapping("getAppGoodsInfoDetail")
public ResultBody<AppGoodsInfoDetailDTO> getAppGoodsInfoDetail(@RequestParam Integer id) {
return miniProgramProductMallService.getAppGoodsInfoDetail(id);
}
}
package com.mmc.pms.dao;
import com.mmc.pms.entity.*;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.service.Impl.IndustryProductInventoryDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:14 @Version 1.0
*/
@Mapper
public interface MiniProgramProductMallDao {
GoodsInfoDO getGoodsInfoByGoodsId(Integer goodsId);
List<GoodsImgDO> listGoodsInfoByGoodsId(Integer goodsId);
GoodsDetailDO getGoodsDetailByGoodsId(Integer goodsId);
List<GoodsQaDO> listGoodsQaInfoByGoodsId(Integer goodsId);
List<GoodsServiceDO> listGoodsServiceByGoodsId(Integer goodsId);
List<MallProdSkuInfoDO> getMallProdInfoByGoodsId(Integer goodsId);
List<MallProdSkuInfoSpecDO> listMallProdSkuInfoSpec(Integer goodsId);
List<ProductSpecDO> listProductSpecInfo(List<Integer> collect);
List<MallIndustrySkuInfoDO> getMallIndustrySkuInfo(Integer goodsInfoId);
List<MallIndustrySkuInfoSpecDO> getIndustrySkuInfoSpec(Integer goodsInfoId);
int countListGoodsByQO(GoodsInfoQO param);
List<GoodsInfoDO> listGoodsByQO(GoodsInfoQO param);
List<GoodsTypeDO> listIndustryIdBySort();
List<IndustryProductInventoryDO> getIndustryProductInventory(Integer industrySpecId);
List<InventorySpecDO> listInventorySpec(List<Integer> collect);
ProductSpecDO getProductSpecDetail(Integer productSpecId);
ProductSkuDO getProductSkuDetail(Integer productSkuId);
}
package com.mmc.pms.dao;
import com.mmc.pms.entity.*;
import com.mmc.pms.model.qo.WareInfoQO;
import com.mmc.pms.model.vo.LeaseVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author small @Date 2023/5/15 14:35 @Version 1.0
*/
@Mapper
public interface WebDeviceDao {
List<DistrictDO> listSecondDistrict();
List<DeviceCategory> category();
List<Brand> brand();
List<Model> model();
List<DeviceListDO> deviceList(
Integer districtId, Integer categoryId, Integer brandId, Integer modelId);
int update(LeaseVo param);
InventoryDO findInventory(Integer inventoryId);
List<WareInfoDO> detail(Integer id);
int countListWareInfoPage(WareInfoQO param);
List<WareInfoDO> listWareInfoPage(WareInfoQO param);
WareInfoDO getWareInfoById(Integer id);
WareDetailDO getWareDetailById(Integer id);
}
package com.mmc.pms.dao;
import com.mmc.pms.entity.GoodsInfoDO;
import com.mmc.pms.entity.ProductCategory;
import com.mmc.pms.model.qo.GoodsInfoQO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author small @Date 2023/5/15 20:11 @Version 1.0
*/
@Mapper
public interface WebProductMallDao {
List<ProductCategory> productCategory();
List<ProductCategory> productParts();
List<ProductCategory> productQuality();
int countListGoodsInfo(GoodsInfoQO param);
List<GoodsInfoDO> listGoodsInfo(GoodsInfoQO param);
Integer findProduct(Integer id);
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @Author small @Date 2023/5/15 15:22 @Version 1.0
*/
@Data
public class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("添加时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime addtime;
@ApiModelProperty("最近一次编辑时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updatetime;
@ApiModelProperty("1删除")
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@TableLogic
private Integer deleted;
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mmc.pms.model.dto.BrandDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author small @Date 2023/5/15 15:34 @Version 1.0
*/
@Data
@ApiModel("品牌")
@TableName("brand")
public class Brand extends BaseEntity {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("名称")
private String name;
public BrandDTO brandDTO() {
return BrandDTO.builder().id(this.id).name(this.name).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.DeviceCategoryDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author small @Date 2023/5/15 15:03 @Version 1.0
*/
@Data
public class DeviceCategory extends BaseEntity {
@ApiModelProperty(name = "id", value = "类目id", example = "1")
private Integer id;
@ApiModelProperty(name = "id", value = "类目名称", example = "无人机")
private String name;
public DeviceCategoryDTO deviceCategory() {
return DeviceCategoryDTO.builder().id(this.id).name(this.name).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.DeviceListDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @Author small @Date 2023/5/15 17:04 @Version 1.0
*/
@Data
@ApiModel("设备列表")
public class DeviceListDO {
private Integer id;
private String deviceName;
private String imageUrl;
private String price;
private String brandName;
private String sysDistrictName;
private String modelName;
private String deviceCategoryName;
private Integer residueCount;
private Integer inventoryId;
private String appraise;
public DeviceListDTO deviceListDTO() {
return DeviceListDTO.builder()
.id(this.id)
.deviceName(this.deviceName)
.imageUrl(this.imageUrl)
.price(this.price)
.brandName(this.brandName)
.sysDistrictName(this.sysDistrictName)
.modelName(this.modelName)
.deviceCategoryName(this.deviceCategoryName)
.residueCount(this.residueCount)
.inventoryId(this.inventoryId)
.appraise(this.appraise)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.DistrictInfoDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author small
* @Date 2023/5/15 14:33
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DistrictDO implements Serializable {
private static final long serialVersionUID = 4345895963086642848L;
private Integer id;
private String name;
private Integer level;
private Integer pid;
private List<DistrictDO> childInfo;
public DistrictInfoDTO builderDistrictInfoDTO(){
return DistrictInfoDTO.builder()
.id(this.id)
.name(this.name)
.level(this.level)
.pid(this.pid)
.childInfo(CollectionUtils.isEmpty(this.childInfo)?null:this.childInfo.stream().map(d->{return d.builderDistrictInfoDTO();}).collect(Collectors.toList()))
.build();
}
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 13:38 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoodsConfigExportDO implements Serializable {
private static final long serialVersionUID = -165522550874242214L;
private Integer id;
private Integer goodInfoId;
private String inventory;
private String functionConfig;
private Date createTime;
private Date updateTime;
private Integer deleted;
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsDetailInfoDTO;
import com.mmc.pms.model.vo.GoodsDetailVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:11 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class GoodsDetailDO implements Serializable {
private Integer id;
private Integer goodsInfoId;
private String goodsDesc;
private String content;
private String remark;
private Date createTime;
private Date updateTime;
public GoodsDetailDO(GoodsDetailVO goodsDetailVO) {
this.goodsDesc = goodsDetailVO.getGoodsDesc();
this.content = goodsDetailVO.getProductDesc();
this.remark = goodsDetailVO.getRemark();
}
public GoodsDetailInfoDTO buildGoodsDetailInfoDTO() {
return GoodsDetailInfoDTO.builder()
.id(this.id)
.goodsDesc(this.goodsDesc)
.content(this.content)
.remark(this.remark)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsImgDTO;
import com.mmc.pms.model.vo.GoodsImgVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:10 @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class GoodsImgDO implements Serializable {
private Integer id;
private Integer goodsInfoId;
private String imgUrl;
private Integer imgType;
private Integer deleted;
private Date createTime;
public GoodsImgDO(GoodsImgVO d) {
this.imgUrl = d.getImgUrl();
this.imgType = d.getImgType();
}
public GoodsImgDTO buildGoodsImgDTO() {
return GoodsImgDTO.builder().id(this.id).imgUrl(this.imgUrl).imgType(this.imgType).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.AppGoodsInfoDTO;
import com.mmc.pms.model.dto.GoodsInfoListDTO;
import com.mmc.pms.model.vo.CategoryParamAndValueVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 13:33 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class GoodsInfoDO implements Serializable {
private static final long serialVersionUID = -1329342381196659417L;
private Integer id;
private Integer pid;
private String goodsNo;
private String goodsName;
private Integer masterTypeId;
private Integer slaveTypeId;
private Integer shelfStatus;
private Integer skuNum;
private Integer deleted;
private Date createTime;
private Date updateTime;
private Integer goodsAttr;
private String ecoLabel;
private Integer goodsCategoryId;
private Integer repoId;
private Integer shareFlyServiceId;
private Integer goodsType;
private Integer sort;
private Integer showCode;
private Integer standardProduct;
private String tag;
/** 辅助字段-start */
private String videoUrl;
private Integer goodsVideoId;
private String goodsDesc;
private GoodsVideoDO goodsVideoDO;
private String mainImg; // 主图
private GoodsTypeDO goodsMasterType;
private GoodsTypeDO goodsSlaveType;
private String remark; // 底部备注
private Integer sortTypeId;
private List<CategoryParamAndValueVO> paramAndValue;
private GoodsConfigExportDO goodsConfigExport; // 功能清单
private Integer buyNum; // 购买数量
private String directoryName;
private Integer isCoupons;
public GoodsInfoListDTO buildGoodsInfoListDTO() {
return GoodsInfoListDTO.builder()
.id(this.id)
.goodsName(this.goodsName)
.status(this.shelfStatus)
.createTime(this.createTime)
.imgUrl(this.mainImg)
.directoryId(this.sortTypeId)
.directoryName(this.directoryName)
.goodsOneLevelTypeName(this.goodsMasterType.getTypeName())
.goodsTwoLevelTypeName(this.goodsSlaveType.getTypeName())
.isCoupons(this.isCoupons)
.build();
}
public AppGoodsInfoDTO buildAppGoodsInfoDTO() {
return AppGoodsInfoDTO.builder()
.id(this.id)
.goodsName(this.goodsName)
.mainImg(this.mainImg)
.goodsDesc(this.goodsDesc)
.shelfStatus(this.shelfStatus)
.goodsAttr(this.goodsAttr)
.ecoLabel(this.tag)
.showCode(this.showCode)
.sort(this.sort)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsQaDTO;
import com.mmc.pms.model.vo.GoodsQaVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:23 @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class GoodsQaDO implements Serializable {
private Integer id;
private Integer goodsInfoId;
private String question;
private String answer;
private Integer deleted;
private Date updateTime;
private Date createTime;
public GoodsQaDO(GoodsQaVO goodsQaVO) {
this.question = goodsQaVO.getQuestion();
this.answer = goodsQaVO.getAnswer();
}
public GoodsQaDTO buildGoodsQaDTO() {
return GoodsQaDTO.builder().id(this.id).answer(this.answer).question(this.question).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsOtherServiceDTO;
import com.mmc.pms.model.dto.GoodsServiceDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:25 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GoodsServiceDO implements Serializable {
private static final long serialVersionUID = -2612831712612727210L;
private Integer id;
private Integer goodsInfoId;
private Integer saleServiceId;
private Date createTime;
/** 辅助字段-start */
private String serviceName;
private String remark;
/** 辅助字段-end */
public GoodsServiceDTO buildGoodsServiceDTO() {
return GoodsServiceDTO.builder()
.id(this.id)
.saleServiceId(this.saleServiceId)
.goodsInfoId(goodsInfoId)
.serviceName(serviceName)
.remark(remark)
.build();
}
public GoodsOtherServiceDTO buildGoodsOtherServiceDTO() {
return GoodsOtherServiceDTO.builder()
.id(this.id)
.saleServiceId(this.saleServiceId)
.serviceName(this.serviceName)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.vo.GoodsGroupVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 13:34 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GoodsTypeDO implements Serializable {
private Integer id;
private Integer pid;
private Integer sortTypeId;
private String typeName;
private String description;
private Integer sort;
private String icon;
private String remark;
private Integer deleted;
private Date updateTime;
private Date createTime;
/** 辅助字段-start */
private GoodsTypeDO slaveType;
/** 辅助字段-end */
public GoodsTypeDO(GoodsGroupVO goodsGroupVO) {
this.sortTypeId = goodsGroupVO.getSortTypeId();
this.typeName = goodsGroupVO.getGroupName();
this.pid = goodsGroupVO.getPid();
this.description = goodsGroupVO.getDescription();
this.icon = goodsGroupVO.getIcon();
this.remark = goodsGroupVO.getRemark();
}
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 13:34 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class GoodsVideoDO implements Serializable {
private Integer id;
private Integer goodsInfoId;
private String videoUrl;
private Integer videoType;
private Integer deleted;
private Date createTime;
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.MallIndustrySpecDTO;
import com.mmc.pms.model.vo.IndustrySpecVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:35 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IndustrySpecDO implements Serializable {
private static final long serialVersionUID = 8701065950780976397L;
private Integer id;
private Integer industrySkuId;
private String specName;
private String specImage;
private Date createTime;
private Date updateTime;
private Integer deleted;
private String solutionName;
public IndustrySpecDO(IndustrySpecVO param) {
this.id = param.getId();
this.industrySkuId = param.getIndustrySkuId();
this.specName = param.getSpecName();
this.specImage = param.getSpecImage();
}
/* public IndustrySpecDTO buildIndustrySpecDTO() {
return IndustrySpecDTO.builder()
.id(this.id)
.industrySkuId(this.industrySkuId)
.specImage(this.specImage)
.specName(this.specName)
.createTime(this.createTime)
.build();
}*/
public MallIndustrySpecDTO buildMallIndustrySpecDTO() {
return MallIndustrySpecDTO.builder()
.industrySpecId(this.id)
.industrySkuId(this.industrySkuId)
.specImage(this.specImage)
.specName(this.specName)
.build();
}
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 18:16 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class InventoryDO {
private static final long serialVersionUID = 4345895963086642848L;
private Integer id;
private Integer allCount;
private Integer residueCount;
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:39 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class InventorySpecDO implements Serializable {
private static final long serialVersionUID = 8701065950780976397L;
private Integer id;
private Integer industryProductInventoryId;
private Integer productSpecId;
private Integer productSkuId;
private Integer deleted;
private Integer createTime;
private Integer updateTime;
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsSpecDTO;
import com.mmc.pms.model.vo.GoodsSpecVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:33 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MallIndustrySkuInfoDO implements Serializable {
private static final long serialVersionUID = 1492322282696261487L;
private Integer id;
private Integer goodsInfoId;
private Integer industrySkuId;
private String industrySkuSpecName;
private Integer goodsTypeId;
private Integer chooseType;
private Integer must;
private Integer skuUnitId;
private Integer deleted;
private Date createTime;
private Date updateTime;
/** 辅助字段start */
private String typeName;
private String unitName;
private String industrySkuName;
/** 辅助字段end */
public MallIndustrySkuInfoDO(GoodsSpecVO goodsSpecVO) {
this.industrySkuId = goodsSpecVO.getSkuId();
this.chooseType = goodsSpecVO.getChooseType();
this.industrySkuSpecName = goodsSpecVO.getGoodsSpecName();
this.skuUnitId = goodsSpecVO.getSkuUnitId();
this.goodsTypeId = goodsSpecVO.getGoodsTypeId();
this.must = goodsSpecVO.getMust();
}
public GoodsSpecDTO buildGoodsSpecDTO() {
return GoodsSpecDTO.builder()
.id(this.id)
.goodsSpecName(this.industrySkuSpecName)
.goodsTypeId(this.goodsTypeId)
.chooseType(this.chooseType)
.skuUnitId(skuUnitId)
.unitName(this.unitName)
.skuId(this.industrySkuId)
.typeName(this.typeName)
.skuName(this.industrySkuName)
.must(must)
.build();
}
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:35 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MallIndustrySkuInfoSpecDO implements Serializable {
private static final long serialVersionUID = 3405592933624268700L;
private Integer id;
private Integer mallIndustrySkuInfoId;
private Integer industrySpecId;
private Integer goodsInfoId;
private Integer deleted;
private Date createTime;
private Date updateTime;
private String goodsName;
private IndustrySpecDO industrySpecDO;
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsSpecDTO;
import com.mmc.pms.model.vo.GoodsSpecVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:26 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MallProdSkuInfoDO implements Serializable {
private static final long serialVersionUID = 3667714765929443857L;
private Integer id;
private Integer goodsInfoId;
private Integer prodSkuId;
private String prodSkuSpecName;
private Integer goodsTypeId;
private Integer chooseType;
private Integer must;
private Integer skuUnitId;
private Integer deleted;
private Date createTime;
private Date updateTime;
private Integer flag;
/** 辅助字段 start */
private String typeName;
private String unitName;
private String productSkuName;
private Integer brandInfoId;
/** 辅助字段 end */
public MallProdSkuInfoDO(GoodsSpecVO goodsSpecVO) {
this.goodsTypeId = goodsSpecVO.getGoodsTypeId();
this.prodSkuSpecName = goodsSpecVO.getGoodsSpecName();
this.chooseType = goodsSpecVO.getChooseType();
this.skuUnitId = goodsSpecVO.getSkuUnitId();
this.must = goodsSpecVO.getMust();
this.flag = goodsSpecVO.getFlag();
}
public GoodsSpecDTO buildGoodsSpecDTO() {
return GoodsSpecDTO.builder()
.id(this.id)
.goodsSpecName(this.prodSkuSpecName)
.goodsTypeId(this.goodsTypeId)
.chooseType(this.chooseType)
.skuUnitId(skuUnitId)
.unitName(this.unitName)
.skuId(this.prodSkuId)
.typeName(this.typeName)
.must(must)
.skuName(this.productSkuName)
.brandInfoId(brandInfoId)
.flag(flag)
.build();
}
}
package com.mmc.pms.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:30 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MallProdSkuInfoSpecDO implements Serializable {
private static final long serialVersionUID = -8247363408322497387L;
private Integer id;
private Integer mallProdSkuInfoId;
private Integer goodsInfoId;
private Integer productSpecId;
private Integer deleted;
private Date createTime;
private Date updateTime;
private String goodsName;
private ProductSpecDO productSpecDO;
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mmc.pms.model.dto.ModelDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author small @Date 2023/5/15 16:12 @Version 1.0
*/
@Data
@TableName("model")
@ApiModel("型号")
public class Model {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("型号名称")
private String name;
public ModelDTO modelDTO() {
return ModelDTO.builder().id(this.id).name(this.name).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.ProductCategoryDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author small @Date 2023/5/15 20:26 @Version 1.0
*/
@Data
@ApiModel("产品类目")
public class ProductCategory {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("产品名称")
private String name;
public ProductCategoryDTO productCategoryDTO() {
return ProductCategoryDTO.builder().id(this.id).name(this.name).build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.GoodsProductSkuDTO;
import com.mmc.pms.model.dto.GoodsProductSkuVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 16:29 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ProductSkuDO implements Serializable {
private static final long serialVersionUID = -2830786012593215477L;
private Integer id;
private String productName;
private Integer goodsTypeId;
private String model;
private String productBrand;
private Date createTime;
private Date updateTime;
private Integer brandInfoId;
private Integer deleted;
private Integer sortTypeId;
private Integer customize;
/** 辅助字段 begin */
private String typeName;
private String sortName;
/** 辅助字段 end */
public ProductSkuDO(GoodsProductSkuVO param) {
this.id = param.getId();
this.goodsTypeId = param.getGoodsTypeId();
this.model = param.getModel();
this.productName = param.getProductName();
this.brandInfoId = param.getProductBrandId();
this.sortTypeId = param.getDirectoryId();
}
public GoodsProductSkuDTO buildGoodsProductSkuDTO() {
return GoodsProductSkuDTO.builder()
.id(this.id)
.productName(this.productName)
.goodsTypeId(this.goodsTypeId)
.model(this.model)
.productBrand(this.productBrand)
.productBrandId(brandInfoId)
.createTime(this.createTime)
.typeName(this.typeName)
.directoryId(sortTypeId)
.directoryName(this.sortName)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.MallProductSpecDTO;
import com.mmc.pms.model.dto.ProductSpecDTO;
import com.mmc.pms.model.dto.ProductSpecVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:30 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ProductSpecDO implements Serializable {
private static final long serialVersionUID = -5476701567447257133L;
private Integer id;
private Integer productSkuId;
private String specName;
private String specImage;
private String partNo;
private String versionDesc;
private Date createTime;
private Date updateTime;
private Integer deleted;
public ProductSpecDO(ProductSpecVO param) {
this.id = param.getId();
this.productSkuId = param.getProductSkuId();
this.specName = param.getSpecName();
this.specImage = param.getSpecImage();
this.partNo = param.getPartNo();
this.versionDesc = param.getVersionDesc();
}
public ProductSpecDTO buildProductSpecDTO() {
return ProductSpecDTO.builder()
.id(this.id)
.productSkuId(this.productSkuId)
.specName(this.specName)
.specImage(this.specImage)
.partNo(this.partNo)
.versionDesc(this.versionDesc)
.createTime(this.createTime)
.build();
}
public MallProductSpecDTO buildMallProductSpecDTO() {
return MallProductSpecDTO.builder()
.productSpec(this.id)
.productSkuId(this.productSkuId)
.specName(this.specName)
.specImage(this.specImage)
.partNo(this.partNo)
.versionDesc(this.versionDesc)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.WareDetailDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 17:22 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WareDetailDO implements Serializable {
private static final long serialVersionUID = -911783253410987965L;
private Integer id;
private Integer wareInfoId;
private String content;
private Date createTime;
private Date updateTime;
public WareDetailDTO buildWareDetailDTO() {
return WareDetailDTO.builder()
.id(this.id)
.wareInfoId(this.wareInfoId)
.content(this.content)
.createTime(this.createTime)
.updateTime(this.updateTime)
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.WareImgDTO;
import com.mmc.pms.model.vo.WareImgVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 10:01 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WareImgDO implements Serializable {
private static final long serialVersionUID = -1711990559893951800L;
private Integer id;
private Integer wareInfoId;
private String imgUrl;
private Integer imgType;
private Integer deleted;
private Date createTime;
public WareImgDTO buildWareImgDTO() {
return WareImgDTO.builder()
.id(this.id)
.wareInfoId(this.wareInfoId)
.imgType(this.imgType)
.imgUrl(this.imgUrl)
.build();
}
public WareImgDO(WareImgVO d) {
this.id = d.getId();
this.imgUrl = d.getImgUrl();
this.imgType = d.getImgType();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.AppletWareInfoDTO;
import com.mmc.pms.model.dto.WareInfoDTO;
import com.mmc.pms.model.dto.WareInfoItemDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author small @Date 2023/5/16 10:00 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WareInfoDO implements Serializable {
private static final long serialVersionUID = 5530961803742843304L;
private Integer id;
private String wareNo;
private String wareTitle;
private Integer wareTypeId;
private Integer wareStatus;
private Integer payStatus;
private BigDecimal minDeposit;
private BigDecimal maxDeposit;
private BigDecimal minRent;
private BigDecimal maxRent;
private Integer totalStock;
private Integer totalSale;
private Integer skuNum;
private String tags;
private Integer deleted;
private Date createTime;
private Date updateTime;
private Integer pid;
/** 辅助字段-start */
private List<WareImgDO> wareImgs;
// private List<WareVideoDO> wareVideos;
private WarePropDO warePropDO;
private String wareDetailContent;
// private WareDetailDO wareDetailDO;
// private List<SkuInfoDO> skuInfoDOList;
/** 辅助字段-end */
public WareInfoDTO buildWareInfoDTO() {
return WareInfoDTO.builder()
.id(this.id)
.wareNo(this.wareNo)
.wareTitle(this.wareTitle)
.wareTypeId(this.wareTypeId)
.wareStatus(this.wareStatus)
.payStatus(this.payStatus)
.minDeposit(this.minDeposit)
.maxDeposit(this.maxDeposit)
.minRent(this.minRent)
.maxRent(this.maxRent)
.totalStock(this.totalStock)
.totalSale(this.totalSale)
.skuNum(this.skuNum)
.tags(StringUtils.isEmpty(this.tags) ? null : Arrays.asList(this.tags.split(",")))
.wareImgs(
CollectionUtils.isEmpty(this.wareImgs)
? null
: this.wareImgs.stream()
.map(
d -> {
return d.buildWareImgDTO();
})
.collect(Collectors.toList()))
.warePropDTO(this.warePropDO == null ? null : warePropDO.buildWarePropDTO())
.wareDetailContent(this.wareDetailContent)
.build();
}
public WareInfoItemDTO buildWareInfoItemDTO() {
return WareInfoItemDTO.builder()
.id(this.id)
.wareNo(this.wareNo)
.wareTitle(this.wareTitle)
.wareTypeId(this.wareTypeId)
.wareStatus(this.wareStatus)
.minDeposit(this.minDeposit)
.minRent(this.minRent)
.totalStock(this.totalStock)
.totalSale(this.totalSale)
.tags(StringUtils.isEmpty(this.tags) ? null : Arrays.asList(this.tags.split(",")))
.wareImgs(
CollectionUtils.isEmpty(this.wareImgs)
? null
: this.wareImgs.stream()
.map(
d -> {
return d.buildWareImgDTO();
})
.collect(Collectors.toList()))
.propInfoId(this.warePropDO.getPropInfoId())
.createTime(this.createTime)
.build();
}
public AppletWareInfoDTO buildAppletWareInfoDTO() {
return AppletWareInfoDTO.builder()
.id(this.id)
.wareNo(this.wareNo)
.wareTitle(this.wareTitle)
.wareTypeId(this.wareTypeId)
.wareStatus(this.wareStatus)
.payStatus(this.payStatus)
.minDeposit(this.minDeposit)
.minRent(this.minRent)
.totalStock(this.totalStock)
.totalSale(this.totalSale)
.skuNum(this.skuNum)
.tags(StringUtils.isEmpty(this.tags) ? null : Arrays.asList(this.tags.split(",")))
.wareImgs(
CollectionUtils.isEmpty(this.wareImgs)
? null
: this.wareImgs.stream()
.map(
d -> {
return d.buildWareImgDTO();
})
.collect(Collectors.toList()))
.build();
}
}
package com.mmc.pms.entity;
import com.mmc.pms.model.dto.WarePropDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 10:01 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WarePropDO implements Serializable {
private static final long serialVersionUID = -8305801318237157082L;
private Integer id;
private Integer wareInfoId;
private Integer propInfoId;
private String propPoster;
private Date createTime;
public WarePropDTO buildWarePropDTO() {
return WarePropDTO.builder()
.id(this.id)
.wareInfoId(this.wareInfoId)
.propInfoId(this.propInfoId)
.propPoster(this.propPoster)
.createTime(this.createTime)
.build();
}
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:55 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.AppGoodsInfoDTO", description = "小程序商品信息DTO")
public class AppGoodsInfoDTO implements Serializable {
private static final long serialVersionUID = 6104334488561632747L;
@ApiModelProperty("商品id")
private Integer id;
@ApiModelProperty("商品名称")
private String goodsName;
@ApiModelProperty("商品上架状态")
private Integer shelfStatus;
@ApiModelProperty("商品主图")
private String mainImg;
@ApiModelProperty("商品描述")
private String goodsDesc;
@ApiModelProperty("商品属性")
private Integer goodsAttr;
@ApiModelProperty("生态标签")
private String ecoLabel;
@ApiModelProperty("安全编码")
private String code;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("安全编码是否显示 0 否 1 是")
private Integer showCode;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:02 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class AppGoodsInfoDetailDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "pid")
private Integer pid;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "云享飞服务id")
private Integer shareFlyServiceId;
@ApiModelProperty(value = "云仓配件id")
private Integer repoId;
@ApiModelProperty(value = "规格信息")
private List<GoodsSpecDTO> goodsSpec;
@ApiModelProperty(value = "商品图片")
private List<GoodsImgDTO> images;
@ApiModelProperty(value = "商品视频")
private String goodsVideo;
@ApiModelProperty(value = "商品视频id")
private Integer goodsVideoId;
@ApiModelProperty(value = "商品详情")
private GoodsDetailInfoDTO goodsDetail;
@ApiModelProperty(value = "所属目录")
private Integer sortTypeId;
@ApiModelProperty(value = "一级分类id")
private Integer masterTypeId;
@ApiModelProperty(value = "二级分类id")
private Integer slaveTypeId;
@ApiModelProperty(value = "商品标签")
private String tag;
@ApiModelProperty(value = "商品状态 0:下架 1:上架")
private Integer shelfStatus;
@ApiModelProperty(value = "其他服务: 1:免费配送,2:专业飞手培训2日, 3:半年保修, 4:一年保修 ")
private List<GoodsOtherServiceDTO> otherService;
@ApiModelProperty(value = "常见问题")
private List<GoodsQaDTO> question;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small @Date 2023/5/16 10:03 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppletWareInfoDTO implements Serializable {
private static final long serialVersionUID = -8861604532607064616L;
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "商品编号")
private String wareNo;
@ApiModelProperty(value = "商品名称")
private String wareName;
@ApiModelProperty(value = "商品标题")
private String wareTitle;
@ApiModelProperty(value = "商品类型ID")
private Integer wareTypeId;
@ApiModelProperty(value = "商品状态")
private Integer wareStatus;
@ApiModelProperty(value = "减库方式")
private Integer payStatus;
@ApiModelProperty(value = "最小押金")
private BigDecimal minDeposit;
@ApiModelProperty(value = "最小租金")
private BigDecimal minRent;
@ApiModelProperty(value = "总库存数量")
private Integer totalStock;
@ApiModelProperty(value = "总销量")
private Integer totalSale;
@ApiModelProperty(value = "sku数量")
private Integer skuNum;
@ApiModelProperty(value = "标签集合")
private List<String> tags;
@ApiModelProperty(value = "商品图片集合")
private List<WareImgDTO> wareImgs;
@ApiModelProperty(value = "商品视频集合")
private List<WareVideoDTO> wareVideos;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 16:07 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BrandDTO {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("品牌名称")
private String name;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 16:02 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeviceCategoryDTO {
@ApiModelProperty(name = "id", value = "类目id", example = "1")
private Integer id;
@ApiModelProperty(name = "id", value = "类目名称", example = "无人机")
private String name;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 17:06 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeviceListDTO {
@ApiModelProperty(value = "设备id")
private Integer id;
@ApiModelProperty(value = "设备名称")
private String deviceName;
@ApiModelProperty(value = "设备图片地址")
private String imageUrl;
@ApiModelProperty(value = "价格")
private String price;
@ApiModelProperty(value = "品牌名称")
private String brandName;
@ApiModelProperty(value = "地域名称")
private String sysDistrictName;
@ApiModelProperty(value = "型号名称")
private String modelName;
@ApiModelProperty(value = "类目名称")
private String deviceCategoryName;
@ApiModelProperty(value = "剩余库存数量")
private Integer residueCount;
@ApiModelProperty(value = "库存id")
private Integer inventoryId;
@ApiModelProperty(value = "评价")
private String appraise;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author small
* @Date 2023/5/15 14:34
* @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DistrictInfoDTO implements Serializable {
private static final long serialVersionUID = 8352745384449903203L;
@ApiModelProperty(value = "地区id")
private Integer id;
@ApiModelProperty(value = "地区名称")
private String name;
@ApiModelProperty(value = "地区等级")
private Integer level;
@ApiModelProperty(value = "父id")
private Integer pid;
@ApiModelProperty(value = "地区下一级信息")
private List<DistrictInfoDTO> childInfo;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:12 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsDetailInfoDTO", description = "商品详细信息DTO")
public class GoodsDetailInfoDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "描述")
private String goodsDesc;
@ApiModelProperty(value = "富文本")
private String content;
@ApiModelProperty(value = "商品备注")
private String remark;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:07 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsImgDTO", description = "商品图片信息DTO")
public class GoodsImgDTO implements Serializable {
@ApiModelProperty(value = "图片id")
private Integer id;
@ApiModelProperty(value = "图片路径")
private String imgUrl;
@ApiModelProperty(value = "图片类型 : 0:主图 1:副图")
private Integer imgType;
}
package com.mmc.pms.model.dto;
import com.mmc.pms.entity.GoodsConfigExportDO;
import com.mmc.pms.entity.GoodsTypeDO;
import com.mmc.pms.entity.GoodsVideoDO;
import com.mmc.pms.model.vo.CategoryParamAndValueVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 13:41 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class GoodsInfoDO implements Serializable {
private static final long serialVersionUID = -1329342381196659417L;
private Integer id;
private Integer pid;
private String goodsNo;
private String goodsName;
private Integer masterTypeId;
private Integer slaveTypeId;
private Integer shelfStatus;
private Integer skuNum;
private Integer deleted;
private Date createTime;
private Date updateTime;
private Integer goodsAttr;
private String ecoLabel;
private Integer goodsCategoryId;
private Integer repoId;
private Integer shareFlyServiceId;
private Integer goodsType;
private Integer sort;
private Integer showCode;
private Integer standardProduct;
private String tag;
/** 辅助字段-start */
private String videoUrl;
private Integer goodsVideoId;
private String goodsDesc;
private GoodsVideoDO goodsVideoDO;
private String mainImg; // 主图
private GoodsTypeDO goodsMasterType;
private GoodsTypeDO goodsSlaveType;
private String remark; // 底部备注
private Integer sortTypeId;
private List<CategoryParamAndValueVO> paramAndValue;
private GoodsConfigExportDO goodsConfigExport; // 功能清单
private Integer buyNum; // 购买数量
private String directoryName;
private Integer isCoupons;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 13:29 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsInfoListDTO", description = "商品列表信息DTO")
public class GoodsInfoListDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "状态 : 0:下架 1:上架")
private Integer status;
@ApiModelProperty(value = "商品主图")
private String imgUrl;
@ApiModelProperty(value = "一级分类名称")
private String goodsOneLevelTypeName;
@ApiModelProperty(value = "二级分类名称")
private String goodsTwoLevelTypeName;
@ApiModelProperty(value = "目录名字")
private String directoryName;
@ApiModelProperty(value = "目录id")
private Integer directoryId;
@ApiModelProperty(value = "是否有优惠券 0表示没有 有就返回数字")
private Integer isCoupons;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:02 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsOtherServiceDTO", description = "其他服务信息DTO")
public class GoodsOtherServiceDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "其他服务id")
private Integer saleServiceId;
@ApiModelProperty(value = "其他服务名称")
private String serviceName;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 16:29 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GoodsProductSkuDTO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "产品名称")
private String productName;
@ApiModelProperty(value = "产品类型id")
private Integer goodsTypeId;
@ApiModelProperty(value = "产品类型名称")
private String typeName;
@ApiModelProperty(value = "型号")
private String model;
@ApiModelProperty(value = "产品品牌")
private String productBrand;
@ApiModelProperty(value = "产品品牌id")
private Integer productBrandId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "目录id")
private Integer directoryId;
@ApiModelProperty(value = "目录名称")
private String directoryName;
@ApiModelProperty(value = "产品规格信息对象")
private List<ProductSpecDTO> productSpecList;
}
package com.mmc.pms.model.dto;
import com.mmc.pms.model.vo.Create;
import com.mmc.pms.model.vo.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:05 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoodsProductSkuVO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
@NotNull(
message = "修改时id不能为空",
groups = {Update.class})
private Integer id;
@NotNull(
message = "产品名称不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "产品名称")
private String productName;
@NotNull(
message = "产品类型不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "产品类型")
private Integer goodsTypeId;
@ApiModelProperty(value = "型号")
private String model;
@ApiModelProperty(value = "产品品牌")
private String productBrand;
@ApiModelProperty(value = "品牌id")
private Integer productBrandId;
@ApiModelProperty(value = "目录id")
private Integer directoryId;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:02 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsQaDTO", description = "常见问题DTO")
public class GoodsQaDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "问题")
private String question;
@ApiModelProperty(value = "回答")
private String answer;
}
package com.mmc.pms.model.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:25 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsServiceDTO", description = "商品服务DTO")
public class GoodsServiceDTO implements Serializable {
private static final long serialVersionUID = -3178549723714411915L;
private Integer id;
private Integer saleServiceId;
private Integer goodsInfoId;
private String serviceName;
private String remark;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:03 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class GoodsSpecDTO implements Serializable {
private static final long serialVersionUID = -8681372139970849591L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "规格名称")
private String goodsSpecName;
@ApiModelProperty(value = "产品或行业类型")
private Integer goodsTypeId;
@ApiModelProperty(value = "产品或行业类型名称")
private String typeName;
@ApiModelProperty(value = "产品或行业skuId")
private Integer skuId;
@ApiModelProperty(value = "品牌id")
private Integer brandInfoId;
@ApiModelProperty(value = "产品或行业sku名称")
private String skuName;
@ApiModelProperty(value = "产品规格信息")
private List<MallProductSpecDTO> productSpecList;
@ApiModelProperty(value = "行业规格信息")
private List<MallIndustrySpecDTO> industrySpecList;
@ApiModelProperty(value = "选择方式")
private Integer chooseType;
@ApiModelProperty(value = "规格单位")
private Integer skuUnitId;
@ApiModelProperty(value = "单位名称")
private String unitName;
@ApiModelProperty(value = "是否必选")
private Integer must;
@ApiModelProperty(value = "规格来源 0获取 1自定义")
private Integer flag;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 13:35 @Version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.GoodsTypeDetailDTO", description = "分类详情DTO")
public class GoodsTypeDetailDTO implements Serializable {
private static final long serialVersionUID = 4405239380837705419L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "分类名称")
private String groupName;
@ApiModelProperty(value = "描述")
private String description;
@ApiModelProperty(value = "icon图标")
private String icon;
@ApiModelProperty(value = "总条数")
private Integer totalCount;
@ApiModelProperty(value = "商品对象")
private List<TypeGoodsInfoDTO> goodsInfo;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:04 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MallIndustrySpecDTO implements Serializable {
private static final long serialVersionUID = 5476956071052692714L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "行业规格id")
private Integer industrySpecId;
@ApiModelProperty(value = "行业skuId")
private Integer industrySkuId;
@ApiModelProperty(value = "规格名称")
private String specName;
@ApiModelProperty(value = "规格图片")
private String specImage;
@ApiModelProperty(value = "产品清单")
private List<ProductInventoryVO> productInventoryList;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package com.mmc.pms.model.dto;
import com.mmc.pms.model.vo.ProductSpecCPQVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:03 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors(chain = true)
public class MallProductSpecDTO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "产品规格id")
private Integer productSpec;
@ApiModelProperty(value = "productSkuId")
private Integer productSkuId;
@ApiModelProperty(value = "规格名称")
private String specName;
@ApiModelProperty(value = "规格图片")
private String specImage;
@ApiModelProperty(value = "料号")
private String partNo;
@ApiModelProperty(value = "版本描述")
private String versionDesc;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "价格配置信息")
private ProductSpecCPQVO productSpecCPQVO;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 16:13 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ModelDTO {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("类目名称")
private String name;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/15 20:27 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProductCategoryDTO {
@ApiModelProperty("1")
private Integer id;
@ApiModelProperty("产品名称")
private String name;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:05 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductInventoryVO implements Serializable {
private static final long serialVersionUID = -2224789550998518979L;
@ApiModelProperty(value = "是否指定 不指定0 指定1")
private Integer select;
@ApiModelProperty(value = "产品sku")
private GoodsProductSkuVO productSku;
@ApiModelProperty(value = "productSkuId")
private Integer productSkuId;
@ApiModelProperty(value = "产品规格")
private List<ProductSpecVO> productSpecList;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:30 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors
public class ProductSpecDTO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "productSkuId")
private Integer productSkuId;
@ApiModelProperty(value = "规格名称")
private String specName;
@ApiModelProperty(value = "规格图片")
private String specImage;
@ApiModelProperty(value = "料号")
private String partNo;
@ApiModelProperty(value = "版本描述")
private String versionDesc;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "价格配置")
private List<ProductSpecPriceDTO> priceList;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:31 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ProductSpecPriceDTO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "规格id")
private Integer productSpecId;
@ApiModelProperty(value = "等级标签id")
private Integer tagInfoId;
@ApiModelProperty(value = "价格")
private BigDecimal price;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package com.mmc.pms.model.dto;
import com.mmc.pms.model.vo.Create;
import com.mmc.pms.model.vo.ProductSpecCPQVO;
import com.mmc.pms.model.vo.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:06 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ProductSpecVO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
@NotNull(
message = "修改时id不能为空",
groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "productSkuId")
@NotNull(
message = "修改时productSkuId不能为空",
groups = {Create.class})
private Integer productSkuId;
@NotNull(
message = "规格名称不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "规格名称")
private String specName;
@NotNull(
message = "规格图片不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "规格图片")
private String specImage;
@NotNull(
message = "料号不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "料号")
private String partNo;
@ApiModelProperty(value = "版本描述")
private String versionDesc;
@ApiModelProperty(value = "价格配置信息")
private ProductSpecCPQVO productSpecCPQVO;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 14:05 @Version 1.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.dto.TypeGoodsInfoDTO", description = "分类下关联的商品")
public class TypeGoodsInfoDTO implements Serializable {
private static final long serialVersionUID = 7151146563536604554L;
@ApiModelProperty(value = "商品id")
private Integer goodsId;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "商品主图")
private String goodsImg;
@ApiModelProperty(value = "商品上下架状态")
private Integer shelfStatus;
@ApiModelProperty(value = "商品安全编码是否显示:0否 1是")
private Integer showCode;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 17:23 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.dto.WareDetailDTO", description = "商品详情信息DTO")
public class WareDetailDTO implements Serializable {
private static final long serialVersionUID = -5359420720425156463L;
@ApiModelProperty(value = "商品详情id")
private Integer id;
@ApiModelProperty(value = "商品id")
private Integer wareInfoId;
@ApiModelProperty(value = "商品详情内容")
private String content;
@ApiModelProperty(value = "生成时间")
private Date createTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 9:54 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.pms.model.dto.WareImgDTO", description = "设备图片DTO")
public class WareImgDTO implements Serializable {
private static final long serialVersionUID = 1195966760401573468L;
@ApiModelProperty(name = "图片ID", value = "图片ID", required = false, example = "图片ID")
private Integer id;
@ApiModelProperty(name = "商品ID", value = "商品ID", required = false, example = "商品ID")
private Integer wareInfoId;
@ApiModelProperty(
name = "图片类型:0:主图 1:副图",
value = "图片类型:0:主图 1:副图",
required = false,
example = "图片类型:0:主图 1:副图")
private String imgUrl;
@ApiModelProperty(name = "图片ID", value = "图片ID", required = false, example = "图片ID")
private Integer imgType;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small @Date 2023/5/16 10:02 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.model.dto.WareInfoDTO", description = "商品视频DTO")
public class WareInfoDTO implements Serializable {
private static final long serialVersionUID = -4916469576205012865L;
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "商品编号")
private String wareNo;
@ApiModelProperty(value = "商品标题")
private String wareTitle;
@ApiModelProperty(value = "商品类型ID")
private Integer wareTypeId;
@ApiModelProperty(value = "商品状态")
private Integer wareStatus;
@ApiModelProperty(value = "减库方式")
private Integer payStatus;
@ApiModelProperty(value = "最小押金")
private BigDecimal minDeposit;
@ApiModelProperty(value = "最大押金")
private BigDecimal maxDeposit;
@ApiModelProperty(value = "最小租金")
private BigDecimal minRent;
@ApiModelProperty(value = "最大租金")
private BigDecimal maxRent;
@ApiModelProperty(value = "总库存数量")
private Integer totalStock;
@ApiModelProperty(value = "总销量")
private Integer totalSale;
@ApiModelProperty(value = "sku数量")
private Integer skuNum;
@ApiModelProperty(value = "标签集合")
private List<String> tags;
@ApiModelProperty(value = "商品图片集合")
private List<WareImgDTO> wareImgs;
// @ApiModelProperty(value = "商品视频集合")
// private List<WareVideoDTO> wareVideos;
@ApiModelProperty(value = "商品活动对象")
private WarePropDTO warePropDTO;
@ApiModelProperty(value = "商品介绍详情")
private String wareDetailContent;
// @ApiModelProperty(value = "商品介绍详情")
// private WareDetailDTO wareDetailDTO;
// @ApiModelProperty(value = "商品sku信息")
// private List<SkuInfoDTO> skuInfoDTOList;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Author small @Date 2023/5/16 9:53 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.pms.model.dto.WareInfoItemDTO", description = "设备列表ItemDTO")
public class WareInfoItemDTO implements Serializable {
private static final long serialVersionUID = -4354269497656808831L;
@ApiModelProperty(name = "ID", value = "地域id", required = false, example = "ID")
private Integer id;
@ApiModelProperty(name = "ID", value = "商品编号", required = false, example = "商品编号")
private String wareNo;
@ApiModelProperty(name = "商品标题", value = "商品标题", required = false, example = "商品标题")
private String wareTitle;
@ApiModelProperty(name = "商品类型ID", value = "商品类型ID", required = false, example = "商品类型ID")
private Integer wareTypeId;
@ApiModelProperty(name = "商品状态", value = "商品状态", required = false, example = "商品状态")
private Integer wareStatus;
@ApiModelProperty(name = "最小押金", value = "最小押金", required = false, example = "最小押金")
private BigDecimal minDeposit;
@ApiModelProperty(name = "最小租金", value = "最小租金", required = false, example = "最小租金")
private BigDecimal minRent;
@ApiModelProperty(name = "总库存数量", value = "总库存数量", required = false, example = "总库存数量")
private Integer totalStock;
@ApiModelProperty(name = "总销量", value = "总销量", required = false, example = "总销量")
private Integer totalSale;
@ApiModelProperty(name = "商品活动属性Id", value = "商品活动属性Id", required = false, example = "商品活动属性Id")
private Integer propInfoId;
@ApiModelProperty(name = "生成时间", value = "生成时间", required = false, example = "生成时间")
private Date createTime;
@ApiModelProperty(name = "商品图片", value = "商品图片", required = false, example = "商品图片")
private List<WareImgDTO> wareImgs;
@ApiModelProperty(name = "标签集合", value = "标签集合", required = false, example = "标签集合")
private List<String> tags;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 10:02 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.dto.WarePropDTO", description = "商品活动海报信息DTO")
public class WarePropDTO implements Serializable {
private static final long serialVersionUID = 7641929218904130060L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "商品id")
private Integer wareInfoId;
@ApiModelProperty(value = "活动信息id")
private Integer propInfoId;
@ApiModelProperty(value = "活动海报")
private String propPoster;
@ApiModelProperty(value = "生成时间")
private Date createTime;
}
package com.mmc.pms.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 10:03 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.dto.WareVideoDTO", description = "商品视频DTO")
public class WareVideoDTO implements Serializable {
private static final long serialVersionUID = 8707716829904299103L;
@ApiModelProperty(value = "ID")
private Integer id;
@ApiModelProperty(value = "商品信息id")
private Integer wareInfoId;
@ApiModelProperty(value = "视频url")
private String videoUrl;
@ApiModelProperty(value = "0:主视频 1:副视频")
private Integer videoType;
}
package com.mmc.pms.model.qo;
import com.mmc.pms.model.vo.Freeze;
import com.mmc.pms.page.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @Author small @Date 2023/5/16 13:29 @Version 1.0
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.mall.vo.GoodsInfoQO", description = "商品列表查询QO")
public class GoodsInfoQO {
/*@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "一级分类id")
private Integer masterTypeId;
@ApiModelProperty(value = "二级分类id")
private Integer slaveTypeId;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "状态 0:下架(仓库中)1:上架")
private Integer status;*/
@ApiModelProperty(name = "districtId", value = "地域id", example = "1", required = false)
private Integer districtId;
@ApiModelProperty(name = "产品类目id", value = "产品类目id", example = "1", required = false)
private Integer productCategoryId;
@ApiModelProperty(name = "brandId", value = "品牌id", example = "1", required = false)
private Integer brandId;
@ApiModelProperty(name = "partsId", value = "部件id", example = "1", required = false)
private Integer partsId;
@ApiModelProperty(name = "modelId", value = "型号id", example = "1", required = false)
private Integer modelId;
@ApiModelProperty(name = "qualityId", value = "成色id", example = "1", required = false)
private Integer qualityId;
@ApiModelProperty(value = "页码", required = true)
@NotNull(
message = "页码不能为空",
groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(
message = "每页显示数不能为空",
groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
package com.mmc.pms.model.qo;
import com.mmc.pms.page.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 9:55 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.model.qo.WareInfoQO", description = "model")
public class WareInfoQO implements Serializable {
private static final long serialVersionUID = -2953141525621912414L;
@ApiModelProperty(name = "id", value = "设备id", example = "1", required = false)
private Integer id;
@ApiModelProperty(name = "districtId", value = "地域id", example = "1", required = false)
private Integer districtId;
@ApiModelProperty(name = "categoryId", value = "类目id", example = "类目id")
private Integer categoryId;
@ApiModelProperty(name = "brandIdl", value = "品牌id", example = "品牌id")
private Integer brandId;
@ApiModelProperty(name = "modelId", value = "型号id", example = "型号id")
private Integer modelId;
/*@ApiModelProperty(value = "关键字")
private String keyword;
@ApiModelProperty(value = "商品状态,出租中或仓库中")
private Integer wareStatus;
@ApiModelProperty(value = "商品类型")
private Integer wareTypeId;
@ApiModelProperty(value = "活动属性")
private Integer propInfoId;*/
@ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(message = "每页显示数不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
package com.mmc.pms.model.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author small @Date 2023/5/16 13:37 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CategoryParamAndValueVO {
private String param;
private String value;
}
package com.mmc.pms.model.vo;
/**
* @Author small @Date 2023/5/16 13:37 @Version 1.0
*/
public interface Create {}
package com.mmc.pms.model.vo;
/**
* @Author small @Date 2023/5/16 13:49 @Version 1.0
*/
public interface Freeze {}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:12 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.model.vo.GoodsDetailVO", description = "商品详情")
public class GoodsDetailVO implements Serializable {
private static final long serialVersionUID = -3842207843504795301L;
@ApiModelProperty(value = "商品描述 :70字内")
@Size(
max = 250,
message = "商品描述不能超过250个字符",
groups = {Create.class, Update.class})
private String goodsDesc;
@ApiModelProperty(value = "产品介绍")
private String productDesc;
@ApiModelProperty(value = "商品备注:100字以内")
@Size(
max = 100,
message = "商品备注不能超过100个字符",
groups = {Create.class, Update.class})
private String remark;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 13:35 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.model.vo.GoodsGroupVO", description = "商品分类")
public class GoodsGroupVO implements Serializable {
@ApiModelProperty(value = "id")
@NotNull(
message = "id不能为空",
groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "分类类型id")
@NotNull(
message = "分类类型id不能为空",
groups = {Update.class, Create.class})
private Integer sortTypeId;
@ApiModelProperty(value = "分类名称", required = true)
@Size(
max = 15,
message = "分类名称不能超过15个字",
groups = {Update.class, Create.class})
@NotNull(
message = "分类名称不能为空",
groups = {Update.class, Create.class})
private String groupName;
@ApiModelProperty(value = "pid:一级分类的pid是0 二级分类pid是一级分类id", required = true)
@NotNull(
message = "pid不能为空",
groups = {Create.class, Update.class})
private Integer pid;
@ApiModelProperty(value = "描述")
@Size(
max = 70,
message = "分类描述不能超过70个字",
groups = {Update.class, Create.class})
private String description;
@ApiModelProperty(value = "icon图标")
private String icon;
@ApiModelProperty(value = "小程序底部备注")
@Size(
max = 150,
message = "小程序底部备注不能超过150个字",
groups = {Update.class, Create.class})
private String remark;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:10 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.vo.GoodsImgVO", description = "新增/修改参数类")
public class GoodsImgVO implements Serializable {
private static final long serialVersionUID = 7742617679026160607L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "商品图片地址")
private String imgUrl;
@ApiModelProperty(value = "商品图片类型 0:主图 1:副图")
private Integer imgType;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:23 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.csf.model.vo.GoodsQaVO", description = "新增/修改参数类")
public class GoodsQaVO implements Serializable {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "问题")
private String question;
@ApiModelProperty(value = "回答")
private String answer;
}
package com.mmc.pms.model.vo;
import com.mmc.pms.model.dto.ProductSpecVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:27 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoodsSpecVO implements Serializable {
private static final long serialVersionUID = -8681372139970849591L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "规格名称")
private String goodsSpecName;
@ApiModelProperty(value = "产品类型")
private Integer goodsTypeId;
@ApiModelProperty(value = "产品:自定义时此字段可不用填写")
private Integer skuId;
@ApiModelProperty(value = "规格来源 0:获取 1:自定义")
private Integer flag;
@ApiModelProperty(value = "产品名称(自定义的时候才需要传值)")
private String productName;
@ApiModelProperty(value = "选项来源")
private List<MallProductSpecVO> specIds;
@ApiModelProperty(value = "选择方式")
private Integer chooseType;
@ApiModelProperty(value = "规格单位")
private Integer skuUnitId;
@ApiModelProperty(value = "是否必选")
private Integer must;
@ApiModelProperty(value = "自定义的信息填充")
private List<ProductSpecVO> customizeInfo;
@ApiModelProperty(value = "删除的自定义规格id")
private List<Integer> delProductSpecId;
}
package com.mmc.pms.model.vo;
import com.mmc.pms.model.dto.ProductInventoryVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:36 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IndustrySpecVO implements Serializable {
private static final long serialVersionUID = 5939041792432691119L;
@ApiModelProperty(value = "id")
@NotNull(message = "修改时id不能为空", groups = Update.class)
private Integer id;
@NotNull(
message = "行业sku的id不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "行业sku的id")
private Integer industrySkuId;
@NotNull(
message = "规格名称不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "规格名称")
private String specName;
@NotNull(
message = "规格图片不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "规格图片")
private String specImage;
@NotNull(
message = "产品清单不能为空",
groups = {Update.class, Create.class})
@ApiModelProperty(value = "产品清单")
private List<ProductInventoryVO> productInventoryList;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* @Author small @Date 2023/5/15 18:03 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
// @ApiModel(value = "com.mmc.pms.model.vo.LeaseVo", description = "立即租赁")
public class LeaseVo {
private static final long serialVersionUID = -8917940296555539559L;
@ApiModelProperty(value = "设备id")
private Integer id;
@ApiModelProperty(value = "租期天数开始")
private Integer startDay;
@ApiModelProperty(value = "租期天数结束")
private Integer endDay;
@ApiModelProperty(value = "库存使用")
@NotBlank
private Integer inventoryUsage;
@ApiModelProperty(value = "库存id")
private Integer inventoryId;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 15:27 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Accessors
public class MallProductSpecVO implements Serializable {
private static final long serialVersionUID = -2681122778843398310L;
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty(value = "产品或行业规格id")
private Integer mallSpecId;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @Author small @Date 2023/5/16 15:04 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductSpecCPQVO implements Serializable {
private static final long serialVersionUID = 6055658459871113781L;
@ApiModelProperty(value = "产品规格id")
private Integer productSpecId;
@ApiModelProperty(value = "规格价格配置VO")
private List<SpecPriceVO> specPrice;
}
package com.mmc.pms.model.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small @Date 2023/5/16 15:04 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SpecPriceVO implements Serializable {
private static final long serialVersionUID = -8976672168410262190L;
private Integer id;
private Integer tagInfoId;
private BigDecimal price;
}
package com.mmc.pms.model.vo;
/**
* @Author small @Date 2023/5/16 13:37 @Version 1.0
*/
public interface Update {}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 10:01 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.vo.WareImgVO", description = "新增/修改参数类")
public class WareImgVO implements Serializable {
private static final long serialVersionUID = 7742617679026160607L;
@ApiModelProperty(value = "图片id")
private Integer id;
@ApiModelProperty(value = "商品图片地址")
private String imgUrl;
@ApiModelProperty(value = "商品图片类型")
private Integer imgType;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small @Date 2023/5/16 17:20 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.vo.WareInfoVO", description = "新增/修改参数类")
public class WareInfoVO implements Serializable {
private static final long serialVersionUID = -4503117649945902464L;
@ApiModelProperty(value = "id")
@NotNull(
message = "更新时ID不能为空",
groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "商品名称")
@NotEmpty(
message = "商品名称不能为空",
groups = {Create.class})
@Size(
max = 60,
message = "商品名称不能超过60个字符",
groups = {Create.class, Update.class})
private String wareTitle;
@ApiModelProperty(value = "商品类型id")
@NotNull(
message = "商品类型ID不能为空",
groups = {Create.class})
private Integer wareTypeId;
@ApiModelProperty(value = "商品活动id")
private Integer propInfoId;
@ApiModelProperty(value = "商品活动海报url")
private String propPoster;
@ApiModelProperty(value = "商品状态")
@NotNull(
message = "商品状态不能为空",
groups = {Create.class})
private Integer wareStatus;
@ApiModelProperty(value = "支付信息(减库方式)")
@NotNull(
message = "支付信息(减库方式)不能为空",
groups = {Create.class})
private Integer payStatus;
@ApiModelProperty(value = "一口押金-最小押金")
@NotNull(
message = "最小押金不能为空",
groups = {Create.class})
@Min(
value = 0,
groups = {Create.class, Update.class})
private BigDecimal minDeposit;
@ApiModelProperty(value = "一口价-最小日租金")
@NotNull(
message = "最小租金不能为空",
groups = {Create.class})
@Min(
value = 0,
groups = {Create.class, Update.class})
private BigDecimal minRent;
@ApiModelProperty(value = "商品标签")
private String tags;
@ApiModelProperty(value = "商品总量")
@Min(
value = 0,
groups = {Create.class})
private Integer totalStock;
@ApiModelProperty(value = "商品详情")
@NotEmpty(
message = "商品详情不能为空",
groups = {Create.class})
private String wareDetailContent;
@ApiModelProperty(value = "sku总数量")
@Min(
value = 0,
groups = {Create.class, Update.class})
private Integer skuNum;
@ApiModelProperty(value = "商品图片")
@NotEmpty(
message = "商品图片不能为空",
groups = {Create.class})
private List<WareImgVO> imgList;
@ApiModelProperty(value = "新加的商品sku")
@NotEmpty(
message = "商品sku不能为空",
groups = {Create.class})
private List<WareSkuInfoVO> wareSkuInfoList;
@ApiModelProperty(value = "更新的商品sku")
private List<WareSkuInfoVO> updateSkuList;
@ApiModelProperty(value = "需要删除的sku的id列表")
private List<Integer> deleteSkuIds;
@ApiModelProperty(value = "需要删除的照片id列表")
private List<Integer> deleteImgIds;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Author small @Date 2023/5/16 17:20 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.vo.WareSkuInfoVO", description = "新增/修改参数类")
public class WareSkuInfoVO implements Serializable {
private static final long serialVersionUID = 7401232386069965527L;
@ApiModelProperty(value = "sku的id")
@NotNull(
message = "sku的id不能为空",
groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "商品skuTitle名称")
@NotEmpty(
message = "商品skuTitle名称不能为空",
groups = {Create.class})
private String skuTitle;
@ApiModelProperty(value = "出租押金")
@NotNull(
message = "出租押金不能为空",
groups = {Create.class})
@Min(
value = 0,
message = "出租押金不能小于0",
groups = {Create.class, Update.class})
@Max(
value = 100000000,
message = "出租押金不能大于100000000",
groups = {Create.class, Update.class})
private BigDecimal rentDeposit;
@ApiModelProperty(value = "sku库存数量")
@NotNull(
message = "sku库存数量不能为空",
groups = {Create.class})
@Min(
value = 0,
message = "sku库存数量不能小于0",
groups = {Create.class, Update.class})
private Integer stockNum;
@ApiModelProperty(value = "sku对应价格列表")
@NotEmpty(
message = "sku对应价格列表不能为空",
groups = {Create.class})
List<WareSkuPriceVO> wareSkuPriceVOList;
}
package com.mmc.pms.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author small @Date 2023/5/16 17:21 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "com.mmc.csf.model.vo.WareSkuInfoVO", description = "新增/修改参数类")
public class WareSkuPriceVO implements Serializable {
private static final long serialVersionUID = -3033801564005806565L;
@ApiModelProperty(value = "sku对应的id")
@NotNull(
message = "sku对应的id不能为空",
groups = {Update.class})
private Integer id;
@ApiModelProperty(value = "出租价格")
@NotNull(
message = "出租价格不能为空",
groups = {Create.class})
@Min(
value = 0,
message = "出租价格不能小于0",
groups = {Create.class, Update.class})
@Max(
value = 100000000,
message = "出租价格不能大于100000000",
groups = {Create.class, Update.class})
private BigDecimal rentPrice;
@ApiModelProperty(value = "起租天数")
@NotNull(
message = "起租天数不能为空",
groups = {Create.class})
@Min(
value = 0,
message = "起租天数不能小于0",
groups = {Create.class, Update.class})
private Integer minDay;
@ApiModelProperty(value = "最大天数")
@NotNull(
message = "最大天数不能为空",
groups = {Create.class})
@Min(
value = 0,
message = "最大天数不能小于0",
groups = {Create.class, Update.class})
private Integer maxDay;
}
package com.mmc.pms.page;
/**
* @Author small @Date 2023/5/16 10:09 @Version 1.0
*/
public interface Page {}
package com.mmc.pms.page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Author small @Date 2023/5/16 9:58 @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult<T> implements Serializable {
private static final long serialVersionUID = -2848996493573325801L;
private int pageNo; // 分页起始页
private int pageSize; // 每页记录数
private T list; // 返回的记录集合
private long totalCount; // 总记录条数
private long totalPage; // 总页数
public static PageResult buildPage(int pageNo, int pageSize, int totalCount) {
PageResult page = new PageResult();
page.pageNo = pageNo;
page.pageSize = pageSize;
page.totalCount = totalCount;
page.totalPage =
(totalCount % pageSize == 0) ? (totalCount / pageSize) : (totalCount / pageSize + 1);
return page;
}
public static <T> PageResult buildPage(int pageNo, int pageSize, int totalCount, T list) {
PageResult page = PageResult.buildPage(pageNo, pageSize, totalCount);
page.setList(list);
return page;
}
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.model.dto.ProductInventoryVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @Author small @Date 2023/5/16 15:41 @Version 1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class IndustryProductInventoryDO implements Serializable {
private static final long serialVersionUID = -3586673158091288317L;
private Integer id;
private Integer industrySpecId;
private Integer productSkuId;
private Integer selected;
private Integer deleted;
private Date createTime;
private Date updateTime;
public IndustryProductInventoryDO(ProductInventoryVO d) {
this.productSkuId = d.getProductSku().getId();
this.selected = d.getSelect();
}
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.dao.MiniProgramProductMallDao;
import com.mmc.pms.dao.WebDeviceDao;
import com.mmc.pms.entity.GoodsInfoDO;
import com.mmc.pms.entity.*;
import com.mmc.pms.model.dto.*;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.MiniProgramProductMallService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author small @Date 2023/5/16 15:08 @Version 1.0
*/
@Service
public class MiniProgramProductMallServiceImpl implements MiniProgramProductMallService {
@Autowired private MiniProgramProductMallDao goodsInfoDao;
@Autowired private WebDeviceDao webDeviceDao;
@Override
public ResultBody getAppGoodsInfoDetail(Integer goodsId) {
// 查询此商品是否下架或删除
GoodsInfoDO goodsInfoDO = goodsInfoDao.getGoodsInfoByGoodsId(goodsId);
if (goodsInfoDO == null || goodsInfoDO.getShelfStatus().equals(0)) {
return ResultBody.error(ResultEnum.SHOP_GOODS_NOT_ERROR);
}
AppGoodsInfoDetailDTO appGoodsInfoDetailDTO = new AppGoodsInfoDetailDTO();
appGoodsInfoDetailDTO
.setId(goodsInfoDO.getId())
.setGoodsName(goodsInfoDO.getGoodsName())
.setGoodsVideoId(goodsInfoDO.getGoodsVideoId())
.setMasterTypeId(goodsInfoDO.getMasterTypeId())
.setRepoId(goodsInfoDO.getRepoId())
.setSortTypeId(goodsInfoDO.getSortTypeId())
.setShelfStatus(goodsInfoDO.getShelfStatus())
.setSlaveTypeId(goodsInfoDO.getSlaveTypeId())
.setShareFlyServiceId(goodsInfoDO.getShareFlyServiceId())
.setGoodsVideo(goodsInfoDO.getVideoUrl())
.setTag(goodsInfoDO.getTag())
.setPid(goodsInfoDO.getPid());
// 获取商品图片信息
List<GoodsImgDO> goodsImgDO = goodsInfoDao.listGoodsInfoByGoodsId(goodsId);
appGoodsInfoDetailDTO.setImages(
goodsImgDO.stream().map(GoodsImgDO::buildGoodsImgDTO).collect(Collectors.toList()));
// 获取商品详情信息
GoodsDetailDO goodsDetailDO = goodsInfoDao.getGoodsDetailByGoodsId(goodsId);
appGoodsInfoDetailDTO.setGoodsDetail(goodsDetailDO.buildGoodsDetailInfoDTO());
// 获取常见问题信息
List<GoodsQaDO> goodsQaDO = goodsInfoDao.listGoodsQaInfoByGoodsId(goodsId);
appGoodsInfoDetailDTO.setQuestion(
goodsQaDO.stream().map(GoodsQaDO::buildGoodsQaDTO).collect(Collectors.toList()));
// 获取其他服务信息
List<GoodsServiceDO> goodsServiceDO = goodsInfoDao.listGoodsServiceByGoodsId(goodsId);
appGoodsInfoDetailDTO.setOtherService(
goodsServiceDO.stream()
.map(GoodsServiceDO::buildGoodsOtherServiceDTO)
.collect(Collectors.toList()));
// 判断商品是什么类型
if (!goodsInfoDO.getSortTypeId().equals(2)) {
// 获取该商品绑定的sku信息
List<MallProdSkuInfoDO> mallProdSkuInfo = goodsInfoDao.getMallProdInfoByGoodsId(goodsId);
// 获取该商品绑定的规格信息
List<MallProdSkuInfoSpecDO> mallProdSkuInfoSpecList =
goodsInfoDao.listMallProdSkuInfoSpec(goodsId);
Map<Integer, List<MallProdSkuInfoSpecDO>> specMap =
mallProdSkuInfoSpecList.stream()
.collect(Collectors.groupingBy(MallProdSkuInfoSpecDO::getMallProdSkuInfoId));
List<GoodsSpecDTO> list =
mallProdSkuInfo.stream()
.map(
d -> {
// 获取sku下规格信息
List<MallProdSkuInfoSpecDO> mallProdSkuInfoSpecDOList = specMap.get(d.getId());
List<ProductSpecDO> productSpecList =
goodsInfoDao.listProductSpecInfo(
mallProdSkuInfoSpecDOList.stream()
.map(MallProdSkuInfoSpecDO::getProductSpecId)
.collect(Collectors.toList()));
List<MallProductSpecDTO> collect =
productSpecList.stream()
.map(ProductSpecDO::buildMallProductSpecDTO)
.collect(Collectors.toList());
collect.stream()
.peek(
m -> {
for (MallProdSkuInfoSpecDO mallProdSkuInfoSpecDO :
mallProdSkuInfoSpecDOList) {
if (m.getProductSpec()
.equals(mallProdSkuInfoSpecDO.getProductSpecId())) {
m.setId(mallProdSkuInfoSpecDO.getId());
break;
}
}
})
.collect(Collectors.toList());
GoodsSpecDTO goodsSpecDTO = new GoodsSpecDTO();
goodsSpecDTO
.setId(d.getId())
.setSkuId(d.getProdSkuId())
.setGoodsSpecName(d.getProdSkuSpecName())
.setSkuName(d.getProductSkuName())
.setBrandInfoId(d.getBrandInfoId())
.setGoodsTypeId(d.getGoodsTypeId())
.setTypeName(d.getTypeName())
.setChooseType(d.getChooseType())
.setSkuUnitId(d.getSkuUnitId())
.setUnitName(d.getUnitName())
.setMust(d.getMust())
.setProductSpecList(collect);
return goodsSpecDTO;
})
.collect(Collectors.toList());
appGoodsInfoDetailDTO.setGoodsSpec(list);
} else {
appGoodsInfoDetailDTO.setGoodsSpec(getIndustrySpecInfo(goodsId));
}
return ResultBody.success(appGoodsInfoDetailDTO);
}
@Override
public ResultBody listGoodsByQO(GoodsInfoQO param) {
int count = goodsInfoDao.countListGoodsByQO(param);
if (count == 0) {
return ResultBody.success(
PageResult.buildPage(param.getPageNo(), param.getPageSize(), count));
}
int pageNo = param.getPageNo();
param.buildCurrentPage();
List<GoodsInfoDO> list = goodsInfoDao.listGoodsByQO(param);
// 找出行业对应的序号
List<GoodsTypeDO> ids = goodsInfoDao.listIndustryIdBySort();
int order = 0;
/*if (param.getMasterTypeId() != null) {
for (int i = 0; i < ids.size(); i++) {
if (param.getMasterTypeId().toString().equals(ids.get(i).getId().toString())) {
order = i + 1;
break;
}
}
}*/
List<AppGoodsInfoDTO> pageList = new ArrayList<>();
for (GoodsInfoDO d : list) {
AppGoodsInfoDTO appGoodsInfoDTO = d.buildAppGoodsInfoDTO();
// 直接看该服务在当前行业对应所有服务中在第几个
for (int j = 0; j < list.size(); j++) {
if (appGoodsInfoDTO.getId().toString().equals(list.get(j).getId().toString())) {
if (j < 9) {
appGoodsInfoDTO.setCode(order + "0" + (j + 1));
} else {
appGoodsInfoDTO.setCode(order + "" + (j + 1));
}
break;
}
}
if (appGoodsInfoDTO.getShelfStatus() == 1) {
pageList.add(appGoodsInfoDTO);
}
}
return ResultBody.success(PageResult.buildPage(pageNo, param.getPageSize(), count, pageList));
}
private List<GoodsSpecDTO> getIndustrySpecInfo(Integer goodsInfoId) {
// 获取商品对应绑定的行业sku信息
List<MallIndustrySkuInfoDO> mallIndustrySkuInfoList =
goodsInfoDao.getMallIndustrySkuInfo(goodsInfoId);
List<GoodsSpecDTO> list =
mallIndustrySkuInfoList.stream()
.map(MallIndustrySkuInfoDO::buildGoodsSpecDTO)
.collect(Collectors.toList());
// 根据商品id查出该商品下绑定的规格信息
List<MallIndustrySkuInfoSpecDO> mallIndustrySkuInfoSpec =
goodsInfoDao.getIndustrySkuInfoSpec(goodsInfoId);
list =
list.stream()
.peek(
d -> {
List<MallIndustrySpecDTO> industrySpec = new ArrayList<>();
for (MallIndustrySkuInfoSpecDO e : mallIndustrySkuInfoSpec) {
if (d.getId().equals(e.getMallIndustrySkuInfoId())) {
IndustrySpecDO industrySpecDO = e.getIndustrySpecDO();
// 获取商品清单信息
List<IndustryProductInventoryDO> industryProdInventory =
goodsInfoDao.getIndustryProductInventory(e.getIndustrySpecId());
List<ProductInventoryVO> productInventoryList = new ArrayList<>();
// 获取行业规格绑定的产品规格信息
List<InventorySpecDO> inventorySpecDOList =
goodsInfoDao.listInventorySpec(
industryProdInventory.stream()
.map(IndustryProductInventoryDO::getId)
.collect(Collectors.toList()));
Map<Integer, List<InventorySpecDO>> inventoryMap =
inventorySpecDOList.stream()
.collect(
Collectors.groupingBy(
InventorySpecDO::getIndustryProductInventoryId));
getIndustrySpecOnProdSpecInfo(
industryProdInventory, productInventoryList, inventoryMap);
MallIndustrySpecDTO industrySpecDTO =
industrySpecDO.buildMallIndustrySpecDTO();
industrySpecDTO.setId(e.getId());
industrySpecDTO.setIndustrySpecId(e.getIndustrySpecId());
industrySpecDTO.setIndustrySkuId(d.getSkuId());
industrySpecDTO.setProductInventoryList(productInventoryList);
industrySpec.add(industrySpecDTO);
}
}
d.setIndustrySpecList(industrySpec);
})
.collect(Collectors.toList());
return list;
}
private void getIndustrySpecOnProdSpecInfo(
List<IndustryProductInventoryDO> industryProdInventory,
List<ProductInventoryVO> productInventoryList,
Map<Integer, List<InventorySpecDO>> inventoryMap) {
for (IndustryProductInventoryDO industryProductInventoryDO : industryProdInventory) {
List<InventorySpecDO> inventorySpec = inventoryMap.get(industryProductInventoryDO.getId());
if (!CollectionUtils.isEmpty(inventorySpec)) {
List<ProductSpecVO> productSpecList =
inventorySpec.stream()
.map(
in -> {
ProductSpecDO productSpecDetail =
goodsInfoDao.getProductSpecDetail(in.getProductSpecId());
ProductSpecVO productSpecVO = new ProductSpecVO();
BeanUtils.copyProperties(productSpecDetail, productSpecVO);
return productSpecVO;
})
.collect(Collectors.toList());
ProductSkuDO productSkuDetail =
goodsInfoDao.getProductSkuDetail(industryProductInventoryDO.getProductSkuId());
GoodsProductSkuVO goodsProductSkuVO = new GoodsProductSkuVO();
BeanUtils.copyProperties(productSkuDetail, goodsProductSkuVO);
// 添加数据
ProductInventoryVO productInventoryVO = new ProductInventoryVO();
productInventoryVO.setSelect(industryProductInventoryDO.getSelected());
productInventoryVO.setProductSku(goodsProductSkuVO);
productInventoryVO.setProductSpecList(productSpecList);
productInventoryList.add(productInventoryVO);
}
}
}
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.dao.WebDeviceDao;
import com.mmc.pms.entity.*;
import com.mmc.pms.model.dto.*;
import com.mmc.pms.model.qo.WareInfoQO;
import com.mmc.pms.model.vo.LeaseVo;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.WebDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author small @Date 2023/5/15 14:32 @Version 1.0
*/
@Service
public class WebDeviceServiceImpl implements WebDeviceService {
@Autowired WebDeviceDao webDeviceDao;
@Override
public ResultBody listSecondDistrict() {
List<DistrictDO> list = webDeviceDao.listSecondDistrict();
List<DistrictInfoDTO> dtoList =
list.stream()
.map(
d -> {
return d.builderDistrictInfoDTO();
})
.collect(Collectors.toList());
return ResultBody.success(dtoList);
}
@Override
public ResultBody category() {
List<DeviceCategory> category = webDeviceDao.category();
List<DeviceCategoryDTO> collect =
category.stream()
.map(
t -> {
return t.deviceCategory();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody brand() {
List<Brand> brand = webDeviceDao.brand();
List<BrandDTO> collect =
brand.stream()
.map(
t -> {
return t.brandDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody model() {
List<Model> model = webDeviceDao.model();
List<ModelDTO> collect =
model.stream()
.map(
t -> {
return t.modelDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody deviceList(
Integer districtId, Integer categoryId, Integer brandId, Integer modelId) {
List<DeviceListDO> deviceList =
webDeviceDao.deviceList(districtId, categoryId, brandId, modelId);
List<DeviceListDTO> collect =
deviceList.stream()
.map(
t -> {
return t.deviceListDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody update(LeaseVo param) {
InventoryDO inventory = webDeviceDao.findInventory(param.getInventoryId());
Integer residueCount = inventory.getResidueCount();
Integer count = residueCount - param.getInventoryUsage();
param.setInventoryUsage(count);
int update = webDeviceDao.update(param);
return ResultBody.success(update);
}
@Override
public ResultBody detail(Integer id) {
List<WareInfoDO> list = webDeviceDao.detail(id);
List<WareInfoItemDTO> pageList =
list.stream()
.map(
d -> {
return d.buildWareInfoItemDTO();
})
.collect(Collectors.toList());
return ResultBody.success(pageList);
}
@Override
public ResultBody listWareInfoPage(WareInfoQO param) {
int count = webDeviceDao.countListWareInfoPage(param);
if (count == 0) {
return ResultBody.success(
PageResult.buildPage(param.getPageNo(), param.getPageSize(), count));
}
int pageNo = param.getPageNo();
param.buildCurrentPage();
List<WareInfoDO> list = webDeviceDao.listWareInfoPage(param);
List<WareInfoItemDTO> pageList =
list.stream()
.map(
d -> {
return d.buildWareInfoItemDTO();
})
.collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, param.getPageSize(), count, pageList));
}
@Override
public WareInfoDTO getWareInfoById(Integer id) {
WareInfoDO wareInfoDO = webDeviceDao.getWareInfoById(id);
WareDetailDO wareDetailDO = webDeviceDao.getWareDetailById(id);
if (wareInfoDO != null) {
wareInfoDO.setWareDetailContent(wareDetailDO.getContent());
}
return wareInfoDO == null ? null : wareInfoDO.buildWareInfoDTO();
}
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.dao.WebProductMallDao;
import com.mmc.pms.entity.GoodsInfoDO;
import com.mmc.pms.entity.ProductCategory;
import com.mmc.pms.model.dto.GoodsInfoListDTO;
import com.mmc.pms.model.dto.ProductCategoryDTO;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.WebProductMallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author small @Date 2023/5/15 20:08 @Version 1.0
*/
@Service
public class WebProductMallServiceImpl implements WebProductMallService {
@Autowired private WebProductMallDao webProductMallDao;
@Override
public ResultBody productCategory() {
List<ProductCategory> category = webProductMallDao.productCategory();
List<ProductCategoryDTO> collect =
category.stream()
.map(
t -> {
return t.productCategoryDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody productParts() {
List<ProductCategory> category = webProductMallDao.productParts();
List<ProductCategoryDTO> collect =
category.stream()
.map(
t -> {
return t.productCategoryDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public ResultBody productQuality() {
List<ProductCategory> category = webProductMallDao.productQuality();
List<ProductCategoryDTO> collect =
category.stream()
.map(
t -> {
return t.productCategoryDTO();
})
.collect(Collectors.toList());
return ResultBody.success(collect);
}
@Override
public PageResult listPageGoodsInfo(GoodsInfoQO param) {
int count = webProductMallDao.countListGoodsInfo(param);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
}
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<GoodsInfoDO> goodsInfo = webProductMallDao.listGoodsInfo(param);
goodsInfo.stream()
.forEach(
t -> {
Integer product = webProductMallDao.findProduct(t.getId());
t.setIsCoupons(product);
});
List<GoodsInfoListDTO> pageList =
goodsInfo.stream().map(GoodsInfoDO::buildGoodsInfoListDTO).collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, pageList);
}
}
package com.mmc.pms.service;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.qo.GoodsInfoQO;
/**
* @Author small @Date 2023/5/16 15:08 @Version 1.0
*/
public interface MiniProgramProductMallService {
ResultBody getAppGoodsInfoDetail(Integer id);
ResultBody listGoodsByQO(GoodsInfoQO param);
}
package com.mmc.pms.service;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.dto.WareInfoDTO;
import com.mmc.pms.model.qo.WareInfoQO;
import com.mmc.pms.model.vo.LeaseVo;
/**
* @Author small @Date 2023/5/15 14:28 @Version 1.0
*/
public interface WebDeviceService {
ResultBody listSecondDistrict();
ResultBody category();
ResultBody brand();
ResultBody model();
ResultBody deviceList(Integer districtId, Integer categoryId, Integer brandId, Integer modelId);
ResultBody update(LeaseVo param);
ResultBody detail(Integer id);
ResultBody listWareInfoPage(WareInfoQO param);
WareInfoDTO getWareInfoById(Integer id);
}
package com.mmc.pms.service;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.qo.GoodsInfoQO;
import com.mmc.pms.page.PageResult;
/**
* @Author small @Date 2023/5/15 20:08 @Version 1.0
*/
public interface WebProductMallService {
ResultBody productCategory();
ResultBody productParts();
ResultBody productQuality();
PageResult listPageGoodsInfo(GoodsInfoQO param);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.MiniProgramProductMallDao">
<resultMap id="resultGoodsInfo" type="com.mmc.pms.entity.GoodsInfoDO">
<id property="id" column="id"/>
<result property="pid" column="pid"/>
<result property="goodsCategoryId" column="goods_category_id"/>
<result property="goodsName" column="goods_name"/>
<result property="createTime" column="create_time"/>
<result property="masterTypeId" column="master_type_id"/>
<result property="slaveTypeId" column="slave_type_id"/>
<result property="shelfStatus" column="shelf_status"/>
<result property="sortTypeId" column="sort_type_id"/>
<result property="remark" column="remark"/>
<result property="shareFlyServiceId" column="share_fly_service_id"/>
<result property="repoId" column="repo_id"/>
<result property="ecoLabel" column="eco_label"/>
<result property="goodsAttr" column="goods_attr"/>
<result property="showCode" column="is_show_code"/>
<result property="sort" column="sort"/>
<result property="tag" column="tag"/>
<result property="goodsType" column="goods_type"/>
<result property="standardProduct" column="is_standard_product"/>
<result property="goodsVideoId" column="videoId"/>
<result property="videoUrl" column="videoUrl"/>
<association property="goodsVideoDO" resultMap="resultVideoInfo"/>
</resultMap>
<resultMap id="resultVideoInfo" type="com.mmc.pms.entity.GoodsVideoDO">
<id property="id" column="videoId"/>
<result property="videoUrl" column="videoUrl"/>
</resultMap>
<resultMap id="resultGoodsImg" type="com.mmc.pms.entity.GoodsImgDO">
<id property="id" column="id"/>
<result property="imgUrl" column="img_url"/>
<result property="imgType" column="img_type"/>
</resultMap>
<select id="getGoodsInfoByGoodsId" resultMap="resultGoodsInfo">
SELECT gi.id,
gi.pid,
gi.create_time,
gi.goods_name,
gi.goods_attr,
gi.eco_label,
gi.master_type_id,
gi.shelf_status,
gi.slave_type_id,
gi.repo_id,
gi.goods_type,
gi.goods_category_id,
gi.share_fly_service_id,
gi.is_standard_product,
gv.id AS videoId,
gv.video_url AS videoUrl,
gt.remark AS remark,
gt.sort_type_id,
gi.sort,
gi.is_show_code,
gi.tag
FROM goods_info gi
LEFT JOIN goods_video gv ON gi.id = gv.goods_info_id
AND gv.is_deleted = 0
LEFT JOIN goods_type gt ON gi.master_type_id = gt.id
AND gt.is_deleted = 0
WHERE gi.is_deleted = 0
AND gi.id = #{id}
</select>
<select id="listGoodsInfoByGoodsId" resultMap="resultGoodsImg">
SELECT id,
img_url,
img_type
FROM goods_img
WHERE is_deleted = 0
AND goods_info_id = #{id}
ORDER BY img_type DESC
</select>
<resultMap id="resultGoodsDetail" type="com.mmc.pms.entity.GoodsDetailDO">
<id column="id" property="id"/>
<result property="goodsDesc" column="goods_desc"/>
<result property="content" column="content"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="getGoodsDetailByGoodsId" resultMap="resultGoodsDetail">
SELECT id,
goods_desc,
content,
remark
FROM goods_detail
WHERE goods_info_id = #{id}
</select>
<resultMap id="resultGoodsQa" type="com.mmc.pms.entity.GoodsQaDO">
<id property="id" column="id"/>
<result property="question" column="question"/>
<result property="answer" column="answer"/>
</resultMap>
<resultMap id="resultGoodsService" type="com.mmc.pms.entity.GoodsServiceDO">
<id property="id" column="id"/>
<result property="saleServiceId" column="saleServiceId"/>
<result property="serviceName" column="serviceName"/>
</resultMap>
<select id="listGoodsServiceByGoodsId" resultMap="resultGoodsService">
SELECT gc.id,
gc.sale_service_id AS saleServiceId,
ss.service_name AS serviceName
FROM goods_service gc
LEFT JOIN sale_service ss ON gc.sale_service_id = ss.id
WHERE gc.goods_info_id = #{id}
</select>
<select id="listGoodsQaInfoByGoodsId" resultMap="resultGoodsQa">
SELECT id,
question,
answer
FROM goods_qa
WHERE goods_info_id = #{id}
AND is_deleted = 0
</select>
<select id="getMallProdInfoByGoodsId" resultType="com.mmc.pms.entity.MallProdSkuInfoDO">
SELECT mp.id,
mp.prod_sku_id prodSkuId,
mp.prod_sku_spec_name prodSkuSpecName,
mp.goods_type_id goodsTypeId,
mp.choose_type chooseType,
mp.is_must must,
mp.sku_unit_id skuUnitId,
su.unit_name unitName,
ps.product_name productSkuName,
ps.brand_info_id brandInfoId,
gt.type_name typeName
FROM mall_prod_sku_info mp
INNER JOIN sku_unit su ON su.id = mp.sku_unit_id
INNER JOIN product_sku ps ON ps.id = mp.prod_sku_id
LEFT JOIN goods_type gt ON mp.goods_type_id = gt.id
WHERE mp.goods_info_id = #{goodsId}
AND mp.is_deleted = 0
</select>
<select id="listMallProdSkuInfoSpec" resultType="com.mmc.pms.entity.MallProdSkuInfoSpecDO">
SELECT id,
mall_prod_sku_info_id mallProdSkuInfoId,
product_spec_id productSpecId
FROM mall_prod_sku_info_spec
WHERE goods_info_id = #{goodsId}
AND is_deleted = 0
</select>
<select id="listProductSpecInfo" resultType="com.mmc.pms.entity.ProductSpecDO">
SELECT
id,
product_sku_id productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc
FROM
product_spec
WHERE
id in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
<select id="getMallIndustrySkuInfo" resultType="com.mmc.pms.entity.MallIndustrySkuInfoDO">
SELECT mi.id,
mi.industry_sku_id industrySkuId,
mi.industry_sku_spec_name industrySkuSpecName,
mi.choose_type chooseType,
mi.sku_unit_id skuUnitId,
mi.goods_type_id goodsTypeId,
mi.is_must must,
gt.type_name typeName,
su.unit_name unitName,
ins.solution_name industrySkuName
FROM mall_industry_sku_info mi
INNER JOIN goods_type gt ON gt.id = mi.goods_type_id
INNER JOIN sku_unit su ON su.id = mi.sku_unit_id
INNER JOIN industry_sku ins ON mi.industry_sku_id = ins.id
WHERE mi.goods_info_id = #{id}
AND mi.is_deleted = 0
</select>
<resultMap id="resultIndustrySkuInfoSpecMap" type="com.mmc.pms.entity.MallIndustrySkuInfoSpecDO">
<id column="id" property="id"/>
<result column="mall_industry_sku_info_id" property="mallIndustrySkuInfoId"/>
<result column="industry_spec_id" property="industrySpecId"/>
<association property="industrySpecDO" resultMap="resultIndustrySpecMap"/>
</resultMap>
<resultMap id="resultIndustrySpecMap" type="com.mmc.pms.entity.IndustrySpecDO">
<result column="industry_sku_id" property="industrySkuId"/>
<result column="spec_image" property="specImage"/>
<result column="spec_name" property="specName"/>
</resultMap>
<select id="getIndustrySkuInfoSpec" resultMap="resultIndustrySkuInfoSpecMap">
SELECT mi.id,
mi.mall_industry_sku_info_id,
mi.industry_spec_id,
ins.industry_sku_id,
ins.spec_image,
ins.spec_name
FROM mall_industry_sku_info_spec mi
INNER JOIN industry_spec ins ON ins.id = mi.industry_spec_id and mi.is_deleted = 0
WHERE goods_info_id = #{id}
</select>
<select id="countListGoodsByQO" resultType="int" parameterType="com.mmc.pms.model.qo.GoodsInfoQO">
SELECT count(*)
FROM
goods_info gi
LEFT JOIN goods_img img ON img.goods_info_id = gi.id
LEFT JOIN goods_type gt ON gt.id = gi.master_type_id
LEFT JOIN goods_type gty ON gty.id = gi.slave_type_id
LEFT JOIN goods_detail gd ON gd.goods_info_id = gi.id
<where>
gi.is_deleted = 0
<if test="districtId != null">
and (gi.district_id = #{districtId})
</if>
<if test="brandId != null">
and (gi.brand_id = #{brandId})
</if>
<if test="partsId != null">
and (gi.parts_id = #{partsId})
</if>
<if test="modelId != null">
and (gi.mode_id = #{modelId})
</if>
<if test="qualityId != null">
and (gi.quality_id = #{qualityId})
</if>
<if test="productCategoryId != null">
and (gi.sort_type_id = #{productCategoryId})
</if>
</where>
</select>
<resultMap id="resultMapAppGoodsInfo" type="com.mmc.pms.entity.GoodsInfoDO">
<id property="id" column="id"/>
<result property="goodsName" column="goods_name"/>
<result property="shelfStatus" column="shelf_status"/>
<result property="mainImg" column="mainImg"/>
<result property="goodsDesc" column="goods_desc"/>
<result property="masterTypeId" column="master_type_id"/>
<result property="slaveTypeId" column="slave_type_id"/>
<result property="goodsAttr" column="goods_attr"/>
<result property="ecoLabel" column="eco_label"/>
<result property="showCode" column="is_show_code"/>
<result property="sort" column="sort"/>
<result property="tag" column="tag"/>
</resultMap>
<select id="listGoodsByQO" resultMap="resultMapAppGoodsInfo" parameterType="com.mmc.pms.model.qo.GoodsInfoQO">
SELECT
gi.id,
gi.goods_name,
gi.shelf_status,
gi.create_time,
gi.sort_type_id,
gi.district_id,
gi.brand_id,
gi.parts_id,
gi.mode_id,
gi.quality_id,
img.img_url,
gt.type_name AS master_type_name,
gty.type_name AS slave_type_name,
st.sort_name
FROM
goods_info gi
LEFT JOIN goods_img img ON gi.id = img.goods_info_id
AND img.img_type = 0
AND img.is_deleted = 0
LEFT JOIN goods_type gt ON gt.id = gi.master_type_id
LEFT JOIN goods_type gty ON gty.id = gi.slave_type_id
LEFT JOIN sort_type st ON st.id = gi.sort_type_id
<where>
gi.is_deleted = 0
<if test="districtId != null">
and (gi.district_id = #{districtId})
</if>
<if test="brandId != null">
and (gi.brand_id = #{brandId})
</if>
<if test="partsId != null">
and (gi.parts_id = #{partsId})
</if>
<if test="modelId != null">
and (gi.mode_id = #{modelId})
</if>
<if test="qualityId != null">
and (gi.quality_id = #{qualityId})
</if>
<if test="productCategoryId != null">
and (gi.sort_type_id = #{productCategoryId})
</if>
</where>
ORDER BY
gi.shelf_status DESC , gi.create_time DESC
limit #{pageNo},#{pageSize}
</select>
<select id="listIndustryIdBySort" resultType="com.mmc.pms.entity.GoodsTypeDO">
SELECT id
FROM goods_type
WHERE is_deleted = 0
AND sort_type_id = 2
AND pid = 0
ORDER BY sort ASC
</select>
<select id="getIndustryProductInventory" resultType="com.mmc.pms.service.Impl.IndustryProductInventoryDO">
SELECT id,
industry_spec_id industrySpecId,
product_sku_id productSkuId,
is_selected selected
FROM industry_product_inventory
WHERE industry_spec_id = #{id}
AND is_deleted = 0
</select>
<select id="listInventorySpec" resultType="com.mmc.pms.entity.InventorySpecDO">
select id, industry_product_inventory_id industryProductInventoryId, product_spec_id productSpecId
from inventory_spec
where industry_product_inventory_id in (
<foreach collection="list" separator="," index="index" item="d">
#{d}
</foreach>)
</select>
<select id="getProductSpecDetail" resultType="com.mmc.pms.entity.ProductSpecDO">
select id,
product_sku_id productSkuId,
spec_name specName,
spec_image specImage,
part_no partNo,
version_desc versionDesc,
create_time createTime
from product_spec
where id = #{id}
</select>
<select id="getProductSkuDetail" resultType="com.mmc.pms.entity.ProductSkuDO">
SELECT ps.id,
ps.product_name productName,
ps.model,
ps.create_time createTime,
gt.id goodsTypeId,
gt.type_name typeName,
bi.brand_name productBrand,
ps.sort_type_id sortTypeId,
st.sort_name sortName
FROM product_sku ps
INNER JOIN goods_type gt ON ps.goods_type_id = gt.id
LEFT JOIN brand_info bi ON bi.id = ps.brand_info_id
LEFT JOIN sort_type st ON ps.goods_type_id = st.id
WHERE ps.id = #{id}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.WebDeviceDao">
<resultMap id="secondDistrict"
type="com.mmc.pms.entity.DistrictDO">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="level" column="level"/>
<result property="pid" column="pid"/>
<collection property="childInfo" javaType="java.util.List"
ofType="com.mmc.pms.entity.DistrictDO">
<id property="id" column="childId"/>
<result property="name" column="childName"/>
<result property="level" column="childLevel"/>
<result property="pid" column="childPid"/>
</collection>
</resultMap>
<resultMap type="com.mmc.pms.entity.WareInfoDO"
id="wareInfoResultMap">
<id property="id" column="id"/>
<result property="wareNo" column="ware_no"/>
<result property="wareTitle" column="ware_title"/>
<result property="wareTypeId" column="ware_type_id"/>
<result property="wareStatus" column="ware_status"/>
<result property="payStatus" column="pay_status"/>
<result property="minDeposit" column="min_deposit"/>
<result property="maxDeposit" column="max_deposit"/>
<result property="minRent" column="min_rent"/>
<result property="maxRent" column="max_rent"/>
<result property="totalStock" column="total_stock"/>
<result property="totalSale" column="total_sale"/>
<result property="skuNum" column="sku_num"/>
<result property="tags" column="tags"/>
<result property="deleted" column="is_deleted"/>
<result property="updateTime" column="update_time"/>
<result property="createTime" column="create_time"/>
<association property="warePropDO"
javaType="com.mmc.pms.entity.WarePropDO">
<id property="id" column="ware_prop_id"/>
<result property="wareInfoId" column="ware_info_id"/>
<result property="propInfoId" column="prop_info_id"/>
<result property="propPoster" column="prop_poster"/>
</association>
<collection property="wareImgs" javaType="java.util.List"
ofType="com.mmc.pms.entity.WareImgDO">
<id property="id" column="ware_img_id"/>
<result property="wareInfoId" column="ware_info_id"/>
<result property="imgUrl" column="img_url"/>
<result property="imgType" column="img_type"/>
</collection>
</resultMap>
<select id="listSecondDistrict" resultMap="secondDistrict">
select p1.id,
p1.`name`,
p1.`level`,
p1.pid,
p2.id as childId,
p2.`name` as
childName,
p2.`level` as childLevel,
p2.pid as childPid
from sys_district p1,
sys_district p2
where p2.level!=3 and p1.id=p2.pid
</select>
<select id="category" resultType="com.mmc.pms.entity.DeviceCategory">
select id, `name`
from device_category;
</select>
<select id="brand" resultType="com.mmc.pms.entity.Brand">
select id, `name`
from brand;
</select>
<select id="model" resultType="com.mmc.pms.entity.Model">
select id, `name`
from model;
</select>
<select id="deviceList" resultType="com.mmc.pms.entity.DeviceListDO">
SELECT d.id,
d.`name` AS deviceName,
d.image_url AS imageUrl,
d.price,
b.`name` AS brandName,
sd.`name` AS sysDistrictName,
m.`name` AS modelName,
dc.`name` AS deviceCategoryName,
i.residue_count AS residueCount,
i.id as inventoryId,
d.appraise
FROM device d
LEFT JOIN brand b ON d.brand_id = b.id
LEFT JOIN sys_district sd ON d.sys_district_id = sd.id
LEFT JOIN model m ON m.id = d.model_id
LEFT JOIN device_category dc ON dc.id = d.device_category_id
LEFT JOIN inventory i ON i.id = d.inventory_id
WHERE 1=1
<if test='districtId!=null and districtId!=" " '>
and sd.id = #{districtId}
</if>
<if test='brandId!=null and brandId!=" " '>
and b.id = #{brandId}
</if>
<if test='modelId!=null and modelId!=" " '>
and m.id = #{modelId}
</if>
<if test='categoryId!=null and categoryId!=" " '>
and dc.id = #{categoryId}
</if>
</select>
<update id="update">
update inventory
set residue_count=#{inventoryUsage}
where id = #{inventoryId}
</update>
<select id="findInventory" resultType="com.mmc.pms.entity.InventoryDO">
select id, all_count AS allCount, residue_count AS residueCount
from inventory
</select>
<select id="detail" resultMap="wareInfoResultMap">
select
wi.id,wi.ware_no,wi.ware_type_id,wi.ware_title,wi.ware_status,wi.pay_status,wi.min_deposit,wi.max_deposit,wi.min_rent,
wi.max_rent,wi.total_stock,wi.total_sale,wi.sku_num,wi.tags,wi.district_id,
wi.brand_id,
wi.model_id,wi.create_time,wi.update_time,img.id as
ware_img_id,img.ware_info_id,img.img_url,img.img_type,wp.prop_info_id
from ware_info wi INNER JOIN ware_img img ON wi.id=img.ware_info_id LEFT JOIN ware_prop wp on
wi.id=wp.ware_info_id
where wi.is_deleted = 0 and img.img_type = 0
<if test="id != null ">
and wi.id = #{id}
</if>
order by wi.create_time DESC
</select>
<select id="countListWareInfoPage" parameterType="com.mmc.pms.model.qo.WareInfoQO" resultType="int">
select count(*)
from ware_info wi INNER JOIN ware_img img ON wi.id=img.ware_info_id LEFT JOIN ware_prop wp on
wi.id=wp.ware_info_id
where wi.is_deleted = 0 and img.img_type = 0
<if test="districtId != null ">
and wi.district_id = #{districtId}
</if>
<if test="categoryId != null ">
and wi.ware_type_id = #{categoryId}
</if>
<if test="brandId != null ">
and wi.brand_id = #{brandId}
</if>
<if test="modelId != null and modelId != '' ">
and wi.model_id = #{modelId}
</if>
</select>
<select id="listWareInfoPage" parameterType="com.mmc.pms.model.qo.WareInfoQO" resultMap="wareInfoResultMap">
select
wi.id,wi.ware_no,wi.ware_type_id,wi.ware_title,wi.ware_status,wi.pay_status,wi.min_deposit,wi.max_deposit,wi.min_rent,
wi.max_rent,wi.total_stock,wi.total_sale,wi.sku_num,wi.tags,wi.district_id,
wi.brand_id,
wi.model_id,wi.create_time,wi.update_time,img.id as
ware_img_id,img.ware_info_id,img.img_url,img.img_type,wp.prop_info_id
from ware_info wi INNER JOIN ware_img img ON wi.id=img.ware_info_id LEFT JOIN ware_prop wp on
wi.id=wp.ware_info_id
where wi.is_deleted = 0 and img.img_type = 0
<if test="id != null ">
and wi.id = #{id}
</if>
<if test="districtId != null ">
and wi.district_id = #{districtId}
</if>
<if test="categoryId != null ">
and wi.ware_type_id = #{categoryId}
</if>
<if test="brandId != null ">
and wi.brand_id = #{brandId}
</if>
<if test="modelId != null and modelId != '' ">
and wi.model_id = #{modelId}
</if>
order by wi.create_time DESC
limit #{pageNo},#{pageSize}
</select>
<select id="getWareInfoById" resultMap="wareInfoResultMap" parameterType="java.lang.Integer">
select wi.id,
wi.ware_no,
wi.ware_type_id,
wi.ware_title,
wi.ware_status,
wi.pay_status,
wi.min_deposit,
wi.max_deposit,
wi.is_deleted,
wi.min_rent,
wi.max_rent,
wi.total_stock,
wi.total_sale,
wi.sku_num,
wi.tags,
wi.create_time,
wi.update_time,
wp.id as ware_prop_id,
wp.ware_info_id,
wp.prop_info_id,
wp.prop_poster,
img.id as ware_img_id,
img.img_url,
img.img_type
from ware_info wi
INNER JOIN ware_img img ON wi.id = img.ware_info_id
LEFT JOIN ware_prop wp ON wi.id = wp.ware_info_id
where wi.is_deleted = 0
and wi.id = #{id}
</select>
<resultMap id="wareDetailResultMap" type="com.mmc.pms.entity.WareDetailDO">
<id property="id" column="id"/>
<result property="wareInfoId" column="ware_info_id"/>
<result property="content" column="content"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="getWareDetailById" resultMap="wareDetailResultMap" parameterType="java.lang.Integer">
select id, ware_info_id, content, create_time, update_time
from ware_detail
where ware_info_id = #{wareInfoId}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.WebProductMallDao">
<resultMap id="resultMapGoodsInfo" type="com.mmc.pms.entity.GoodsInfoDO">
<id property="id" column="id"/>
<result property="goodsName" column="goods_name"/>
<result property="createTime" column="create_time"/>
<result property="shelfStatus" column="shelf_status"/>
<result property="masterTypeId" column="master_type_id"/>
<result property="slaveTypeId" column="slave_type_id"/>
<result property="sortTypeId" column="sort_type_id"/>
<result property="mainImg" column="img_url"/>
<result property="pid" column="pid"/>
<result property="goodsNo" column="goods_no"/>
<result property="sort" column="sort"/>
<result property="directoryName" column="sort_name"/>
<association property="goodsMasterType" resultMap="resultMasterType"/>
<association property="goodsSlaveType" resultMap="resultSlaveType"/>
</resultMap>
<select id="productCategory" resultType="com.mmc.pms.entity.ProductCategory">
select id, `name`
from product_category;
</select>
<select id="productParts" resultType="com.mmc.pms.entity.ProductCategory">
select id, `name`
from product_parts;
</select>
<select id="productQuality" resultType="com.mmc.pms.entity.ProductCategory">
select id, `name`
from product_quality;
</select>
<select id="countListGoodsInfo" resultType="java.lang.Integer">
SELECT
count(*)
FROM
goods_info gi
LEFT JOIN goods_img img ON gi.id = img.goods_info_id
AND img.img_type = 0
AND img.is_deleted = 0
LEFT JOIN goods_type gt ON gt.id = gi.master_type_id
LEFT JOIN goods_type gty ON gty.id = gi.slave_type_id
<where>
gi.is_deleted = 0
<if test="districtId != null">
and (gi.district_id = #{districtId})
</if>
<if test="brandId != null">
and (gi.brand_id = #{brandId})
</if>
<if test="partsId != null">
and (gi.parts_id = #{partsId})
</if>
<if test="modelId != null">
and (gi.mode_id = #{modelId})
</if>
<if test="qualityId != null">
and (gi.quality_id = #{qualityId})
</if>
<if test="productCategoryId != null">
and (gi.sort_type_id = #{productCategoryId})
</if>
</where>
</select>
<select id="listGoodsInfo" resultMap="resultMapGoodsInfo">
SELECT
gi.id,
gi.goods_name,
gi.shelf_status,
gi.create_time,
gi.sort_type_id,
gi.district_id,
gi.brand_id,
gi.parts_id,
gi.mode_id,
gi.quality_id,
img.img_url,
gt.type_name AS master_type_name,
gty.type_name AS slave_type_name,
st.sort_name
FROM
goods_info gi
LEFT JOIN goods_img img ON gi.id = img.goods_info_id
AND img.img_type = 0
AND img.is_deleted = 0
LEFT JOIN goods_type gt ON gt.id = gi.master_type_id
LEFT JOIN goods_type gty ON gty.id = gi.slave_type_id
LEFT JOIN sort_type st ON st.id = gi.sort_type_id
<where>
gi.is_deleted = 0
<if test="districtId != null">
and (gi.district_id = #{districtId})
</if>
<if test="brandId != null">
and (gi.brand_id = #{brandId})
</if>
<if test="partsId != null">
and (gi.parts_id = #{partsId})
</if>
<if test="modelId != null">
and (gi.mode_id = #{modelId})
</if>
<if test="qualityId != null">
and (gi.quality_id = #{qualityId})
</if>
<if test="productCategoryId != null">
and (gi.sort_type_id = #{productCategoryId})
</if>
</where>
ORDER BY
gi.shelf_status DESC , gi.create_time DESC
limit #{pageNo},#{pageSize}
</select>
<resultMap id="resultMasterType" type="com.mmc.pms.entity.GoodsTypeDO">
<id property="id" column="id"/>
<result property="typeName" column="master_type_name"/>
<result property="icon" column="icon"/>
<result property="pid" column="pid"/>
<result property="sort" column="sort"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="description" column="description"/>
</resultMap>
<resultMap id="resultSlaveType" type="com.mmc.pms.entity.GoodsTypeDO">
<id property="id" column="id"/>
<result property="typeName" column="slave_type_name"/>
<result property="icon" column="icon"/>
<result property="pid" column="pid"/>
<result property="sort" column="sort"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="description" column="description"/>
</resultMap>
<select id="listGoodsTypeByTwoLevel" resultMap="resultSlaveType">
SELECT gty.type_name as slave_type_name,
gty.id,
gty.pid,
gty.description
FROM goods_type gt
INNER JOIN goods_type gty ON gt.id = gty.pid
WHERE gty.is_deleted = 0
</select>
<select id="listGoodsTypeByTwoLevelList" resultMap="resultSlaveType">
SELECT gty.type_name AS slave_type_name,
gty.id,
gty.pid,
gty.description,
gty.remark,
gty.sort,
gty.create_time
FROM goods_type gt
INNER JOIN goods_type gty ON gt.id = gty.pid
WHERE gty.is_deleted = 0
AND gty.sort_type_id = #{type}
</select>
<select id="findProduct" resultType="java.lang.Integer">
SELECT count(1)
FROM goods_info gi
INNER JOIN mall_prod_sku_info mpsi ON mpsi.goods_info_id = gi.id
INNER JOIN product_sku ps ON mpsi.prod_sku_id = ps.id
AND ps.is_deleted = 0
INNER JOIN brand_info bi ON ps.brand_info_id = bi.id
AND bi.is_delete = 0
WHERE gi.is_deleted = 0
AND gi.id = #{id}
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论