This commit is contained in:
junshuai
2022-07-23 13:54:07 +08:00
parent 809c426b5a
commit 62548736a7
4912 changed files with 827659 additions and 38 deletions

View File

@@ -0,0 +1,14 @@
package cn.pluss.platform.alidevice;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 阿里扫码设备枚举
* @author: Administrator
* @DATE: 2021/12/22 13:52
*/
@Getter
@AllArgsConstructor
public enum AliScanCodeDeviceEnum {
}

View File

@@ -0,0 +1,84 @@
package cn.pluss.platform.alidevice;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.util.StringUtil;
import lombok.Data;
/**
*
*阿里云扫码设备收款参数
*@author: bzg
*@time: 2021/12/22 14:26
*/
@Data
public class AliScanCodeDevicePayEntity {
public static Integer SCAN_PAY_TYPE = 2;
/**
* 设备SN号
* @date: 2021/12/22 14:29
*/
private String code;
/**
* 收款金额
* @date: 2021/12/22 14:29
*/
private Double fee;
/**
* 付款类型 扫码收款固定为2
* @date: 2021/12/22 14:29
*/
private Integer type;
/**
* 付款码
* @date: 2021/12/22 14:31
*/
private String auth;
/**
* 备注
* @date: 2021/12/22 14:35
*/
private String remark;
/**
* sn
*/
private String sn;
/**
* 支付方式
* @date: 2021/12/23 18:46
*/
private String p_type;
private String trace;
public static Result success(String message,Object data){
return new Result(0,message,data);
}
public static Result fail(String message){
return new Result(1,message);
}
public static Result fail(String message,Object data){
return new Result(1,message,data);
}
public static Result await(String message,Object data){
return new Result(2,message,data);
}
public String getCode() {
if (StringUtil.isEmpty(code)){
return sn;
}
return code;
}
}

View File

@@ -0,0 +1,24 @@
package cn.pluss.platform.alidevice;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 阿里扫码设备收款类型枚举
* @author: Administrator
* @DATE: 2021/12/22 13:52
*/
@Getter
@AllArgsConstructor
public enum AliScanCodeDevicePayEnum {
QRCODE(1,"qrcode","扫码支付"),
BARCODE(2,"barcode","反扫支付");
private int status;
private String code;
private String name;
}

View File

@@ -0,0 +1,68 @@
package cn.pluss.platform.alidevice;
import cn.pluss.platform.entity.DeviceStock;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
/**
*
*阿里扫码设备状态返回参数封装
*@author: bzg
*@time: 2021/12/22 11:39
*/
@Data
public class AliScanCodeDeviceStatus {
/**
* 绑定状态值
* @date: 2021/12/22 11:47
*/
private Integer status;
private String store_name;
private String merchant_name;
private String mercId;
@Getter
@AllArgsConstructor
enum DeviceStatusEnum{
SUCCESS(1,"已绑定"),
FAIL(0,"未绑定");
private Integer code;
private String name;
}
/**
* 获取设备绑定状态
* @date: 2021/12/22 13:45
* @param deviceStock:
* @return java.lang.Integer
*/
public static RespDeviceEntity getAliDeviceStatusV1(DeviceStock deviceStock){
if(deviceStock == null || !"3".equals(deviceStock.getStatus())){
return RespDeviceEntity.fail("设备号有误或设备状态异常",DeviceStatusEnum.FAIL.code);
}
return RespDeviceEntity.success("获取成功", DeviceStatusEnum.SUCCESS.code);
}
public static RespDeviceEntity getAliDeviceStatusV2(DeviceStock deviceStock) {
AliScanCodeDeviceStatus deviceStatus = new AliScanCodeDeviceStatus();
RespDeviceEntity v1 = getAliDeviceStatusV1(deviceStock);
deviceStatus.setStatus((Integer) v1.getData());
if(DeviceStatusEnum.SUCCESS.getCode().equals(deviceStatus.getStatus())){
deviceStatus.setStore_name(deviceStock.getActMercName());
deviceStatus.setMerchant_name(deviceStock.getActMercName());
deviceStatus.setMercId(deviceStock.getActMercId());
v1.setData(deviceStatus);
}
return v1;
}
}

View File

@@ -0,0 +1,46 @@
package cn.pluss.platform.alidevice;
import lombok.Data;
/**
*
*封装阿里云设备 RespDeviceEntity
*@author: bzg
*@time: 2021/12/23 10:22
*/
@Data
public class RespDeviceEntity<T> {
private Integer code;
private String message;
private T data;
public RespDeviceEntity(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
public RespDeviceEntity(Integer code, String message) {
this.code = code;
this.message = message;
}
public static RespDeviceEntity success(String message, Object data){
return new RespDeviceEntity(0,message,data);
}
public static RespDeviceEntity fail(String message){
return new RespDeviceEntity(1,message);
}
public static RespDeviceEntity fail(String message,Object data){
return new RespDeviceEntity(1,message,data);
}
public static RespDeviceEntity await(String message,Object data){
return new RespDeviceEntity(2,message,data);
}
}

View File

@@ -0,0 +1,37 @@
package cn.pluss.platform.api;
import lombok.Data;
import java.math.BigDecimal;
/**
* TODO
* 分账子商户配置
* @author crystal
* @date 2022/6/29 16:07
*/
@Data
public class MercSubSplitAccount {
/**
* 商户编号
*/
private String merchantCode;
/**
* 分账金额
*/
private String divAmount;
/**
* 分账比例divMode=01时必填小数格式最小长度1位最大4位小数位0.2365, 分账比例之和必须为1
*/
private String divRatio;
/**
* 是否收取手续费0102否
* 若配置手续费收支分离,该参数配置的手续费承担方不生效
*/
private String isChargeFee;
}

View File

@@ -0,0 +1,24 @@
package cn.pluss.platform.api;
import lombok.Data;
import java.math.BigDecimal;
/**
* TODO
* 分账退款参数封装
* @author crystal
* @date 2022/7/4 16:33
*/
@Data
public class SplitRefund {
private String merchantCode;
private String refundAmt;
private String divisionMode;
private String merchantId;
}

View File

@@ -0,0 +1,212 @@
package cn.pluss.platform.api;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.util.StringUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.List;
/**
* TODO
* 商户分账接口请求参数封装操作
* @author crystal
* @date 2022/6/29 15:54
*/
@Data
public class SplitReq {
/**
* 请求日志id
*/
private String logId;
/**
* 请求方法名称
*/
@Getter
@AllArgsConstructor
public enum Method{
/**
* 分账设置
*/
MERC_ACCEPT("syb.split.merc.accept","分账设置"),
ORDER_ACCEPT("syb.split.order.accept","订单分账"),
SPLIT_QUERY("syb.split.merc.query","分账查询"),
REFUND_QUERY("syb.split.refund.query","退款查询"),
MERC_REFUND("syb.split.order.refund","分账退款");
private String code;
private String name;
public static boolean vailMethod(String method){
if(StringUtil.isEmpty(method)){
return false;
}
for (Method m:Method.values()){
if(m.getCode().equals(method)){
return true;
}
}
return false;
}
public static Method getVal(String method){
for (Method m:Method.values()){
if(m.getCode().equals(method)){
return m;
}
}
return null;
}
}
@Getter
@AllArgsConstructor
public enum DivisionMode{
/**
* 分账类型比例
*/
SCALE("01","比例"),
/**
* 分账类型金额
*/
AMT("02","金额");
private String value;
private String name;
public static boolean vailMode(String mode){
if(StringUtil.isEmpty(mode)){
return false;
}
if(mode.equals(AMT.getValue())){
MsgException.throwException("分账类型为金额暂不可用");
}
for (DivisionMode m:DivisionMode.values()){
if(m.getValue().equals(mode)){
return true;
}
}
return false;
}
}
/**
* 商户编号
*/
private String merchantCode;
private String method;
/**
* 分账模式 01比例 02金额
*/
private String divisionMode;
/**
* 是否重新分账YN
*/
private String isAgainDivision;
/**
* 原订单是否参与分账0102否
*/
private String isDivistion;
/**
* 签名
*/
private String sign;
/**
* 商户订单号
*/
private String mercOrderNo;
/**
* 退款金额
*/
private String refundAmt;
/**
* 退款原因
*/
private String refundReason;
/**
* 商户退款单号
*/
private String mercRefundNo;
/**
* 异步通知地址
*/
private String notifyUrl;
/**
* 原订单交易金额
*/
private String orderAmt;
private List<MercSubSplitAccount> divList;
private List<SplitRefund> refundList;
public Method checkParams() {
MsgException.checkBlank(this.getMerchantCode(),"收款方商户号不能为空");
MsgException.checkBlank(this.getLogId(),"请求日志id不能为空");
MsgException.checkBlank(this.getMethod(),"请求方法method参数不能为空");
MsgException.checkBlank(this.getSign(),"签名不能为空!");
boolean flag = Method.vailMethod(this.getMethod());
MsgException.check(!flag,"请求method参数有误");
Method val = Method.getVal(this.getMethod());
switch (val){
case MERC_ACCEPT:
MsgException.checkBlank(this.getNotifyUrl(),"异步通知地址不能为空");
MsgException.checkBlank(this.getDivisionMode(),"分账类型不能为空");
MsgException.check(!DivisionMode.vailMode(this.getDivisionMode()),"分账类型参数有误");
MsgException.checkBlank(this.getDivList(),"分账商户数据不能为空");
for (MercSubSplitAccount sub:this.getDivList()) {
MsgException.checkBlank(sub.getMerchantCode(),"分账商户号不能为空");
}
break;
case ORDER_ACCEPT:
MsgException.checkBlank(this.getMercOrderNo(),"原商户订单号不能为空");
MsgException.checkBlank(this.getNotifyUrl(),"异步通知地址不能为空");
MsgException.checkBlank(this.getDivisionMode(),"分账类型不能为空");
MsgException.check(!DivisionMode.vailMode(this.getDivisionMode()),"分账类型参数有误");
MsgException.checkBlank(this.getDivList(),"分账详情数据不能为空");
break;
case SPLIT_QUERY:
MsgException.checkBlank(this.getMercOrderNo(),"原交易单号不能为空!");
break;
case REFUND_QUERY:
MsgException.checkBlank(this.getMercOrderNo(),"原商户交易单号不能为空!");
MsgException.checkBlank(this.getMercRefundNo(),"商户退款单号不能为空!");
break;
case MERC_REFUND:
MsgException.checkBlank(this.getMercOrderNo(),"原商户交易单号不能为空!");
MsgException.checkNull(this.getRefundAmt(),"退款金额不能为空!");
MsgException.check(!StringUtil.isNumber(this.getRefundAmt()),"退款金额格式有误,单位(元)保留两位小数!");
MsgException.checkBlank(this.getRefundReason(),"退款原因不能为空!");
MsgException.checkBlank(this.getNotifyUrl(),"异步回调地址不能为空!");
MsgException.checkBlank(this.getMercRefundNo(),"商户退款单号不能为空!");
MsgException.checkNull(this.getRefundList(),"分账商户退款信息不能为空!");
MsgException.check(this.getRefundList().isEmpty(),"分账商户的退款参数不能为空!");
break;
default:
MsgException.throwException("请求方法method参数有误");
}
return val;
}
}

View File

@@ -0,0 +1,23 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.dto.BankInfoDTO;
import cn.pluss.platform.entity.BankCard;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 银行卡信息转换接口
* @author DJH
*/
@Mapper
public interface BankCardConverter {
BankCardConverter INSTANCE = Mappers.getMapper(BankCardConverter.class);
/**
* 属性转换
* @param bankInfoDTO
* @return BankCard实体类
*/
BankCard dto2Domain(BankInfoDTO bankInfoDTO);
}

View File

@@ -0,0 +1,184 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.dto.*;
import cn.pluss.platform.entity.*;
import cn.pluss.platform.vo.*;
import com.aliyuncs.geoip.model.v20200101.DescribeIpv4LocationResponse;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.factory.Mappers;
/**
* @author djh
*/
@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
public interface Converter {
Converter INSTANCE = Mappers.getMapper(Converter.class);
/**
* MerchantCashPlaceStaff转换为VO
*
* @param cashPlaceStaff MerchantCashPlaceStaff对象
* @return
*/
MerchantCashPlaceStaffVO toVO(MerchantCashPlaceStaff cashPlaceStaff);
/**
* MerchantChannelStatus转换为VO
*
* @param entity MerchantChannelStatus对象
* @return
*/
ChannelStatusVO toVO(MerchantChannelStatus entity);
RegionReflect toEntity(RegionReflectDTO dto);
MerchantRateNewVO toVO(MerchantRateNew merchantRateNew);
MerchantRateNew trans(MerchantRateNewRecord rateNewRecord);
MerchantRateNewRecord trans(MerchantRateNew rateNew);
@Mapping(target = "id", ignore = true)
@Mapping(target = "createTime", ignore = true)
@Mapping(target = "updateTime", ignore = true)
void cp(MerchantRateNewRecord source, @MappingTarget MerchantRateNew target);
MerchantRateNewRecordVO toVO(MerchantRateNewRecord rateNewRecord);
AccountDTO toDTO(Account account);
Account toEntity(AccountDTO accountDTO);
@Mapping(target = "id", ignore = true)
@Mapping(target = "createTime", ignore = true)
@Mapping(target = "updateTime", ignore = true)
void cp(IdCard source, @MappingTarget IdCard target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "createTime", ignore = true)
@Mapping(target = "updateTime", ignore = true)
void cp(BankCard source, @MappingTarget BankCard target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(Account source, @MappingTarget AccountDTO target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(AccountDTO source, @MappingTarget Account target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(BankInfoDTO source, @MappingTarget BankCard target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(UserApp source, @MappingTarget UserAppVO target);
/**
* dto转VO
* @param accountDTO
* @return
*/
AccountVO toVO(AccountDTO accountDTO);
/**
* dto 转为 entity
*
* @param deviceStockDTO
* @return
*/
DeviceStock toEntity(DeviceStockDTO deviceStockDTO);
/**
* dto 转为 entity
*
* @param bankCardDTO
* @return
*/
BankCard toEntity(BankCardDTO bankCardDTO);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(IpLocationCache source, @MappingTarget DescribeIpv4LocationResponse target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "createTime", ignore = true)
@Mapping(target = "updateTime", ignore = true)
void cp(DescribeIpv4LocationResponse source, @MappingTarget IpLocationCache target);
DeviceStockVO toVO(DeviceStock entity);
DeviceDetailVO toVO(DeviceDetail entity);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
@Mapping(target = "id", ignore = true)
void cp(UserVoice source, @MappingTarget UserVoice target);
/**
* 参数复制
* @param source 源数据对象
* @param target 目标对象
*/
void cp(MercTradeDataDTO source, @MappingTarget MercTradeDataDTO target);
/**
* 参数复制
* @param entity
* @return
*/
JftReceiptInfoVO toVO(JftReceiptInfo entity);
@Mapping(target = "id", ignore = true)
JftBankCard toJftData(BankCard bankCard);
@Mapping(target = "id", ignore = true)
JftMerchantRateRecord toRecord(JftMerchantRate entity);
@Mapping(target = "id", ignore = true)
@Mapping(target = "createTime", ignore = true)
@Mapping(target = "updateTime", ignore = true)
void cp(JftMerchantRateRecord source, @MappingTarget JftMerchantRate target);
@Mapping(target = "id", ignore = true)
MercMemberSetVO toVO(MercMemberSet mercMemberSet);
@Mapping(target = "id", ignore = true)
JftMercBaseInfoVO toVO(JftMercBaseInfo jftMercBaseInfo);
@Mapping(target = "id", ignore = true)
JftMercPaymentChannelVO toVO(JftMercPaymentChannel jftMercPaymentChannel);
}

View File

@@ -0,0 +1,22 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.entity.MerchantImage;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* 图片实体类属性转换接口
* @author DJH
*/
@Mapper
public interface ImgConverter {
ImgConverter INSTANCE = Mappers.getMapper(ImgConverter.class);
/**
* 属性复制
* @param merchantImage MerchantImage实体类
* @return MerchantImage实体类
*/
MerchantImage imgCopy(MerchantImage merchantImage);
}

View File

@@ -0,0 +1,73 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.dto.MerchantBaseInfoDTO;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.entity.MerchantStore;
import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.vo.MerchantBaseInfoVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* @author DJH
* 实体类属性转换类
*/
@Mapper
public interface MerchantBaseInfoConverter {
MerchantBaseInfoConverter INSTANCE = Mappers.getMapper(MerchantBaseInfoConverter.class);
/**
* 实体类转DTO
* @param entity
* @return
*/
MerchantBaseInfoDTO domain2dto(MerchantBaseInfo entity);
/**
* @param entity
* @return
*/
MerchantBaseInfoVO domain2VO(MerchantBaseInfo entity);
/**
* @param entity
* @return
*/
MerchantBaseInfo vo2domain(MerchantBaseInfoVO entity);
/**
* DTO转实体类
* @param dto
* @return
*/
MerchantBaseInfo dto2Domain(MerchantBaseInfoDTO dto);
/**
* MerchantBaseInfo 转 MerchantStore
* @param entity
* @return
*/
@Mappings({
@Mapping(source = "alias", target = "storeName"),
@Mapping(source = "alias", target = "merchantName")
})
MerchantStore baseInfo2StoreInfo(MerchantBaseInfo entity);
/**
* MerchantBaseInfo 属性映射到 UserApp中
* @param entity
* @return
*/
UserApp baseInfo2UserApp(MerchantBaseInfo entity);
/**
* 实体类转DTO
* @param entityList
* @return
*/
List<MerchantBaseInfoDTO> domain2dto(List<MerchantBaseInfo> entityList);
}

View File

@@ -0,0 +1,22 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.entity.MerchantCashPlace;
import cn.pluss.platform.vo.MerchantCashPlaceVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
/**
* @author DJH
*/
@Mapper
public interface MerchantCashPlaceConverter {
MerchantCashPlaceConverter INSTANCE = Mappers.getMapper(MerchantCashPlaceConverter.class);
/**
* 实体类转vo
* @param merchantCashPlace 实体类信息
* @return
*/
MerchantCashPlaceVO entity2VO(MerchantCashPlace merchantCashPlace);
}

View File

@@ -0,0 +1,25 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.dto.MerchantStaffDTO;
import cn.pluss.platform.entity.UserInfo;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.NullValuePropertyMappingStrategy;
import org.mapstruct.factory.Mappers;
/**
* @author DJH
*/
@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
public interface MerchantStaffConverter {
MerchantStaffConverter INSTANCE = Mappers.getMapper(MerchantStaffConverter.class);
/**
* 数据转换
* @param merchantStaffDTO
* @return
*/
@Mapping(source = "userId", target = "id")
UserInfo toUserInfo(MerchantStaffDTO merchantStaffDTO);
}

View File

@@ -0,0 +1,50 @@
package cn.pluss.platform.converter;
import cn.pluss.platform.annotation.ToEntity;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.entity.MerchantStore;
import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.entity.UserInfo;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
/**
* @author DJH
*/
@Mapper(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
public interface UserAppConverter {
UserAppConverter INSTANCE = Mappers.getMapper(UserAppConverter.class);
/**
* 复制属性
*
* @param merchantStore 源数据对象
* @param userApp 目标对象
*/
@Mapping(source = "id", target = "storeId2")
@Mapping(target = "status", ignore = true)
@ToEntity
void copyProperties(MerchantStore merchantStore, @MappingTarget UserApp userApp);
/**
* 复制属性
*
* @param merchantBaseInfo 源数据对象
* @param userApp 目标对象
*/
@Mapping(source = "alias", target = "merchantName")
@Mapping(source = "id", target = "mercId")
@Mapping(target = "status", ignore = true)
@ToEntity
void copyProperties(MerchantBaseInfo merchantBaseInfo, @MappingTarget UserApp userApp);
/**
* 对象属性转换
* @param userInfo 用户信息
* @return
*/
@Mapping(source = "createTime", target = "createDt")
@Mapping(source = "id", target = "userId")
@Mapping(target = "id", ignore = true)
UserApp toUserApp(UserInfo userInfo);
}

View File

@@ -0,0 +1,115 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.Account;
import cn.pluss.platform.entity.BankCard;
import cn.pluss.platform.entity.IdCard;
import cn.pluss.platform.exception.MsgException;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Objects;
/**
* 结算信息
* @author DJH
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class AccountDTO extends Account {
/**
* 进件状态
*/
private String status;
/**
* 结算人银行卡
*/
@Valid
@NotNull(message = "请完善银行卡信息")
private BankCard bankCard;
/**
* 结算人身份信息
*/
@Valid
private IdCard idcard;
/**
* 商户类型,-1则表示查询现有信息其他类型则会过滤某些数据
*/
private String merchantType;
/**
* 通过数据获取进件类型
*/
public static void initSettleType(AccountDTO accountDTO) {
BankCard bankCard = accountDTO.getBankCard();
IdCard idCard = accountDTO.getIdcard();
// 对公
if (BankCard.ACCOUNT_TYPE_CORPORATE.equals(bankCard.getAccountType())) {
accountDTO.setSettleType(Account.SETTLE_TYPE_CORPORATE);
return;
}
// 法人-对私法人
if (BankCard.ACCOUNT_TYPE_PRIVATE.equals(bankCard.getAccountType()) && idCard == null) {
accountDTO.setSettleType(Account.LEGAL_PRIVATE_LEGAL);
return;
}
MsgException.check(idCard == null, "请传递身份证信息");
accountDTO.setSettleType(Account.LEGAL_PRIVATE_ILLEGAL);
}
/**
* 请求数据校验
*/
public void paramCheck() {
if (StringUtils.isBlank(getSettleType())) {
// 为空时候,默认为对公
setSettleType(Account.SETTLE_TYPE_CORPORATE);
// throw new MsgException("缺少结算类型参数");
}
if (Objects.equals(getSettleType(), Account.SETTLE_TYPE_PRIVATE_LEGAL) || Objects.equals(getSettleType(), Account.SETTLE_TYPE_CORPORATE)) {
idcard = null;
}
if (idcard != null && !Objects.equals(idcard.getUserId(), getUserId())) {
throw new MsgException("用户id应保持一致");
}
if (bankCard != null && !bankCard.getUserId().equals(getUserId())) {
throw new MsgException("用户id应保持一致");
}
if (bankCard == null) {
throw new MsgException("缺少银行卡信息");
}
if (bankCard.getAccountType() == null) {
bankCard.setAccountType(BankCard.ACCOUNT_TYPE_PRIVATE);
}
if (BankCard.ACCOUNT_TYPE_CORPORATE.equals(bankCard.getAccountType()) && StringUtils.isBlank(bankCard.getLicenseUrl())) {
throw new MsgException("对公账户需要传入开户许可证");
}
if (BankCard.ACCOUNT_TYPE_CERT.equals(bankCard.getAccountType())) {
// 结算信息这里实名认证的类型作为对私账户来识别
bankCard.setAccountType(BankCard.ACCOUNT_TYPE_PRIVATE);
}
if (!BankCard.ACCOUNT_TYPE_PRIVATE.equals(bankCard.getAccountType()) && !BankCard.ACCOUNT_TYPE_CORPORATE.equals(bankCard.getAccountType())) {
throw new MsgException("请传入正确的银行卡类型");
}
}
}

View File

@@ -0,0 +1,38 @@
package cn.pluss.platform.dto;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class AccountInfoDTO {
/**
* 支付宝账号
*/
private String account;
/**
* 姓名
*/
private String contactName;
/**
* 手机号
*/
private String contactMobile;
/**
* 邮箱
*/
private String contactEmail;
@Override
public String toString() {
return "AccountInfoDTO [account=" + account + ", contactName=" + contactName + ", contactMobile="
+ contactMobile + ", contactEmail=" + contactEmail + "]";
}
}

View File

@@ -0,0 +1,60 @@
package cn.pluss.platform.dto;
import java.util.List;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.entity.MerchantImage;
import cn.pluss.platform.util.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
* 支付宝进件dto
*/
@Data
public class AliMerchantAuditDTO {
@ApiModelProperty(value="当前用户的userId")
private Integer userId;
public Result<MerchantBaseInfo> convertMerchantBaseInfo(MerchantBaseInfo merchantBaseInfo) {
if(StringUtil.isEmpty(merchantBaseInfo.getAliAccount())) {
return ResultGenerator.genFailResult("支付宝账号不能为空");
}
if(StringUtil.isEmpty(merchantBaseInfo.getContactName())||StringUtil.isEmpty(merchantBaseInfo.getContactMobile())||StringUtil.isEmpty(merchantBaseInfo.getEmail())||StringUtil.isEmpty(merchantBaseInfo.getAliMcc())) {
return ResultGenerator.genFailResult("请先完善商户基本资料");
}
if(StringUtil.isEmpty(merchantBaseInfo.getBussAuthNum())){
return ResultGenerator.genFailResult("请先上传营业执照");
}
return ResultGenerator.genSuccessResult(merchantBaseInfo);
}
public Result<BatchInfoDTO> convertBatchInfoDTO(List<MerchantImage> list, MerchantBaseInfo merchantBaseInfo) {
BatchInfoDTO batch = new BatchInfoDTO();
batch.setMccCode(merchantBaseInfo.getAliMcc());
batch.setBusinessLicenseNo(merchantBaseInfo.getBussAuthNum());
for (MerchantImage merchantImage : list) {
if("03".equals(merchantImage.getPhotoType())) {
batch.setBusinessLicensePic(merchantImage.getPicUrl());
}
if("06".equals(merchantImage.getPhotoType())) {
batch.setShopSignBoardPic(merchantImage.getPicUrl());
}
}
if(StringUtil.isEmpty(batch.getBusinessLicensePic())) {
return ResultGenerator.genFailResult("营业执照不能为空不能为空");
}
if(StringUtil.isEmpty(batch.getShopSignBoardPic())) {
return ResultGenerator.genFailResult("门头照不能为空");
}
return ResultGenerator.genSuccessResult(batch);
}
}

View File

@@ -0,0 +1,43 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.constants.CommonError;
import cn.pluss.platform.entity.BankCard;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Pattern;
/**
* @author djh
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class BankCardDTO extends BankCard {
/**
* 到账类型 - receiptType, 目前类型与通道有做映射, 所以暂用channelType
* D1、D0
*/
@Pattern(regexp = "(D1)|(D0)", message = CommonError.CHANNEL_TYPE_ILLEGAL, groups = {BankCard.class})
private String channelType;
// public static void paramCheck(BankCardDTO bankCardDTO) {
// if (!Account.CHANNEL_TYPE_D1.equals(bankCardDTO.getChannelType()) && !Account.CHANNEL_TYPE_D0.equals(bankCardDTO.getChannelType())) {
// throw new MsgException("通道类型错误");
// }
//
// MsgException.checkNull(bankCardDTO.getBankName(), CommonError.BANK_NAME_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBranchProvince(), CommonError.BANK_BRANCH_PROVINCE_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBranchCity(), CommonError.BANK_BRANCH_CITY_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBranchArea(), CommonError.BANK_BRANCH_AREA_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBranchName(), CommonError.BANK_BRANCH_NAME_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBankCardNo(), CommonError.BANK_BRANCH_CNAPS_EMPTY);
//
// MsgException.checkNull(bankCardDTO.getBankCardNo(), CommonError.BANK_BRANCH_CNAPS_EMPTY);
// }
}

View File

@@ -0,0 +1,81 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.constants.CommonError;
import cn.pluss.platform.exception.MsgException;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
/**
* @author djh
*
*/
@Data
public class BankInfoDTO {
@ApiModelProperty(value="当前用户Id")
private String userId;
@ApiModelProperty(value="开户银行")
private String bankName;
@ApiModelProperty(value="银行省市区编码")
private String bankAddressNo;
private String branchProvince;
private String branchCity;
private String branchArea;
@ApiModelProperty(value="开户地区")
private String bankAddress;
@ApiModelProperty(value="开户支行")
private String branchName;
@ApiModelProperty(value="联行号")
private String contactLine;
@ApiModelProperty(value="银行卡号")
private String bankCardNo;
@ApiModelProperty(value="银行预留号码")
private String phone;
@ApiModelProperty(value="银行卡照片")
private String bankCardFrontPic;
private String imgUrl;
@ApiModelProperty(value="账户类型。可选值: 1对私账户自然人、个体工商户可选\\r\\n 2对公账户")
private String accountType;
public void paramCheck() {
MsgException.checkBlank(userId, CommonError.NO_USER_ID);
MsgException.checkBlank(accountType, "请选择账户类型");
// 为了维持老接口的稳定性,添加参数转换
if ("1".equals(accountType)) {
accountType = "01";
}
if ("2".equals(accountType)) {
accountType = "02";
}
MsgException.checkBlank(bankName, "开户银行不能为空");
MsgException.checkBlank(branchName, "开户支行不能为空");
MsgException.checkBlank(bankCardNo, "银行卡号不能为空");
MsgException.checkBlank(phone, "银行预留号码不能为空");
MsgException.checkBlank(contactLine, "联行号不能为空");
MsgException.checkBlank(userId, "银行卡照片不能为空");
MsgException.checkBlank(userId, "缺少userId");
MsgException.checkBlank(userId, "缺少userId");
if(StringUtils.isEmpty(bankCardFrontPic) && StringUtils.isEmpty(imgUrl)) {
throw new MsgException("银行卡照片不能为空");
}
}
}

View File

@@ -0,0 +1,80 @@
package cn.pluss.platform.dto;
/**
* @author yuchen
*
* @Description
*/
public class BatchInfoDTO {
/**
* 代商户操作事务编号 通过alipay.open.agent.create接口进行创建
*/
private String batchNo;
/**
* 所属MCCCode
*/
private String mccCode;
/**
* 营业执照号码
*/
private String businessLicenseNo;
/**
* 营业执照图片。被代创建商户运营主体为个人账户必填企业账户无需填写最小5KB图片格式必须为png、bmp、gif、jpg、jpeg
*/
private String businessLicensePic;
/**
* 店铺门头照图片最小5KB图片格式必须为png、bmp、gif、jpg、jpeg
*/
private String shopSignBoardPic;
public String getBatchNo() {
return batchNo;
}
public void setBatchNo(String batchNo) {
this.batchNo = batchNo;
}
public String getMccCode() {
return mccCode;
}
public void setMccCode(String mccCode) {
this.mccCode = mccCode;
}
public String getBusinessLicenseNo() {
return businessLicenseNo;
}
public void setBusinessLicenseNo(String businessLicenseNo) {
this.businessLicenseNo = businessLicenseNo;
}
public String getBusinessLicensePic() {
return businessLicensePic;
}
public void setBusinessLicensePic(String businessLicensePic) {
this.businessLicensePic = businessLicensePic;
}
public String getShopSignBoardPic() {
return shopSignBoardPic;
}
public void setShopSignBoardPic(String shopSignBoardPic) {
this.shopSignBoardPic = shopSignBoardPic;
}
}

View File

@@ -0,0 +1,85 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.util.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class BusinessLicenseDTO {
@ApiModelProperty(value="当前用户的userId")
private Long userId;
// @ApiModelProperty(value="商户类型")
// private String merchantType;
@ApiModelProperty(value="营业执照号码")
private String bussAuthNum;
@ApiModelProperty(value="营业执照名称/商户名称")
private String bussAuthName;
@ApiModelProperty(value="营业执照上的名字")
private String principalPerson;
@ApiModelProperty(value="营业执照上的地址/注册地址")
private String bussAuthAddress;
@ApiModelProperty(value="营业执照注册开始时间")
private String bussAuthStartTime;
@ApiModelProperty(value="营业执照有效期结束时间")
private String bussAuthEndTime;
@ApiModelProperty(value="营业执照地址")
private String businessLicensePic;
@ApiModelProperty(value="营业执照是否长期有效 0短期 1长期")
private String type;
public MerchantBaseInfo convertBusinessLicenseDTO() {
MsgException.checkBlank(bussAuthNum, "请输入营业执照号");
MsgException.checkBlank(bussAuthName, "请输入营业执照上的名称");
MsgException.checkBlank(principalPerson, "请输入营业执照上的名字");
MsgException.checkBlank(bussAuthAddress, "请输入注册地址");
MsgException.checkBlank(bussAuthStartTime, "请选择营业执照注册开始时间");
MsgException.checkBlank(type, "请选择营业执照是否长期");
MsgException.checkBlank(businessLicensePic, "请上传营业执照");
if("0".equals(type) && StringUtil.isEmpty(bussAuthEndTime)) {
throw new MsgException("请选择营业执照有效期结束时间若长期有效则选择2099-12-30");
}
MerchantBaseInfo merchantBaseInfo = new MerchantBaseInfo();
merchantBaseInfo.setBussAuthNum(bussAuthNum);
merchantBaseInfo.setBussAuthName(bussAuthName);
merchantBaseInfo.setMerchantName(bussAuthName);
merchantBaseInfo.setPrincipalPerson(principalPerson);
merchantBaseInfo.setBussAuthAddress(bussAuthAddress);
merchantBaseInfo.setBussAuthStartTime(bussAuthStartTime);
if("1".equals(type)) {
merchantBaseInfo.setBussAuthEndTime("2099-12-30");
}else if("0".equals(type)){
merchantBaseInfo.setBussAuthEndTime(bussAuthEndTime);
}
merchantBaseInfo.setUserId(userId + "");
merchantBaseInfo.setBuslicType(type);
return merchantBaseInfo;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

View File

@@ -0,0 +1,71 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import cn.pluss.platform.entity.MerchantBankCard;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.util.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
/**
* @author yuchen
*
* @Description
* 实名认证dto
*/
@Data
@Accessors(chain = true)
public class CertificationDTO {
@NotEmpty(message = "缺少userId")
@ApiModelProperty(value="当前用户的userId")
private String userId;
@NotEmpty(message = "缺少身份证号码")
@ApiModelProperty(value="身份证号码")
private String certnum;
@ApiModelProperty(value="真实姓名")
private String realName;
@NotEmpty(message = "身份证起始时间不能为空")
@ApiModelProperty(value="身份证有效期开始时间")
private String certStartTime;
@NotEmpty(message = "身份证有效期不能为空")
@ApiModelProperty(value="身份证有效期结束时间")
private String certPeriod;
@ApiModelProperty(value="身份证正面照")
private String certFullPhoto;
@ApiModelProperty(value="身份证反面照")
private String certBacKPhoto;
public void paramCheck() {
if(StringUtil.isEmpty(certnum)) {
throw new MsgException("真实姓名不能为空");
}
if(StringUtil.isEmpty(certnum)) {
throw new MsgException("身份证号不能为空");
}
if(StringUtil.isEmpty(certStartTime)) {
throw new MsgException("身份证起始时间不能为空");
}
if(StringUtil.isEmpty(certPeriod)) {
throw new MsgException("身份证号有效日期不能为空");
}
if(StringUtil.isEmpty(certFullPhoto)) {
throw new MsgException("身份证正面照不能为空");
}
if(StringUtil.isEmpty(certBacKPhoto)) {
throw new MsgException("身份证反面照不能为空");
}
}
}

View File

@@ -0,0 +1,31 @@
package cn.pluss.platform.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* @author Djh
*/
@Data
@ApiModel("修改密码DTO")
public class ChangePwdDTO {
@ApiModelProperty(value = "新手机号验证码", required = true)
@NotEmpty(message = "验证码不能为空!")
private String code;
@ApiModelProperty(value = "密码", required = true)
@NotEmpty(message = "密码不能为空!")
private String password;
@ApiModelProperty(value = "原手机号", required = true)
@NotEmpty(message = "原手机号不能为空!")
private String oldPhone;
@ApiModelProperty(value = "新手机号", required = true)
@NotEmpty(message = "新手机号不能为空!")
private String phone;
}

View File

@@ -0,0 +1,95 @@
package cn.pluss.platform.dto;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import cn.pluss.platform.entity.DeviceMerchantBuy;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class DeviceMerchantBuyDTO {
@ApiModelProperty(value = "订单金额")
private Double orderAmount;
@ApiModelProperty(value = "购买数量")
private Integer quantity;
@ApiModelProperty(value = "设备code")
private String code;
@ApiModelProperty(value = "设备唯一识别码")
private String venderCode;
@ApiModelProperty(value = "厂家型号")
private String venderModel;
@ApiModelProperty(value = "省市区")
private String provinces;
@ApiModelProperty(value = "支付方式")
private String payCode;
@ApiModelProperty(value = "支付名称")
private String payName;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "联系人姓名")
private String linkName;
@ApiModelProperty(value = "联系人手机号")
private String linkPhone;
@ApiModelProperty(value = "邮箱")
private String email;
/**
* 规格类别
*/
private String type;
/**
* 订单类型, 1: 押金购买
*/
private String orderType;
public Map<String, String> convert(String orderNo) {
Map<String, String> result = new HashMap<String, String>(16);
result.put("body", "收银呗商品订单支付");
result.put("subject", "收银呗商品订单支付");
result.put("outTradeNo", orderNo);
result.put("totalAmount", orderAmount + "");
return result;
}
public DeviceMerchantBuy convertDeviceMerchantBuy() {
DeviceMerchantBuy deviceMerchantBuy = new DeviceMerchantBuy();
deviceMerchantBuy.setOrderAmount(orderAmount);
deviceMerchantBuy.setQuantity(quantity);
deviceMerchantBuy.setVenderCode(venderCode);
deviceMerchantBuy.setVenderModel(venderModel);
deviceMerchantBuy.setProvinces(provinces);
deviceMerchantBuy.setPayCode(payCode);
deviceMerchantBuy.setPayName(payName);
//更改支付时间
Calendar calendar = Calendar.getInstance();
deviceMerchantBuy.setTransDt(calendar.getTime());
deviceMerchantBuy.setAddress(address);
deviceMerchantBuy.setLinkName(linkName);
deviceMerchantBuy.setLinkPhone(linkPhone);
deviceMerchantBuy.setStatus("0");
deviceMerchantBuy.setEmail(email);
return deviceMerchantBuy;
}
}

View File

@@ -0,0 +1,69 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.DeviceStock;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author DJH
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class DeviceStockDTO extends DeviceStock {
private String userId;
private String qrNo;
/**
* 订单 api类型查询字段 1:表示我的设备 2表示团队设备
*/
private String pType;
/**
* api 绑定状态查询 1:已绑定 -1表示未绑定
*/
private String bindStatus;
/**
* 设备名称检索
*/
private String deviceName;
/**
* 日期时间检索
*/
private String startDate;
/**
* 日期时间检索
*/
private String endDate;
// /**
// * 开始SN号
// */
// private String startSnNo;
//
// /**
// * 结束SN号
// */
// private String endSnNo;
/**
* 开始设备号
*/
private String startDeviceNo;
/**
* 结束设备号
*/
private String endDeviceNo;
/**
* 编号类型
*/
private String noType;
}

View File

@@ -0,0 +1,35 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.DeviceTransfer;
import lombok.Data;
import java.util.List;
/**
* TODO
* 设备划拨参数封装DTO
* @author crystal
* @date 2022/4/1 11:52
*/
@Data
public class DeviceTransferDTO extends DeviceTransfer {
public static final String OUT = "1";
public static final String GET = "2";
/**
* 设备号集合
*/
private List<String> deviceNoList;
/**
* 划拨记录类型 1转出设备 2接收设备
*/
private String type;
/**
* 设备编号
*/
private String snNo;
}

View File

@@ -0,0 +1,60 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import cn.pluss.platform.entity.MerchantImage;
import cn.pluss.platform.util.StringUtil;
import io.swagger.annotations.ApiModelProperty;
/**
* @author yuchen
*
* @Description
*/
public class ImgDTO {
@ApiModelProperty(value="图片路径")
private String imgUrl;
@ApiModelProperty(value="图片类型")
private String phoneType;
@ApiModelProperty(value="当前用户userId")
private String userId;
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public String getPhoneType(){
return phoneType;
}
public void setPhoneType(String phoneType) {
this.phoneType = phoneType;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Result<MerchantImage> convertImgDTO(){
if(StringUtil.isEmpty(imgUrl)) {
return ResultGenerator.genFailResult("照片url不能为空");
}
if(StringUtil.isEmpty(phoneType)) {
return ResultGenerator.genFailResult("照片类型不能为空");
}
MerchantImage merchantImage=new MerchantImage();
merchantImage.setPhotoType(phoneType);
merchantImage.setPicUrl(imgUrl);
merchantImage.setPhotoUrl(StringUtil.genRandomNum(10));
return ResultGenerator.genSuccessResult(merchantImage);
}
}

View File

@@ -0,0 +1,41 @@
package cn.pluss.platform.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ApiModel("乐刷结算单信息")
@Data
public class LeshuaAccountDTO {
@ApiModelProperty(value = "打款单号", example = "20200730000255337768")
private String billId;
@ApiModelProperty("被通知的乐刷一代编号, 代理商id")
private String topAgentId;
@ApiModelProperty(value = "乐刷商户编号", example = "3617315568")
private String merchantId;
@ApiModelProperty("实付金额(分)")
private BigDecimal realSettleAmount;
@ApiModelProperty("应付金额(分)")
private BigDecimal planSettleAmount;
@ApiModelProperty("止付金额(分)")
private BigDecimal suspendSettleAmount;
@ApiModelProperty("交易日期,由于退票重新生成打款单,则该字段会返回新打款单(精确到天)")
private String settleDate;
@ApiModelProperty("打款日期(精确到秒)")
private String remitDate;
@ApiModelProperty("结算类型(T0或T1)")
private String settleType;
@ApiModelProperty("打款状态, 详请查看 https://www.kancloud.cn/leshuadocs/saas/1147568")
private String state;
@ApiModelProperty("失败原因(打款失败则返回)")
private String failReason;
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("开户账号")
private String bankAccount;
@ApiModelProperty("开户名")
private String bankHolder;
}

View File

@@ -0,0 +1,27 @@
package cn.pluss.platform.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
* 乐刷账单dto
*/
@Data
public class LeshuaBillsDTO {
@ApiModelProperty(value="商户号")
private String merchantId;
@ApiModelProperty(value="打款单的创建日期 (创建时间是交易时间的下一天)")
private String date;
@ApiModelProperty(value="打款状态: -1打款失败; 0:打款中;1:打款成功; 2:打款退票;3:冻结出款;4全部")
private String state;
@ApiModelProperty(value="页码(页码超出总页数后返回第一页)每页默认20条数据")
private Integer pageNo;
}

View File

@@ -0,0 +1,170 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MemberOrder;
import cn.pluss.platform.entity.MerchantMenber;
import cn.pluss.platform.entity.MerchantMenberRecharge;
import io.swagger.annotations.ApiModelProperty;
/**
* @author yuchen
*
* @Description
*/
public class MemberOrderDTO {
@ApiModelProperty(value="商家code")
private String merchantCode;
@ApiModelProperty(value="商家名称")
private String merchantName;
@ApiModelProperty(value="门店Id")
private String storeId;
@ApiModelProperty(value="门店名称")
private String storeName;
@ApiModelProperty(value="订单编号")
private String orderNumber;
@ApiModelProperty(value="会员code")
private String memberCode;
@ApiModelProperty(value="昵称")
private String nickName;
@ApiModelProperty(value="订单金额")
private String orderFee;
@ApiModelProperty(value="赠送金额")
private String giveMoney;
@ApiModelProperty(value="收款人code")
private String staffCode;
@ApiModelProperty(value="收款人姓名")
private String staffName;
@ApiModelProperty(value="0 支付宝微信 通道 1乐刷")
private String aisle;
@ApiModelProperty(value="条码")
private String authCode;
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public String getMerchantCode() {
return merchantCode;
}
public void setMerchantCode(String merchantCode) {
this.merchantCode = merchantCode;
}
public String getMerchantName() {
return merchantName;
}
public void setMerchantName(String merchantName) {
this.merchantName = merchantName;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public String getMemberCode() {
return memberCode;
}
public void setMemberCode(String memberCode) {
this.memberCode = memberCode;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getOrderFee() {
return orderFee;
}
public void setOrderFee(String orderFee) {
this.orderFee = orderFee;
}
public String getStaffCode() {
return staffCode;
}
public void setStaffCode(String staffCode) {
this.staffCode = staffCode;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getAisle() {
return aisle;
}
public void setAisle(String aisle) {
this.aisle = aisle;
}
public String getGiveMoney() {
return giveMoney;
}
public void setGiveMoney(String giveMoney) {
this.giveMoney = giveMoney;
}
public MemberOrder convertMemberOrder() {
MemberOrder memberOrder=new MemberOrder();
memberOrder.setOrderNumber(orderNumber);
memberOrder.setMerchantCode(merchantCode);
memberOrder.setMerchantName(merchantName);
memberOrder.setStoreId(storeId);
memberOrder.setStoreName(storeName);
memberOrder.setMemberCode(memberCode);
memberOrder.setNickName(nickName);
memberOrder.setOrderType("1");
memberOrder.setOrderFee(orderFee);
memberOrder.setRechargeType("0");
memberOrder.setStaffCode(staffCode);
memberOrder.setStaffName(staffName);
return memberOrder;
}
public MerchantMenberRecharge convertMerchantMenberRecharge(MerchantMenber menber) {
MerchantMenberRecharge merchantMenberRecharge=new MerchantMenberRecharge();
if(null!=giveMoney&&!"".equals(giveMoney)) {
merchantMenberRecharge.setGiveMoney(Double.valueOf(giveMoney));
}
merchantMenberRecharge.setLogo(menber.getLogo());
merchantMenberRecharge.setMemberCode(memberCode);
merchantMenberRecharge.setMerchantCode(merchantCode);
merchantMenberRecharge.setMerchantName(merchantName);
merchantMenberRecharge.setNickName(nickName);
merchantMenberRecharge.setOrderNumber(orderNumber);
merchantMenberRecharge.setPhone(menber.getPhone());
merchantMenberRecharge.setRechargeMoney(Double.valueOf(orderFee));
merchantMenberRecharge.setStoreId(storeId);
merchantMenberRecharge.setStoreName(storeName);
return merchantMenberRecharge;
}
}

View File

@@ -0,0 +1,33 @@
package cn.pluss.platform.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class MemberRechargeDTO extends MerChantOrderDTO {
@ApiModelProperty(value="0 扫码充值 1现金充值")
private String type;
@ApiModelProperty(value="充值金额")
private String rechargeMoney;
@ApiModelProperty(value="当前门店Id")
private String storeId;
@ApiModelProperty(value="当前会员手机号")
private String phone;
@ApiModelProperty(value="条码值")
private String authCode;
@ApiModelProperty(value="用户名称")
private String userName;
}

View File

@@ -0,0 +1,68 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantMenber;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author yuchen
*
* @Description
*/
@Data
@ApiModel("扫码支付的传入参数")
@NoArgsConstructor
public class MemberScanPayDTO {
@ApiModelProperty(value = "扫码获得的code", required = true)
private String memberCode;
@ApiModelProperty(value = "选中的会员code", required = true)
private String authCode;
@ApiModelProperty(value = "当前商户门店id", required = true)
private String storeId;
@ApiModelProperty(value = "消费金额", required = true)
private Double consumeFee;
@ApiModelProperty(value = "商家Code", required = true)
private String merchantCode;
@ApiModelProperty(value = "当前操作用户的id", required = true)
private String userId;
@ApiModelProperty("备注")
private String remark;
/**
* 通道切换字段 0 支付宝微信官方通道 1乐刷通道 2随行付通道 3:瑞银信
*/
@ApiModelProperty("通道类型")
private String aisleSwitch;
@ApiModelProperty("店铺名称")
private String storeName;
@ApiModelProperty("商户名称")
private String merchantName;
@ApiModelProperty("用户名称")
private String userName;
public MemberScanPayDTO(MerChantOrderDTO dto, MerchantMenber menber) {
this.merchantCode = dto.getMerchantCode();
this.merchantName = menber.getMerchantName();
this.storeId = dto.getStoreId();
this.consumeFee = dto.getConsumeFee();
this.authCode = menber.getMemberCode();
this.storeName = menber.getStoreName();
this.memberCode = dto.getAuthCode();
this.userId = dto.getUserId();
this.userName = dto.getStaffName();
}
}

View File

@@ -0,0 +1,89 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.entity.MerchantChannelStatus;
import cn.pluss.platform.entity.MerchantMemberCode;
import cn.pluss.platform.entity.MerchantOrder;
import lombok.Data;
@Data
public class MerChantOrderDTO {
/**
* 0 扫码 1现金 2会员卡
*/
private String type;
//订单编号
private String orderNumber;
//商家编码
private String merchantCode;
//商家名称
private String merchantName;
//交易金额
private Double consumeFee;
//会员编码
private String memberCode;
//店铺id
private String storeId;
//店铺名称
private String storeName;
//员工编码
private String userId;
private String staffName;
//支付码
private String authCode;
//备注信息
private String remark;
//支付方式编码
private String payTypeCode;
//支付方式名名称
private String payTypeName;
/**
* 通道切换字段 0 支付宝微信官方通道 1乐刷通道 2随行付通道 3:瑞银信 4银盛
*/
private String aisleSwitch;
/**
* 上游渠道商户编号 通用
*/
private String channelNo;
/**
* @description:设备号
* @date: 2021/12/22 16:01
*/
private String deviceNo;
/**
* @description:
* @date: 2021/8/23 18:36
*/
private MerchantBaseInfo merchantBaseInfo;
private MerchantChannelStatus channelStatus;
private MerchantMemberCode mercMenberCode;
/**
* 参数转换
* @param memberRechargeDTO
* @param merchantOrder
* @param channelStatus
*/
public void conver(MemberRechargeDTO memberRechargeDTO, MerchantOrder merchantOrder, MerchantChannelStatus channelStatus) {
this.orderNumber = merchantOrder.getOrderNumber();
this.merchantCode = merchantOrder.getMerchantCode();
this.merchantName = merchantOrder.getMerchantName();
this.consumeFee = merchantOrder.getConsumeFee();
this.channelNo = channelStatus.getMerchantId();
this.storeId = memberRechargeDTO.getStoreId();
this.authCode = memberRechargeDTO.getAuthCode();
this.aisleSwitch = merchantOrder.getAisleSwitch();
this.storeName = merchantOrder.getStoreName();
}
}

View File

@@ -0,0 +1,35 @@
package cn.pluss.platform.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*
*商户活跃度统计DTO
*@author: bzg
*@time: 2022/1/7 14:05
*/
@Data
public class MercActiveDataDTO {
private Integer userId;
private String merchantCode;
private String alias;
private BigDecimal transAmt;
private Integer transNum;
private Date lastTransTime;
private String remarks;
private Integer condition;
private Integer type;
}

View File

@@ -0,0 +1,125 @@
package cn.pluss.platform.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
*
*商户交易数据统计DTO
*@author: bzg
*@time: 2021/12/30 17:38
*/
@Data
public class MercOrderDataDTO {
private Integer userId;
private String alias;
private String merchantCode;
/**
* 总金额
* @date: 2021/12/30 17:40
*/
private BigDecimal totalAmt;
/**
* 总成功交易金额
* @date: 2021/12/30 17:40
*/
private BigDecimal tradeSucAmt;
/**
* 交易笔数
* @date: 2021/12/30 17:41
*/
private Integer tradeNum;
/**
* 交易成功笔数
* @date: 2021/12/30 17:41
*/
private Integer tradeSucNum;
/**
* 借记卡或储蓄卡交易成功笔数
* @date: 2021/12/30 17:42
*/
private Integer debitSucNum;
/**
* 贷记卡或信用卡交易成功笔数
* @date: 2021/12/30 17:43
*/
private Integer creditSucNum;
/**
* 其他支付方式交易成功笔数
* @date: 2021/12/30 17:43
*/
private Integer otherSucNum;
/**
* D1交易笔数
* @date: 2021/12/30 17:44
*/
private Integer d1Num;
/**
* D0交易笔数
* @date: 2021/12/30 17:44
*/
private Integer d0Num;
/**
* 通道状态
* @date: 2021/12/30 17:44
*/
private Integer valid;
/**
* 通道ID
* @date: 2021/12/30 17:44
*/
private Integer channel;
/**
* D1占比
* @date: 2021/12/30 17:45
*/
private BigDecimal d1Scale;
/**
* d0占比
* @date: 2021/12/30 17:45
*/
private BigDecimal d0Scale;
/**
* 支付笔数比例
* @date: 2021/12/30 17:45
*/
private BigDecimal numScale;
/**
* 信用卡占比:
* @date: 2021/12/30 17:45
*/
private BigDecimal creditScale;
/**
* 借记卡占比:
* @date: 2021/12/30 17:45
*/
private BigDecimal debitScale;
/**
* 风控备注
* @date: 2021/12/31 18:24
*/
private String risk;
}

View File

@@ -0,0 +1,19 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MercOrderDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* TODO
* 参数封装
* @author crystal
* @date 2022/3/30 18:23
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MercOrderDetailDTO extends MercOrderDetail {
}

View File

@@ -0,0 +1,45 @@
package cn.pluss.platform.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author DJH
*/
@Data
public class MercOrderNewDTO {
/**
* 用户id
*/
private Long userId;
/**
* 购物车项id
*/
private List<Long> itemList;
/**
* 收货地址id
*/
private Long addressId;
/**
* aliPay, 支付宝wechatPay, 微信支付
*/
private String payType;
private Long ticketId;
/**
* 邮费
*/
private BigDecimal postage;
/**
* 订单状态
*/
private String orderNo;
}

View File

@@ -0,0 +1,78 @@
package cn.pluss.platform.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
*
*@description:
*@author: bzg
*@time: 2021/12/31 13:37
*/
@Data
public class MercTradeDataDTO {
private String merchantCode;
private String phone;
private Integer userId;
private String alias;
/**
* 交易金额
* @date: 2021/12/31 13:38
*/
private BigDecimal tradeSumAmt;
/**
* 交易笔数
* @date: 2021/12/31 13:39
*/
private Integer tradeSumNum;
private BigDecimal prevTradeSumAmt;
private Integer prevTradeSumNum;
/**
* 金额环比
* @date: 2021/12/31 13:42
*/
private String amtChain;
/**
* 笔数环比
* @date: 2021/12/31 13:42
*/
private String numChain;
/**
* @description:排序
* @date: 2021/12/31 13:44
*/
private Integer condition;
private String startTime;
private String endTime;
private String field;
private String order;
/**
* 异地支付状态
* @date: 2022/2/15 14:01
*/
private String payEcdemicSwitch;
/**
* 跟进状态
*/
private String followStatus;
private Long storeId;
}

View File

@@ -0,0 +1,38 @@
package cn.pluss.platform.dto;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 商户搜索条件
*
* @author Djh
*/
@Data
public class MerchSearchDTO {
/**
* 商户简称
*/
private String merchantName;
private String userId;
/**
* 1: 查直推
* 2: 查间推
* 0: 查全部
*/
private String type;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startTime;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endTime;
private List<String> agentStaffIds;
}

View File

@@ -0,0 +1,110 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.converter.MerchantBaseInfoConverter;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.util.AreaUtils;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author yuchen
*
* @Description
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MerchantBaseInfoDTO {
private Long id;
@ApiModelProperty(value = "当前用户的userId")
private String userId;
private String merchantName;
private String merchantType;
@ApiModelProperty(value = "商户简称")
private String alias;
@ApiModelProperty(value = "经营类目编码")
private String mcc;
@ApiModelProperty(value = "经营类目名称")
private String mccName;
@ApiModelProperty(value = "支付宝账号")
private String aliAccount;
@ApiModelProperty(value = "经营内容描述")
private String productDesc;
@ApiModelProperty(value = "商家店所在省市区编码")
private String addressNo;
@ApiModelProperty(value = "商户地址")
private String merchantAddress;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "联系人号码")
private String contactMobile;
@ApiModelProperty(value = "联系人姓名")
private String contactName;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "门头照")
private String storeHeadPic;
@ApiModelProperty(value = "门店内照片")
private String storeInsidePic;
@ApiModelProperty(value = "收银台照片")
private String cashPic;
@ApiModelProperty(value = "用户名")
private String userPhone;
@ApiModelProperty(value = "密码")
private String userPassWord;
public MerchantBaseInfo convertMerchantBaseInfoDTO() {
MsgException.checkBlank(merchantType, "请选择商户类型");
MsgException.checkBlank(alias, "请传入商户简称");
MsgException.checkBlank(mcc, "请传入经营类目编码");
MsgException.checkBlank(mccName, "请传入经营类目名称");
MsgException.checkBlank(merchantAddress, "请传入商户地址");
MsgException.checkBlank(address, "请传入详细地址");
MsgException.checkBlank(contactMobile, "请传入联系人号码");
MsgException.checkBlank(contactName, "请传入联系人姓名");
MsgException.checkBlank(storeHeadPic, "请上传门头照");
MsgException.checkBlank(storeInsidePic, "请上传门店内照片");
MsgException.checkBlank(cashPic, "请上传收银台照片");
MerchantBaseInfo merchantBaseInfo = MerchantBaseInfoConverter.INSTANCE.dto2Domain(this);
// 传的格式是 省市区 用逗号隔开
String[] split = merchantAddress.split(",");
if (split.length == 2) {
// 市和省同名的情况下传参可能出现的问题
merchantBaseInfo.setProvince(split[0]);
merchantBaseInfo.setCity(split[0]);
merchantBaseInfo.setDistrict(split[1]);
} else {
merchantBaseInfo.setProvince(split[0]);
merchantBaseInfo.setCity(split[1]);
merchantBaseInfo.setDistrict(split[2]);
}
return merchantBaseInfo;
}
}

View File

@@ -0,0 +1,9 @@
package cn.pluss.platform.dto;
import lombok.Data;
@Data
public class MerchantDTO {
private String merchantCode;
private Integer userId;
}

View File

@@ -0,0 +1,33 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantBaseInfo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 商户流水
*/
@Data
public class MerchantFeeDTO {
/**
* 店铺code
*/
private String merchantCode;
/**
* 店铺基本信息
*/
private MerchantBaseInfo merchantBaseInfo;
/**
* 店铺订单流水
*/
private BigDecimal money;
/**
* 店铺产生的分润
*/
private BigDecimal profit;
}

View File

@@ -0,0 +1,119 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantRateNew;
import cn.pluss.platform.exception.MsgException;
import lombok.Data;
import lombok.val;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Data
public class MerchantRateNewDTO {
/**
* 用户id
*/
private String userId;
/**
* 微信D0费率值
*/
private BigDecimal wxRateD0;
/**
* 支付宝D0费率
*/
private BigDecimal aliRateD0;
/**
* 银联D0费率
*/
private BigDecimal bankRateD0;
/**
* 银联大额D0费率>1000
*/
private BigDecimal bankRateLargeD0;
/**
* 微信D1费率
*/
private BigDecimal wxRateD1;
/**
* 支付宝D1费率
*/
private BigDecimal aliRateD1;
/**
* 银联D1费率
*/
private BigDecimal bankRateD1;
/**
* 银联大额D1费率
*/
private BigDecimal bankRateLargeD1;
public static Map<String, MerchantRateNew> toMerchantRateNew(MerchantRateNewDTO rateNewDTO) {
Map<String, MerchantRateNew> result = new HashMap<>();
boolean wxRateD0Exist = rateNewDTO.getWxRateD0() == null;
boolean aliRateD0Exist = rateNewDTO.getAliRateD0() == null;
boolean bankRateD0Exist = rateNewDTO.getBankRateD0() == null;
boolean bankRateLargeD0Exist = rateNewDTO.getBankRateLargeD0() == null;
if (wxRateD0Exist ^ aliRateD0Exist ^ bankRateD0Exist ^ bankRateLargeD0Exist) {
throw new MsgException("D0费率参数不全");
}
if (!wxRateD0Exist) {
MerchantRateNew d0 = new MerchantRateNew();
d0.setWxRate(rateNewDTO.getWxRateD0().multiply(BigDecimal.valueOf(100)).intValue());
d0.setAliRate(rateNewDTO.getAliRateD0().multiply(BigDecimal.valueOf(100)).intValue());
d0.setBankRate(rateNewDTO.getBankRateD0().multiply(BigDecimal.valueOf(100)).intValue() - 2);
d0.setBankRateLarge(rateNewDTO.getBankRateLargeD0().subtract(BigDecimal.valueOf(0.53d)).divide(BigDecimal.valueOf(0.005d), RoundingMode.HALF_UP).intValue() + 21);
result.put("d0", d0);
}
boolean wxRateD1Exist = rateNewDTO.getWxRateD1() == null;
boolean aliRateD1Exist = rateNewDTO.getAliRateD1() == null;
boolean bankRateD1Exist = rateNewDTO.getBankRateD1() == null;
boolean bankRateLargeD1Exist = rateNewDTO.getBankRateLargeD1() == null;
if (wxRateD1Exist ^ aliRateD1Exist ^ bankRateD1Exist ^ bankRateLargeD1Exist) {
throw new MsgException("D1费率参数不全");
}
if (!wxRateD1Exist) {
MerchantRateNew d1 = new MerchantRateNew();
d1.setWxRate(rateNewDTO.getWxRateD1().multiply(BigDecimal.valueOf(100)).intValue());
d1.setAliRate(rateNewDTO.getAliRateD1().multiply(BigDecimal.valueOf(100)).intValue());
d1.setBankRate(rateNewDTO.getBankRateD1().multiply(BigDecimal.valueOf(100)).intValue() - 2);
if (rateNewDTO.getBankRateLargeD1() == null || Objects.equals(rateNewDTO.getBankRateLargeD1(), BigDecimal.ZERO)) {
d1.setBankRateLarge(-1);
} else {
d1.setBankRateLarge(rateNewDTO.getBankRateLargeD1().subtract(BigDecimal.valueOf(0.53d)).divide(BigDecimal.valueOf(0.005d), RoundingMode.HALF_UP).intValue() + 21);
}
result.put("d1", d1);
}
return result;
}
}

View File

@@ -0,0 +1,26 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.MerchantRateNewRecord;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 商户费率表(新)
* </p>
*
* @author Djh
* @since 2021-08-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class MerchantRateNewRecordDTO extends MerchantRateNewRecord {
private String userId;
}

View File

@@ -0,0 +1,50 @@
package cn.pluss.platform.dto;
import lombok.Data;
import java.util.List;
/**
* 添加员工入参
* @author DJH
*/
@Data
public class MerchantStaffDTO {
/**
* 用户id
*/
private Long userId;
/**
* 登录账号
*/
private String loginName;
/**
* 姓名
*/
private String userName;
/**
* 手机号
*/
private String phone;
/**
* 密码
*/
private String password;
/**
* 商编
*/
private String merchantCode;
/**
* 查看所有账单权限
*/
private String permissionBill;
private List<String> merchantCodeList;
}

View File

@@ -0,0 +1,38 @@
package cn.pluss.platform.dto;
import java.util.List;
/**
* @author yuchen
*
* @Description
*/
public class NewAreaDTO {
private String code;
private String name;
private List<NewAreaDTO> cityList;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

View File

@@ -0,0 +1,97 @@
package cn.pluss.platform.dto;
import java.util.Date;
import cn.pluss.platform.entity.MerchantOrder;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class QueryOrderDTO {
@ApiModelProperty(value="当前用户Id")
private String userId;
@ApiModelProperty(value="订单号")
private String orderNumber;
@ApiModelProperty(value="订单类型")
private String orderType;
@ApiModelProperty(value="商家编码")
private String merchantCode;
@ApiModelProperty(value="商家名称")
private String merchantName;
@ApiModelProperty(value="支付方式编码")
private String payTypeCode;
@ApiModelProperty(value="支付方式名称")
private String payTypeName;
@ApiModelProperty(value="门店id")
private String storeId;
@ApiModelProperty(value="门店名称")
private String storeName;
@ApiModelProperty(value="消费金额")
private Double consumeFee;
@ApiModelProperty(value="分润人的userId")
private String promoteruserId;
@ApiModelProperty(value="分润金额")
private String shareMoney;
@ApiModelProperty(value="订单创建时间")
private Date createDt;
@ApiModelProperty(value="交易人员id")
private String staffCode;
@ApiModelProperty(value="交易人员名称")
private String staffName;
@ApiModelProperty(value="到账金额")
private Double enterFee;
@ApiModelProperty(value="支付通道")
private String aisleSwitch;
@ApiModelProperty(value="备注")
private String remark;
@ApiModelProperty(value="乐刷商户Id")
private String leshuaMchId;
public MerchantOrder convertMerchantOrder() {
MerchantOrder merchantOrder=new MerchantOrder();
merchantOrder.setMerchantCode(merchantCode);
merchantOrder.setMerchantName(merchantName);
merchantOrder.setAisleSwitch(aisleSwitch);
merchantOrder.setCreateDt(createDt);
merchantOrder.setUpdateTime(createDt);
merchantOrder.setOrderType(orderType);
merchantOrder.setPayTypeCode(payTypeCode);
merchantOrder.setPayTypeName(payTypeName);
merchantOrder.setStoreId(storeId);
merchantOrder.setStoreName(storeName);
merchantOrder.setConsumeFee(consumeFee);
merchantOrder.setEnterFee(enterFee);
merchantOrder.setRemark(remark);
merchantOrder.setStaffCode(staffCode);
merchantOrder.setStoreName(storeName);
return merchantOrder;
}
}

View File

@@ -0,0 +1,97 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.RealFans;
import cn.pluss.platform.util.StringUtil;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author yuchen
*
* @Description
*/
@Data
public class RealFansDTO {
/**
* 唯一识别标识
*/
private String soleId;
/**
* 消费金额
*/
private String conSumMoney;
/**
* 消费方式 0支付宝 1微信 2-0乐刷支付宝 2-1乐刷微信
*/
private String payWay;
/**
* 当前消费的商户
*/
private String merchantCode;
/**
* 订单号
*/
private String orderNumber;
/**
* 通道的订单号
*/
private String tradeNumber;
/**
* 头像
*/
private String logo;
/**
* 昵称
*/
private String nickName;
/**
* 手机号
*/
private String phone;
/**
* 初始激活时间
*/
private String enableTime;
/**
* 本次消费时间
*/
private String consumTime;
/**
* 活动营销转账金额
*/
private BigDecimal marketAmt;
/**
* 结算金额
*/
private BigDecimal settlementAmt;
public RealFans convertRealFans(RealFans realFans) {
realFans.setSoleId(soleId);
realFans.setEnableMerchantCode(merchantCode);
if(StringUtil.isNotEmpty(logo) && !"undefined".equals(logo)){
realFans.setLogo(logo);
}
if(StringUtil.isNotEmpty(nickName) && !"undefined".equals(nickName)){
realFans.setNickName(nickName);
}
realFans.setPhone(phone);
realFans.setEnableTime(new Date());
return realFans;
}
}

View File

@@ -0,0 +1,27 @@
package cn.pluss.platform.dto;
import lombok.Data;
@Data
public class RegionReflectDTO {
private String type;
private Integer channel;
private Integer regionSrc;
private Integer regionDes;
private String province;
private String provinceCode;
private String city;
private String cityCode;
private String area;
private String areaCode;
}

View File

@@ -0,0 +1,32 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.RiskBlacklist;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class RiskBlacklistDTO extends RiskBlacklist {
/**
* 计数
*/
private int count = 0;
/**
* 批量添加的id数组
*/
private List<String> userIdArr;
/**
* 子商户标识1即关闭所有关联子商户相关的商户
*/
private String connectFlag;
/**
* 商户编号
*/
private String merchantCode;
}

View File

@@ -0,0 +1,50 @@
package cn.pluss.platform.dto;
import cn.pluss.platform.entity.UserApp;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class StaffDTO {
private Long id;
private String merchantCode;
private String merchantName;
private String storeId;
private String storeName;
private String phone;
private String loginName;
private String userName;
private String password;
private String verifyPassword;
public UserApp convert() {
UserApp userApp=new UserApp();
userApp.setMerchantCode(merchantCode);
userApp.setMerchantName(merchantName);
userApp.setStoreId(storeId);
userApp.setStoreName(storeName);
userApp.setPhone(phone);
userApp.setLoginName(loginName);
userApp.setUserName(userName);
userApp.setPassword(password);
return userApp;
}
}

View File

@@ -0,0 +1,60 @@
package cn.pluss.platform.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 子商户信息表
* @author DJH
*/
@Data
@Accessors(chain = true)
public class SubMerchantDTO {
@TableId
private Integer id;
private String merchantId;
/**
* 接入渠道方号
*/
private String channelId;
/**
* 渠道子商户号,查询微信
*/
private String subMchId;
/**
* 不同渠道可能存储的不同
* 随行付WX 微信, ZFB 支付宝
*/
private String subMchType;
private String remark;
/**
* 对应自己存储的渠道表的id
*/
private String channelTypeId;
/**
* 渠道报备状态,作用未知
*/
private String status;
private Date createTime;
private Date updateTime;
private String merchantCode;
private String userId;
private String loginName;
}

View File

@@ -0,0 +1,105 @@
package cn.pluss.platform.dto;
import java.io.Serializable;
/**
* 汇总流水查询条件DTO
* @author yuchen
*
* @Description
*
*/
public class SummaryOfWaterDTO implements Serializable{
/**
* @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
private String merchantCode;
/**
* 门店集合 请用逗号隔开
*/
private String storeIdList;
/**
* 交易员code集合 请用逗号隔开
*/
private String staffCodeList;
/**
* 支付方式编码集合 请用逗号隔开
*/
private String payTypeCodeList;
/**
* 时间筛选 1今天 2昨天 3七天内 430天内 590天内
*/
private String timeStatus;
private String orderType;
public String getStoreIdList() {
return storeIdList;
}
public void setStoreIdList(String storeIdList) {
this.storeIdList = storeIdList;
}
public String getStaffCodeList() {
return staffCodeList;
}
public void setStaffCodeList(String staffCodeList) {
this.staffCodeList = staffCodeList;
}
public String getPayTypeCodeList() {
return payTypeCodeList;
}
public void setPayTypeCodeList(String payTypeCodeList) {
this.payTypeCodeList = payTypeCodeList;
}
public String getTimeStatus() {
return timeStatus;
}
public void setTimeStatus(String timeStatus) {
this.timeStatus = timeStatus;
}
public String getMerchantCode() {
return merchantCode;
}
public void setMerchantCode(String merchantCode) {
this.merchantCode = merchantCode;
}
public String getOrderType() {
return orderType;
}
public void setOrderType(String orderType) {
this.orderType = orderType;
}
@Override
public String toString() {
return "SummaryOfWaterDTO [merchantCode=" + merchantCode + ", storeIdList=" + storeIdList + ", staffCodeList="
+ staffCodeList + ", payTypeCodeList=" + payTypeCodeList + ", timeStatus=" + timeStatus + "]";
}
}

View File

@@ -0,0 +1,75 @@
package cn.pluss.platform.dto;
/**
* @author yuchen
*
* @Description 统一收单交易支付接口
*/
public class TradePayDTO {
/**
* 通过传入的userId查询userApp里面的token
*/
private String userId;
/**
* 商户订单号,64个字符以内、可包含字母、数字、下划线需保证在商户端不重复
*/
private String outTradeNo;
/**
* 支付授权码25~30开头的长度为16~24位的数字实际字符串长度以开发者获取的付款码长度为准
*/
private String authCode;
/**
* 订单标题
*/
private String subject;
private String totalAmount;
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(String totalAmount) {
this.totalAmount = totalAmount;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}

View File

@@ -0,0 +1,39 @@
package cn.pluss.platform.dto;
/**
* 查询支付订单
* @author yuchen
*
* @Description
*/
public class TradeQueryDTO {
/**
* 用户id 查询token
*/
private String userId;
/**
* 商家订单号
*/
private String outTradeNo;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
}

View File

@@ -0,0 +1,66 @@
package cn.pluss.platform.dto;
/**
* @author yuchen
*
* @Description
*/
public class TradeRefundDTO {
/**
* 商户订单号
*/
private String outTradeNo;
/**
* 支付宝交易号
*/
private String tradeNo;
/**
* 需要退款的金额
*/
private String refundAmount;
/**
* 通过userId查询token
*/
private String userId;
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getRefundAmount() {
return refundAmount;
}
public void setRefundAmount(String refundAmount) {
this.refundAmount = refundAmount;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}

View File

@@ -0,0 +1,104 @@
package cn.pluss.platform.dto;
import io.swagger.annotations.ApiModelProperty;
/**
* @author yuchen
*
* @Description
*/
public class UpDateBankInfoDTO {
@ApiModelProperty(value="当前用户的userId")
private String userId;
@ApiModelProperty(value="手机号")
private String phone;
@ApiModelProperty(value="银行卡照片")
private String bankPhoto;
@ApiModelProperty(value="银行卡名称")
private String bankName;
@ApiModelProperty(value="开户地区")
private String bankAddress;
@ApiModelProperty(value="开户支行")
private String bankBranch;
@ApiModelProperty(value="银行卡号")
private String bankNo;
@ApiModelProperty(value="银行所在地区编码")
private String bankAddressCode;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getBankPhoto() {
return bankPhoto;
}
public void setBankPhoto(String bankPhoto) {
this.bankPhoto = bankPhoto;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankAddress() {
return bankAddress;
}
public void setBankAddress(String bankAddress) {
this.bankAddress = bankAddress;
}
public String getBankBranch() {
return bankBranch;
}
public void setBankBranch(String bankBranch) {
this.bankBranch = bankBranch;
}
public String getBankNo() {
return bankNo;
}
public void setBankNo(String bankNo) {
this.bankNo = bankNo;
}
public String getBankAddressCode() {
return bankAddressCode;
}
public void setBankAddressCode(String bankAddressCode) {
this.bankAddressCode = bankAddressCode;
}
}

View File

@@ -0,0 +1,75 @@
package cn.pluss.platform.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.groups.Default;
import java.util.Date;
/**
* @author Djh
* 用户信息DTO主要用于登录的信息接收
*/
@Data
public class UserInfoDTO {
public interface AgentStaffInsert extends Default { }
public interface AgentStaffUpdate extends Default { }
/**
* 父id商户注册时与邀请码二选一
*/
@NotBlank(message = "父id不能为空", groups = {AgentStaffInsert.class})
private String pId;
/**
* 邀请码商户注册时与父id二选一
*/
private String inviteCode;
/**
* 用户名
*/
@NotBlank(message = "用户名不能为空")
private String userName;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
private String phone;
/**
* 用户id
*/
@NotBlank(message = "用户id不能为空", groups = AgentStaffUpdate.class)
private String userId;
/**
* 帐号
*/
@NotBlank(message = "注册帐号不能为空")
private String loginName;
/**
* 登录密码
*/
@NotBlank(message = "登陆密码不能为空")
private String password;
/**
* 验证码
*/
private String checkCode;
/**
* 查询起始时间
*/
private Date startTime;
/**
* 查询截止时间
*/
private Date endTime;
}

View File

@@ -0,0 +1,95 @@
package cn.pluss.platform.dto;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import cn.pluss.platform.entity.MerchantBankCard;
import cn.pluss.platform.entity.MerchantBaseInfo;
import cn.pluss.platform.entity.MerchantImage;
import cn.pluss.platform.util.StringUtil;
import io.swagger.annotations.ApiModelProperty;
public class WechatMerchantAuditDTO {
@ApiModelProperty(value="当前用户userId")
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Result<Map<String, Object>> convertMap(MerchantBankCard merchantBankCard, MerchantBaseInfo merchantBaseInfo, List<MerchantImage> list){
if(StringUtil.isEmpty(merchantBaseInfo.getProductDesc())) {
return ResultGenerator.genFailResult("请选择售卖商品/提供服务描述");
}
if(StringUtil.isEmpty(merchantBaseInfo.getContactMobile())) {
return ResultGenerator.genFailResult("联系人号码不能为空");
}
if(StringUtil.isEmpty(merchantBaseInfo.getAlias())) {
return ResultGenerator.genFailResult("商户简称不能为空");
}
if(StringUtil.isEmpty(merchantBaseInfo.getAddressNo())) {
return ResultGenerator.genFailResult("商户地址不能为空");
}
if(StringUtil.isEmpty(merchantBaseInfo.getAddress())) {
return ResultGenerator.genFailResult("详细地址不能为空");
}
if(StringUtil.isEmpty(merchantBankCard.getBankName())) {
return ResultGenerator.genFailResult("开户银行名称不能为空");
}
if(StringUtil.isEmpty(merchantBankCard.getBankCertName())) {
return ResultGenerator.genFailResult("开户名称(与银行卡身份证一致)不能为空");
}
if(StringUtil.isEmpty(merchantBankCard.getBankCardNo())) {
return ResultGenerator.genFailResult("银行卡号不能为空");
}
if(StringUtil.isEmpty(merchantBankCard.getBankAddressNo())) {
return ResultGenerator.genFailResult("银行所在地区编码不能为空");
}
Map<String, Object> result=new HashMap<String, Object>(16);
boolean isOne=true;boolean isTwo=true;boolean isSix=true;boolean isNine=true;
for (MerchantImage merchantImage : list) {
if("01".equals(merchantImage.getPhotoType())) {//身份证正面
isOne=false;
result.put("01", merchantImage.getPicUrl());
}
if("02".equals(merchantImage.getPhotoType())) {//身份证反面
isTwo=false;
result.put("02", merchantImage.getPicUrl());
}
if("06".equals(merchantImage.getPhotoType())) {//门头照
isSix=false;
result.put("06", merchantImage.getPicUrl());
}
if("09".equals(merchantImage.getPhotoType())) {//门店内景照片
isNine=false;
result.put("09", merchantImage.getPicUrl());
}
}
if(isOne) {
return ResultGenerator.genFailResult("请上传身份证正面照");
}
if(isTwo) {
return ResultGenerator.genFailResult("请上传身份证反面");
}
if(isSix) {
return ResultGenerator.genFailResult("请上传门头照");
}
if(isNine) {
return ResultGenerator.genFailResult("请上传门店内景照片");
}
return ResultGenerator.genSuccessResult(result);
}
}

View File

@@ -0,0 +1,63 @@
package cn.pluss.platform.dto.jft;
import cn.pluss.platform.exception.MsgException;
import lombok.Data;
/**
* TODO
* 缴费通发起支付请求参数封装
* @author crystal
* @date 2022/6/24 19:16
*/
@Data
public class JftPayDataDTO {
/**
* 支付用户ID
*/
private String payUserId;
private String name;
private String phone;
private String goods;
private String address;
/**
* 收款人名称
*/
private String cName;
/**
* 收款人手机号
*/
private String cPhone;
/**
* tk
*/
private String tk;
/**
* 城市
*/
private String city;
/**
* 省份
*/
private String province;
/**
* 校验参数
*/
public void checkParams() {
MsgException.checkBlank(this.getTk(),"缺失tk必要参数!");
MsgException.checkBlank(this.getCName(),"收款人名称不能为空!");
MsgException.checkBlank(this.getCPhone(),"收款人手机号不能为空!");
MsgException.checkBlank(this.getPayUserId(),"支付用户ID不能为空!");
MsgException.checkBlank(this.getCity(),"请先授权位置信息!");
}
}

View File

@@ -0,0 +1,60 @@
package cn.pluss.platform.dto.jft;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.util.StringUtil;
import lombok.Data;
import java.math.BigDecimal;
/**
* TODO
*
* @author crystal
* @date 2022/7/1 23:25
*/
@Data
public class JftReceiptOrderDTO {
private String startDate;
private String endDate;
/**
* 支付状态 01未支付 02已支付
*/
private String status;
private Long userId;
private String merchantCode;
private String subject;
private String city;
private String province;
private String mercOrderNo;
private String notifyUrl;
private BigDecimal orderAmt;
private String payType;
private String remark;
private String merchantName;
public void checkOrderParams() {
// MsgException.checkBlank(this.getMerchantCode(),"商户编号不能为空!");
MsgException.checkBlank(this.getSubject(),"订单标题不能为空!");
MsgException.checkBlank(this.getCity(),"下单用户所属城市不能为空!");
MsgException.checkBlank(this.getMercOrderNo(),"商户单号不能为空!");
MsgException.check(this.getMercOrderNo().length() < 10 || this.getMercOrderNo().length() > 50 ,"订单号过长订单号长度应介于10-50位之间");
MsgException.checkBlank(this.getNotifyUrl(),"异步通知地址不能为空!");
MsgException.checkNull(this.getOrderAmt(),"订单金额不能为空");
MsgException.check(!StringUtil.isNumber(this.getOrderAmt().toString()),"订单金额格式有误,金额保留两位小数,单位元");
MsgException.checkBlank(this.getPayType(),"支付方式不能为空");
}
}

View File

@@ -0,0 +1,156 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 用户结算信息关联表
* </p>
*
* @author Djh
* @since 2020-10-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@AllArgsConstructor
@TableName("tb_pluss_account")
public class Account implements Serializable {
public static final String CHANNEL_TYPE_D1 = "D1";
public static final String CHANNEL_TYPE_D0 = "D0";
/** 小微 */
public static final String SETTLE_TYPE_MICRO_STORE = "00";
/** 对私法人结算 */
public static final String SETTLE_TYPE_PRIVATE_LEGAL = "01";
/** 我是法人 */
public static final String IS_SELF_LEGAL = "1";
/** 我不是法人 */
public static final String NOT_SELF_LEGAL = "2";
/** 对私非法人结算 */
public static final String SETTLE_TYPE_PRIVATE_ILLEGAL = "02";
/** 对公结算 */
public static final String SETTLE_TYPE_CORPORATE = "03";
/** 对私法人-我是法人 */
public static final String LEGAL_PRIVATE_LEGAL = SETTLE_TYPE_PRIVATE_LEGAL + IS_SELF_LEGAL;
/** 对私法人-我不是法人*/
public static final String ILLEGAL_PRIVATE_LEGAL = SETTLE_TYPE_PRIVATE_LEGAL + NOT_SELF_LEGAL;
/** 对私非法人-我是法人*/
public static final String LEGAL_PRIVATE_ILLEGAL = SETTLE_TYPE_PRIVATE_ILLEGAL + IS_SELF_LEGAL;
/** 对私非法人-我不是法人*/
public static final String ILLEGAL_PRIVATE_ILLEGAL = SETTLE_TYPE_PRIVATE_ILLEGAL + NOT_SELF_LEGAL;
private static final long serialVersionUID = 1L;
public Account(String userId, String settleType, String idCardId, String bankCardId, String certificateUrl, String channelType) {
this.userId = userId;
this.settleType = settleType;
this.idCardId = idCardId;
this.bankCardId = bankCardId;
this.certificateUrl = certificateUrl;
this.channelType = channelType;
}
public Account() {
this.channelType = Account.CHANNEL_TYPE_D1;
}
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 用户id
*/
@NotNull(message = "缺少用户id")
@TableField("userId")
private String userId;
/**
* 非法人授权书
*/
@TableField("certificateUrl")
private String certificateUrl;
/**
* 结算类型01对私法人02对私非法人03对公。
* 返回给前端显示的则有, 00 小微商户, 011法人对私法人012非法人对私法人, 021法人对私非法人022非法人对私非法人03对公
*/
@TableField("settleType")
private String settleType;
/**
* 身份证id
*/
@TableField("idCardId")
private String idCardId;
/**
* 银行卡id
*/
@TableField("bankCardId")
private String bankCardId;
/**
* D0、D1
* 默认值D1
*/
@TableField(value = "channelType", fill = FieldFill.INSERT)
private String channelType;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT, whereStrategy = FieldStrategy.NEVER)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE, whereStrategy = FieldStrategy.NEVER)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
@TableField(updateStrategy = FieldStrategy.IGNORED)
private JSONObject bak;
}

View File

@@ -0,0 +1,29 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class ActivityActivate {
@TableId
private Integer id;
private Integer userId;
private String merchantCode;
private String merchantName;
private Double giveMoney;
private String storeId;
private String storeName;
private String name;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private String posterUrl;
@TableField(exist = false)
private String type;
}

View File

@@ -0,0 +1,33 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class ActivityConsumReturn {
@TableId
private Integer id;
private Integer userId;
private String merchantCode;
private String merchantName;
private String storeId;
private String storeName;
private String name;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private Integer type;
private Double comsumeMoney;
private Double returnMoney;
private Double percent;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startDt;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endDt;
private Integer timeType;
private String posterUrl;
}

View File

@@ -0,0 +1,127 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 商户活动报名记录表
* </p>
*
* @author Djh
* @since 2020-11-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_activity_enroll")
public class ActivityEnroll implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("id")
private Integer id;
/**
* 商户编号
*/
@TableField(value = "merchantCode",whereStrategy = FieldStrategy.NOT_EMPTY)
private String merchantCode;
/**
* 商户名称
*/
@TableField(value = "merchantName",whereStrategy = FieldStrategy.NOT_EMPTY,condition = SqlCondition.LIKE)
private String merchantName;
/**
* 报名活动名称
*/
@TableField("actName")
private String actName;
/**
* 报名活动id
*/
@TableField("actId")
private Integer actId;
/**
* 报名状态0申请中 1:通过 2驳回
*/
@TableField("status")
private String status;
/**
* 活动类型
*/
@TableField("actType")
private String actType;
/**
* 驳回原因
*/
@TableField("remark")
private String remark;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 审核时间
*/
@TableField(value = "auditTime")
private Date auditTime;
/**
* 设备编号
*/
@TableField(value = "deviceNo",whereStrategy = FieldStrategy.NOT_EMPTY)
private String deviceNo;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 修改时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 修改时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 修改时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,44 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class ActivityRecharge {
@TableId
private Integer id;
private Integer userId;
private String merchantCode;
private String merchantName;
private Double rechargeMoney;
private Double giveMoney;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startDt;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date endDt;
private String name;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private Integer timeType;
private String storeId;
private String storeName;
private String posterUrl;
@Override
public String toString() {
return "ActivityRecharge [id=" + id + ", userId=" + userId + ", merchantCode=" + merchantCode
+ ", merchantName=" + merchantName + ", rechargeMoney=" + rechargeMoney + ", giveMoney=" + giveMoney
+ ", startDt=" + startDt + ", endDt=" + endDt + ", name=" + name + ", createDt=" + createDt
+ ", timeType=" + timeType + ", storeId=" + storeId + ", storeName=" + storeName + ", posterUrl="
+ posterUrl + "]";
}
}

View File

@@ -0,0 +1,24 @@
package cn.pluss.platform.entity;
import java.util.Date;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class ActivityRecommend {
private Integer id;
private Integer userId;
private String name;
private Double firstMixRechargeMoney;
private Double recommendMoney;
private String merchantCode;
private String merchantName;
private String storeId;
private String storeName;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private String posterUrl;
}

View File

@@ -0,0 +1,25 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class Agreement {
@TableId
private Integer id;
private String name;
private String content;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private String createor;
/**
* 协议标识
*/
private String discern;
}

View File

@@ -0,0 +1,17 @@
package cn.pluss.platform.entity;
import lombok.Data;
/**
* @author yuchen
*
* @Description
*/
@Data
public class AliMcc {
private Integer id;
private String mccCode;
}

View File

@@ -0,0 +1,92 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* app引导页
* </p>
*
* @author Djh
* @since 2021-06-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_app_guide")
public class AppGuide implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("id")
private Integer id;
/**
* 页面code
*/
@TableField("code")
private String code;
/**
* 页面名称
*/
@TableField("name")
private String name;
/**
* 内容
*/
@TableField("content")
private String content;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,238 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* app页面菜单
* </p>
*
* CREATE TABLE `tb_pluss_app_menu` (
* `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
* `name` varchar(20) DEFAULT NULL COMMENT '菜单名称',
* `code` varchar(20) DEFAULT NULL COMMENT '菜单code',
* `icon` varchar(255) DEFAULT NULL COMMENT '图标链接',
* `menu_group` varchar(11) DEFAULT NULL COMMENT '分组id',
* `nav_code` varchar(10) DEFAULT NULL COMMENT '导航code',
* `nav_name` varchar(255) DEFAULT NULL COMMENT '导航名称',
* `url` varchar(150) DEFAULT NULL COMMENT 'url链接分组即不存在',
* `sort` tinyint(4) DEFAULT NULL COMMENT '排序',
* `visible` varchar(1) DEFAULT '1' COMMENT '是否展示0不展示1展示',
* `create_time` datetime DEFAULT NULL COMMENT '创建时间',
* `update_time` datetime DEFAULT NULL COMMENT '更新时间',
* PRIMARY KEY (`id`)
* ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='app页面菜单';
*
* @author Djh
* @since 2020-09-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_app_menu")
public class AppMenu implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 菜单类型
*/
@TableField(exist = false)
private String menuType;
public static void wrapper(AppMenu entity) {
if ("1".equals(entity.getIsApplets())) {
entity.setMenuType("2");
return;
}
if ("1".equals(entity.isUniapp)) {
entity.setMenuType("3");
return;
}
if (!StringUtils.isEmpty(entity.getUrl()) && entity.getUrl().startsWith("http")) {
entity.setMenuType("1");
return;
}
entity.setMenuType("0");
}
public static void setByMenuType(AppMenu entity) {
switch (entity.getMenuType()) {
case "0":
entity.setIsApplets("0");
entity.setIsUniapp("0");
entity.setUrl("");
break;
case "1":
entity.setIsApplets("0");
entity.setIsUniapp("0");
break;
case "2":
entity.setUrl("");
entity.setIsApplets("1");
entity.setIsUniapp("0");
break;
case "3":
entity.setUrl("");
entity.setIsApplets("0");
entity.setIsUniapp("1");
break;
default:
break;
}
}
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 分组
*/
@TableField(value = "menu_group", whereStrategy = FieldStrategy.NOT_EMPTY)
private String menuGroup;
/**
* 分组名称
*/
@TableField(exist = false)
private String menuGroupDesc;
/**
* 菜单名称
*/
@TableField("name")
private String name;
/**
* 菜单code
*/
@NotEmpty(message = "菜单code不能为空")
@TableField("code")
private String code;
/**
* 图标链接
*/
@NotEmpty(message = "图标链接不能为空")
@TableField("icon")
private String icon;
/**
* 导航code
*/
@NotEmpty(message = "导航code不能为空")
@TableField(value = "nav_code", whereStrategy = FieldStrategy.NOT_EMPTY)
private String navCode;
/**
* 导航名称
*/
@TableField("nav_name")
private String navName;
/**
* url链接
*/
@TableField("url")
private String url;
/**
* 是否是uniapp
*/
@TableField("isUniapp")
private String isUniapp;
/**
* 排序
*/
@TableField("sort")
private Integer sort;
/**
* 是否展示0不展示1展示
*/
@NotEmpty(message = "是否展示必填")
@TableField("visible")
private String visible;
/**
* 是否小程序 0否 1是
*/
@TableField("isApplets")
private String isApplets;
/**
* 小程序原始id 类似gh_xxxxx
*/
@TableField("userName")
private String userName;
/**
* 跳转小程序路径, 或者uniapp链接
*/
@TableField("path")
private String path;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(exist = false, condition = "create_time &gt; #{%s}")
private Date createTimeStart;
@TableField(exist = false, condition = "create_time &lt; #{%s}")
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableField(exist = false, condition = "update_time &gt; #{%s}")
private Date updateTimeStart;
@TableField(exist = false, condition = "update_time &lt; #{%s}")
private Date updateTimeEnd;
@TableField(exist = false)
private AppMenuUserType appMenuUserType;
/**
* 安卓是否显示
*/
private String isAndroidEnabled;
/**
* ios 是否显示
*/
private String isIphoneEnabled;
/**
* 安卓最低适用版本
*/
private String androidMinVersionName;
/**
* ios适用最低版本
*/
private String iosMinVersionName;
}

View File

@@ -0,0 +1,24 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class AppMenuUserType {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("nav_code")
private String navCode;
private String dictValue;
private String name;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

View File

@@ -0,0 +1,46 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@ApiModel("app版本信息")
@Accessors(chain = true)
public class AppVersionInfo {
@TableId
@ApiModelProperty("id")
private int id;
@ApiModelProperty("平台-0: android; 1: iOS")
private int platformCode;
@ApiModelProperty("android或iOS")
private String platformName;
@ApiModelProperty("版本code")
private int versionCode;
@ApiModelProperty("版本名称,也称版本号")
private String versionName;
@ApiModelProperty("下载链接iOS可以无视")
private String url;
@ApiModelProperty("更新信息")
private String updateInfo;
@ApiModelProperty("是否强制更新")
private int forceUpdate;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date updateTime;
}

View File

@@ -0,0 +1,81 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 小程序配置信息
* </p>
*
* @author crystal
* @since 2022-04-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_applet_info")
public class AppletInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId("id")
private Integer id;
/**
* 小程序APPID
*/
@TableField("appid")
private String appid;
/**
* 小程序原始ID
*/
@TableField("ghId")
private String ghId;
/**
* 小程序密钥
*/
@TableField("secret")
private String secret;
/**
* 备注
*/
@TableField("remark")
private String remark;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(exist = false, condition = "createTime &gt; #{%s}")
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(exist = false, condition = "createTime &lt; #{%s}")
private Date createTimeEnd;
}

View File

@@ -0,0 +1,18 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class Area {
@TableId
private Integer f_area_no;
private String f_area_name;
private String f_aliasa;
private Integer f_area_cups_no;
private Integer f_city_no;
private String f_x;
private String f_y;
}

View File

@@ -0,0 +1,35 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@ApiModel("城市区域信息")
@Accessors(chain = true)
public class AreaCity {
@TableId
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("type")
private String type;
@ApiModelProperty("areaName")
private String areaName;
@ApiModelProperty("parentAreaCode")
private String parentAreaCode;
@ApiModelProperty("areaCode")
private String areaCode;
@TableField(exist = false)
private List<AreaCity> areaCityList;
}

View File

@@ -0,0 +1,98 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 银行卡四要素缓存信息
*/
@TableName("tb_pluss_bank4_cache")
@Data
public class Bank4Cache {
public static final String STATUS_FAIL = "00";
public static final String STATUS_PASS = "01";
/**
* id
*/
@TableId
private Integer id;
/**
* 姓名
*/
@TableField("name")
private String name;
/**
* 手机号
*/
@TableField("phone")
private String phone;
/**
* 身份证号
*/
@TableField("idCardNo")
private String idCardNo;
/**
* 银行卡号
*/
@TableField("bankCardNo")
private String bankCardNo;
/**
* 状态
*/
@TableField("status")
private String status;
/**
* 备注信息
*/
@TableField("remark")
private String remark;
@TableField("createTime")
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT,
insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT,
insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date createTimeEnd;
@TableField("updateTime")
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT,
insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT,
insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,202 @@
package cn.pluss.platform.entity;
import cn.hutool.core.util.DesensitizedUtil;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 银行卡信息
* </p>
*
* @author Djh
* @since 2020-10-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_bank_card")
public class BankCard implements Serializable, Cloneable {
/**
* 对私账户
*/
public static final String ACCOUNT_TYPE_PRIVATE = "01";
/**
* 对公账户
*/
public static final String ACCOUNT_TYPE_CORPORATE = "02";
/**
* 实名认证
*/
public static final String ACCOUNT_TYPE_CERT = "03";
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户id
*/
@NotEmpty(message = "缺少userId", groups = {BankCard.class})
@TableField("userId")
private String userId;
/**
* 银行卡持有人/开户名
*/
@TableField("bankHolder")
private String bankHolder;
/**
* 银行卡号
*/
@NotEmpty(message = "请输入银行卡", groups = {BankCard.class})
@TableField("bankCardNo")
private String bankCardNo;
/**
* 开户行
*/
@NotEmpty(message = "请输入开户行", groups = {BankCard.class})
@TableField("bankName")
private String bankName;
/**
* 开户支行名称
*/
@NotEmpty(message = "请输入开户支行名称", groups = {BankCard.class})
@TableField("branchName")
private String branchName;
/**
* 01对私账户自然人只对私、个体工商户可选; 02对公账户; 03 实名认证
*/
@NotEmpty(message = "请选择账户类型", groups = {BankCard.class})
@TableField("accountType")
private String accountType;
/**
* 联行号
*/
@NotEmpty(message = "请输入开户支行联行号", groups = {BankCard.class})
@TableField("contactLine")
private String contactLine;
/**
* 开户支行所在省
*/
@NotEmpty(message = "请选择开户省", groups = {BankCard.class})
@TableField("branchProvince")
private String branchProvince;
/**
* 开户支行所在市
*/
@NotEmpty(message = "请选择开户市", groups = {BankCard.class})
@TableField("branchCity")
private String branchCity;
/**
* 开户支行所在区
*/
@NotEmpty(message = "请选择开户区", groups = {BankCard.class})
@TableField("branchArea")
private String branchArea;
/**
* 开户省市区编码
*/
@TableField("bankAddressNo")
private String bankAddressNo;
/**
* 银行卡预留手机号,企业名称
*/
@NotEmpty(message = "银行卡预留手机号", groups = {BankCard.class})
@TableField("phone")
private String phone;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
/**
* 银行卡卡号面图片url
*/
@NotEmpty(message = "银行卡卡号面图片", groups = {BankCard.class})
@TableField(value = "imgUrl", insertStrategy = FieldStrategy.NOT_EMPTY, updateStrategy = FieldStrategy.NOT_EMPTY)
private String imgUrl;
/**
* 开户许可证图片url
*/
@TableField(value = "licenseUrl", insertStrategy = FieldStrategy.NOT_EMPTY, updateStrategy = FieldStrategy.NOT_EMPTY)
private String licenseUrl;
public static BankCard desensitized(BankCard bankCard) {
try {
BankCard newBankCard = (BankCard) bankCard.clone();
newBankCard.setPhone(DesensitizedUtil.mobilePhone(newBankCard.getPhone()));
newBankCard.setBankCardNo(DesensitizedUtil.bankCard(newBankCard.getBankCardNo()));
newBankCard.setBankHolder(DesensitizedUtil.chineseName(newBankCard.getBankHolder()));
return newBankCard;
} catch (CloneNotSupportedException ignored) {
return null;
}
}
}

View File

@@ -0,0 +1,41 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class BankCodeSxf {
@TableId
private Integer id;
@TableField("bank_code")
private String bankCode;
@TableField("cnaps_code")
private String cnapsCode;
@TableField("cnaps_name")
private String cnapsName;
@TableField("bank_name")
private String bankName;
@TableField("org_code")
private String orgCode;
@TableField("province_code")
private String provinceCode;
@TableField("province_name")
private String provinceName;
@TableField("city_code")
private String cityCode;
@TableField("city_name")
private String cityName;
}

View File

@@ -0,0 +1,47 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author Djh
* @since 2021-07-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_bank_code_ys")
public class BankCodeYs implements Serializable {
private static final long serialVersionUID = 1L;
@TableField("contactLine")
private String contactLine;
@TableField("branchName")
private String branchName;
@TableField("bankType")
private String bankType;
@TableField("bankName")
private String bankName;
@TableField("cityCode")
private String cityCode;
}

View File

@@ -0,0 +1,20 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class BankUnionpayCode {
private String f_bank_area;
private String f_bank_city;
private String f_cft_area_code;
private String f_cft_city_code;
@TableId
private String f_unionpay_code;
private String f_branch_name;
private String f_bank_name;
private String f_x;
private String f_y;
}

View File

@@ -0,0 +1,17 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class Banner {
@TableId
private Integer id;
private String picUrl;
private Integer seq;
private String jumpUrl;
private String type;
private String status;
}

View File

@@ -0,0 +1,69 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @author djh
*/
@Data
public class BestNewActivity {
@TableId
private Integer id;
private Integer seq;
private String title;
/**
* 标题配图
*/
@TableField("`imgs`")
private String imgs;
/**
* 内容链接
*/
private String url;
/**
* 简介限制长度为50字
*/
@TableField("`desc`")
private String desc;
/**
* 活动类别1、(原推荐/攻略) 商户; 2、资讯; 3、活动4、服务商(攻略)
*/
private String type;
@TableField(exist = false)
private String[] typeArray;
/**
* 内容
*/
private String content;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private String updateor;
@TableField("`status`")
private String status;
/**
* 已读未读标识
*/
@TableField(exist = false)
private Integer readStatus;
/**
* 是否推全部 1.推送 0不推送
*/
@TableField(exist = false)
private String pushType;
}

View File

@@ -0,0 +1,135 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author Djh
* @since 2021-05-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_bill_send_record")
public class BillSendRecord implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户
*/
@TableField("userId")
private Long userId;
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField("startTime")
private Date startTime;
/**
* 开始时间 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false, condition = "startTime &gt; #{%s}")
private Date startTimeStart;
/**
* 开始时间 截止时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false, condition = "startTime &lt; #{%s}")
private Date startTimeEnd;
/**
* 截止时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField("endTime")
private Date endTime;
/**
* 截止时间 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false, condition = "endTime &gt; #{%s}")
private Date endTimeStart;
/**
* 截止时间 截止时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(exist = false, condition = "endTime &lt; #{%s}")
private Date endTimeEnd;
/**
* 目标邮箱,最多指定三个
*/
@TableField("email")
private String email;
/**
* 状态。0生成中; 1生成成功、已发送; 2: 生成失败
*/
@TableField("status")
private String status;
/**
* 创建时间
*/
@TableField("createTime")
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField("updateTime")
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,154 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.wx.*;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 缓存信息表
* </p>
*
* @author bzg
* @since 2021-09-24
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_cache_info")
public class CacheInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 缓存最大差值
* @date: 2021/11/30 16:27
*/
public static final Long MAX_CRITICAL_VALUE = 200L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 特殊规则字符串组成用与获取token
*/
@TableField("keyCode")
private String keyCode;
/**
* appid
*/
@TableField("appId")
private String appId;
/**
* appsercet
*/
@TableField("appSercet")
private String appSercet;
/**
* accessToken
*/
@TableField("accessToken")
private String accessToken;
/**
* 刷新token
*/
@TableField("refreshToken")
private String refreshToken;
/**
* 过期时间
*/
@TableField("expires_in")
private Long expiresIn;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(exist = false, condition = "createTime &gt; #{%s}")
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(exist = false, condition = "createTime &lt; #{%s}")
private Date createTimeEnd;
public CacheInfo(String appId, String appSercet, String keyCode,String token,Long expiresIn){
this.appId = appId;
this.appSercet = appSercet;
this.keyCode = keyCode;
this.accessToken = token;
this.expiresIn = expiresIn;
}
public CacheInfo(WxAccessTokenResponse response, WxAccessTokenRequest request, String keyCode){
this.appId = request.getAppid();
this.appSercet = request.getSecret();
this.keyCode = keyCode;
this.accessToken = response.getAccess_token();
this.expiresIn = (System.currentTimeMillis() / 1000) + response.getExpires_in();
}
public CacheInfo(WxOauth2AccessTokenResponse response, WxAccessTokenRequest request, String keyCode){
this.appId = request.getAppid();
this.appSercet = request.getSecret();
this.keyCode = keyCode;
this.accessToken = response.getAccess_token();
this.expiresIn = (System.currentTimeMillis() / 1000) + response.getExpires_in();
this.refreshToken = response.getRefresh_token();
}
public CacheInfo() {
}
public CacheInfo(WxOpenidResponse response, WxAccessTokenRequest request, String keyCode) {
this.appId = request.getAppid();
this.appSercet = request.getSecret();
this.keyCode = keyCode;
this.accessToken = response.getAccess_token();
this.expiresIn = (System.currentTimeMillis() / 1000) + response.getExpires_in();
this.refreshToken = response.getRefresh_token();
}
public CacheInfo(WxAccessTokenRequest request, String keyCode,String accessToken,Long expiresIn,String refreshToken) {
this.appId = request.getAppid();
this.appSercet = request.getSecret();
this.keyCode = keyCode;
this.accessToken = accessToken;
this.expiresIn = expiresIn;
this.refreshToken = refreshToken;
}
public CacheInfo(WxJsApiTicketResponse response, WxAccessTokenRequest request, String keyCode) {
this.appId = request.getAppid();
this.appSercet = request.getSecret();
this.keyCode = keyCode;
this.accessToken = response.getTicket();
this.expiresIn = (System.currentTimeMillis() / 1000) + response.getExpires_in();
}
}

View File

@@ -0,0 +1,40 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 表原始数据记录,用于不明确的回调数据的统计
* </p>
*
* @author Djh
* @since 2020-09-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_callback_data")
public class CallbackData implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 表名
*/
@TableField("`table`")
private String table;
/**
* 原始数据
*/
private String origin;
}

View File

@@ -0,0 +1,157 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author DJH
*/
@Data
public class Cash {
/**
* 提现成功
*/
public static final int STATUS_SUCCESS = 1;
/**
* 提现失败
*/
public static final int STATUS_FAIL = 2;
/**
* 提现审核中
*/
public static final int STATUS_CHECKING = 0;
/**
* 最小提现额度
*/
public static final int MINIMUM_CASH = 10;
@TableId
private Long id;
private Long userId;
private String userName;
private String merchantCode;
private String merchantName;
/**
* 本次提现记录的支付宝账号名称
*/
private String accountName;
/**
* 本次提现记录的支付宝账号
*/
private String accountNo;
private BigDecimal cashAmt;
private Integer status;
private String reason;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date updateDt;
private String logo;
private String cashNumber;
private String backNo;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date backDt;
private String updator;
private Integer type;
/**
* 备注
*/
@TableField(exist = false)
private String remark;
@TableField(exist = false)
private String phone;
/**
* 全部推广分润
*/
@TableField(exist = false)
private BigDecimal totalProfit;
/**
* 全部粉丝分润
*/
@TableField(exist = false)
private BigDecimal totalShareMoney;
/**
* 已提现金额
*/
@TableField(exist = false)
private BigDecimal cashTotalAmt;
/**
* 用来接收搜索条件的起始时间
*/
@TableField(exist = false)
private String beginTime;
@TableField(exist = false)
private String endTime;
/**
* 商户简称
*/
@TableField(exist = false)
private String alias;
/**
* 支付宝账号
*/
@TableField(exist = false)
private String aliAccount;
/**
* 银行卡号
*/
@TableField(exist = false)
private String bankCardNo;
/**
* 支付密码
*/
@TableField(exist = false)
private String payPassword;
/**
* 基本提现手续费
*/
@TableField
private BigDecimal baseServiceCharge;
/**
* 比例提现手续费
*/
@TableField
private BigDecimal ratioCharge;
/**
* 提现手续费比例(%)
*/
@TableField(exist = false)
private int rate;
/**
* 总手续费
*/
@TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private BigDecimal virTotalCharge;
/**
* 实际到账金额
*/
@TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private BigDecimal virRealCashAmt;
}

View File

@@ -0,0 +1,85 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author bzg
* @since 2021-07-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_cash_account")
public class CashAccount implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户id
*/
@NotNull(message = "缺少用户id")
@TableField(" userId")
private Integer userId;
/**
* 收款账号
*/
@NotNull(message = "缺少收款账号")
@TableField(value = "accountNo",whereStrategy = FieldStrategy.NOT_EMPTY,condition = SqlCondition.LIKE)
private String accountNo;
/**
* 收款人名称
*/
@NotNull(message = "缺少收款人名称")
@TableField(value = "accountName",whereStrategy = FieldStrategy.NOT_EMPTY,condition = SqlCondition.LIKE)
private String accountName;
/**
* 状态 1正常 0禁用
*/
@TableField("status")
private Integer status;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
}

View File

@@ -0,0 +1,96 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 通用备注表,存储一些通用备注
* </p>
*
* @author Djh
* @since 2021-06-24
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_common_remark")
public class CommonRemark implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 用户id
*/
@TableField("userId")
private Integer userId;
/**
* 备注内容
*/
@TableField("remark")
private String remark;
/**
* 关联表数据id
*/
@TableField("dataId")
private Integer dataId;
/**
* 关联表code
*/
@TableField("code")
private String code;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,50 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* 通用开关表
* CREATE TABLE `tb_pluss_common_switch` (
* `id` int(11) NOT NULL AUTO_INCREMENT,
* `code` varchar(50) DEFAULT NULL COMMENT '对应字典表的code',
* `name` varchar(50) DEFAULT NULL COMMENT '名称',
* `value` varchar(50) DEFAULT NULL COMMENT '对应字典表子项的值',
* `sort` int(11) DEFAULT NULL COMMENT '排序',
* `createTime` datetime DEFAULT NULL COMMENT '创建时间',
* `updateTime` datetime DEFAULT NULL COMMENT '更新时间',
* PRIMARY KEY (`id`),
* UNIQUE KEY `idx_code` (`code`)
* ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='开关表';
*/
@Data
@Accessors(chain = true)
public class CommonSwitch {
private Integer id;
private String name;
private String code;
private String value;
private Integer sort;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 可选项
*/
@TableField(exist = false)
private List<Dict> alterList;
}

View File

@@ -0,0 +1,33 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class Device {
@TableId
private Integer id;
private String name;
private String matNo;
private String deviceLogo;
private String type;
private String introDesc;
private Integer seq;
private Integer status;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
private String venderName;
private String venderCode;
private String venderModel;
private String aisleModel;
private Integer inventory;
private Double unitPrice;
private String detail;
private Date startTime;
private Date endTime;
}

View File

@@ -0,0 +1,57 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author Djh
* @since 2022-05-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_bsj")
public class DeviceBsj implements Serializable {
private static final long serialVersionUID = 1L;
@TableField(value = "deviceNo")
private String deviceNo;
@TableField(value = "imei")
private String imei;
@TableField(value = "iccid")
private String iccid;
/**
* sim卡号
*/
@TableField(value = "sim")
private String sim;
@TableField("snNo")
private String snNo;
/**
* 流量卡过期时间
*/
@TableField("simExpireTime")
private Date simExpireTime;
}

View File

@@ -0,0 +1,163 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* [设备展示表]
* </p>
*
* @author bzg
* @since 2020-11-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_detail")
public class DeviceDetail implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 对应商品表的code
*/
@TableField(value = "code",whereStrategy = FieldStrategy.NOT_EMPTY)
private String code;
@TableField(exist = false)
private String codeDesc;
/**
* 设备唯一识别码
*/
@TableField(value = "venderCode",whereStrategy = FieldStrategy.NOT_EMPTY)
private String venderCode;
@TableField("deviceLogo")
private String deviceLogo;
/**
* 厂家名称
*/
@TableField(value = "venderName",whereStrategy = FieldStrategy.NOT_EMPTY,condition = SqlCondition.LIKE)
private String venderName;
/**
* 厂家型号
*/
@TableField(value = "venderModel",whereStrategy = FieldStrategy.NOT_EMPTY)
private String venderModel;
/**
* 通道机器型号
*/
@TableField(value = "aisleModel",whereStrategy = FieldStrategy.NOT_EMPTY)
private String aisleModel;
/**
* 设备类型
*/
@TableField(value = "type",whereStrategy = FieldStrategy.NOT_EMPTY)
private String type;
/**
* 编码名称, 保存新的版本时候需要传名称
*/
@TableField(exist = false)
private String typeDesc;
/**
* 库存分组
*/
@TableField(value = "groupNo",whereStrategy = FieldStrategy.NOT_EMPTY)
private String groupNo;
/**
* 库存分组名称
*/
@TableField(exist = false)
private String groupNoDesc;
/**
* 简介
*/
@TableField("introDesc")
private String introDesc;
/**
* 排序
*/
@TableField("seq")
private Integer seq;
/**
* 状态 是否显示 0 不显示 1 显示
*/
@TableField(value = "status",whereStrategy = FieldStrategy.NOT_EMPTY)
private Integer status;
/**
* 创建时间
*/
@TableField("createDt")
private Date createDt;
/**
* 创建时间 开始时间
*/
@TableField(exist = false, condition = "createDt &gt; #{%s}")
private Date createDtStart;
/**
* 创建时间 截止时间
*/
@TableField(exist = false, condition = "createDt &lt; #{%s}")
private Date createDtEnd;
/**
* 单组数量
*/
@TableField("size")
private Integer size;
/**
* 单价
*/
@TableField("unitPrice")
private BigDecimal unitPrice;
/**
* 批发价
*/
private BigDecimal wholesalePrice;
/**
* 批发价最低数量
*/
private Integer wholesaleMinNum;
@TableField("detail")
private String detail;
@TableField(exist = false)
private BigDecimal weight;
}

View File

@@ -0,0 +1,91 @@
package cn.pluss.platform.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 商品标签表
* </p>
*
* @author Djh
* @since 2022-04-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_good_tag")
public class DeviceGoodTag implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("id")
private Integer id;
/**
* 标签编码
*/
@TableField("tag")
private String tag;
/**
* 序号
*/
@TableField("sort")
private Integer sort;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@JSONField(serialize = false)
@TableField(exist = false, condition = "createTime &gt; #{%s}")
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@JSONField(serialize = false)
@TableField(exist = false, condition = "createTime &lt; #{%s}")
private Date createTimeEnd;
/**
* 更新时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@JSONField(serialize = false)
@TableField(exist = false, condition = "updateTime &gt; #{%s}")
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@JSONField(serialize = false)
@TableField(exist = false, condition = "updateTime &lt; #{%s}")
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,134 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 设备商品展示表
* </p>
*
* @author Djh
* @since 2020-11-11
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_goods")
public class DeviceGoods implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 设备商品code
*/
@TableField("code")
private String code;
@TableField(exist = false)
private String codeName;
/**
* 设备商品名称
*/
@TableField(value = "name",whereStrategy = FieldStrategy.NOT_EMPTY,condition = SqlCondition.LIKE)
private String name;
@TableField("deviceLogo")
private String deviceLogo;
/**
* 简介
*/
@TableField("introDesc")
private String introDesc;
/**
* 排序
*/
@TableField("sort")
private Integer sort;
/**
* 详情
*/
@TableField("detail")
private String detail;
@TableField("tagId")
private Integer tagId;
@TableField(exist = false)
private String tag;
/**
* 状态 是否显示 0 不显示 1 显示
*/
@TableField(value = "status",whereStrategy = FieldStrategy.NOT_EMPTY)
private Integer status;
/**
* 押金购买标识1可以押金购买
*/
@TableField(value = "depositFlag")
private String depositFlag;
/**
* 创建时间
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd hh:mm:ss")
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JSONField(format = "yyyy-MM-dd hh:mm:ss")
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

View File

@@ -0,0 +1,79 @@
package cn.pluss.platform.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class DeviceMerchantBuy {
@TableId
private Integer id;
private String orderNo;
private String transNo;
private Double orderAmount;
private String merchantCode;
private String merchantName;
private String venderCode;
private String venderModel;
private String status;
private String payCode;
private String payName;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createDt;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date transDt;
private String refundNo;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date refundDt;
private String expressNo;
private String provinces;
private String address;
private Integer quantity;
private String linkName;
private String linkPhone;
private String email;
//激活状态
private String actStatus;
@TableField(exist = false)
private String alias;
@TableField(exist = false)
private String userId;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date startTime;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@TableField(exist = false)
private Date endTime;
private String snNo;
/**
* 上送物流单号
* @date: 2022/2/25 15:18
*/
private String logistNo;
/**
* 商品名称
*/
@TableField(exist = false)
private String name;
/**
* 商品code
*/
@TableField(exist = false)
private String code;
/**
* 设备类型
*/
@TableField(exist = false)
private String deviceType;
}

View File

@@ -0,0 +1,14 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class DeviceMerchantBuyDetail {
@TableId
private Integer id;
private String orderNo;
private String soleCode;
}

View File

@@ -0,0 +1,88 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.enums.DeviceOperateType;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 设备信息流转表
* </p>
*
* @author crystal
* @since 2022-04-02
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_operate_info")
public class DeviceOperateInfo implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 设备号
*/
@TableField("deviceNo")
private String deviceNo;
/**
* 操作类型 00 :入库 01划拨 02接收 03绑定 04解绑 05购买
*/
@TableField("type")
private String type;
/**
* 操作用户ID
*/
@TableField("userId")
private Long userId;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(exist = false, condition = "createTime &gt; #{%s}")
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(exist = false, condition = "createTime &lt; #{%s}")
private Date createTimeEnd;
/**
* 备注
*/
@TableField("remark")
protected String remark;
public DeviceOperateInfo(UserApp userApp, String type,String deviceNo,String remark) {
this.deviceNo = deviceNo;
this.remark = remark;
this.type = type;
if(userApp != null){
this.userId = userApp.getUserId();
}
}
}

View File

@@ -0,0 +1,142 @@
package cn.pluss.platform.entity;
import cn.pluss.platform.config.mybatis.SqlConditionExtra;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 设备商城,订单记录表
* </p>
*
* @author Djh
* @since 2020-11-13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_device_order_info")
public class DeviceOrderInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId("id")
private Integer id;
/**
* 订单号
*/
@TableField("orderNo")
private String orderNo;
/**
* 交易单号,来自服务商的订单号
*/
@TableField("transNo")
private String transNo;
/**
* 用户id
*/
@TableField("userId")
private String userId;
/**
* 设备code
*/
@TableField("code")
private String code;
/**
* 订单状态
*/
@TableField("`status`")
private String status;
/**
* 设备类型
*/
@TableField("deviceType")
private String deviceType;
/**
* 订单类型1正常购买2押金购买
*/
@TableField("orderType")
private String orderType;
/**
* 库存分组
*/
@TableField("groupNo")
private String groupNo;
/**
* 购买数量
*/
@TableField("num")
private Integer num;
/**
* 付款金额
*/
@TableField("sumPrice")
private BigDecimal sumPrice;
/**
* 创建时间
*/
@TableField(value = "createTime", fill = FieldFill.INSERT)
private Date createTime;
/**
* 创建时间 开始时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.GT)
private Date createTimeStart;
/**
* 创建时间 截止时间
*/
@TableField(select = false, value = "createTime", condition = SqlConditionExtra.LT)
private Date createTimeEnd;
/**
* 更新时间
*/
@TableField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
/**
* 更新时间 开始时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.GT)
private Date updateTimeStart;
/**
* 更新时间 截止时间
*/
@TableField(select = false, value = "updateTime", condition = SqlConditionExtra.LT)
private Date updateTimeEnd;
}

Some files were not shown because too many files have changed in this diff Show More