add 会议报名表新增接口

This commit is contained in:
lijiarao
2021-09-08 19:23:09 +08:00
parent 1403a9e2a1
commit 99d1774045
11 changed files with 282 additions and 19 deletions
@@ -0,0 +1,20 @@
package com.jero.meeting.common;
/**
* @author liJiaRao
* @date 2021-09-08 18:56
*/
public class MeetingSubitemCommon {
/**
* 嘉宾
*/
public final static String JIA_BIN = "1";
/**
* 参会人
*/
public final static String CAN_HUI_REN = "1";
/**
* 内部企业
*/
public final static String NEI_BU_QI_YE = "1";
}
@@ -1,11 +1,12 @@
package com.jero.meeting.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.meeting.valid.group.CommonPeople;
import com.jero.meeting.valid.group.Guest;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -16,8 +17,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.*;
/**
* @Description: 会议报名信息
@@ -61,11 +61,13 @@ public class PayMeetingSituation implements Serializable {
/**会议id*/
@Excel(name = "会议id", width = 15)
@ApiModelProperty(value = "会议id")
@NotBlank(message = "会议项目不能为空")
private String meetingId;
/**企业id*/
@Excel(name = "企业id", width = 15)
@ApiModelProperty(value = "企业id")
@NotBlank(message = "企业名称不能为空")
@Size(max = 50, message = "企业名称最大为50字符")
private String companyId;
/**
@@ -80,8 +82,9 @@ public class PayMeetingSituation implements Serializable {
private String companyName;
/**企业联系人id*/
@Excel(name = "企业联系人id", width = 15)
@ApiModelProperty(value = "企业联系人id")
@NotBlank(message = "企业联系人不能为空")
@Size(max = 50, message = "企业联系人最大为50字符")
private String companyContactId;
/**
@@ -96,38 +99,40 @@ public class PayMeetingSituation implements Serializable {
private String companyContactName;
/**职务*/
@Excel(name = "职务", width = 15)
@ApiModelProperty(value = "职务")
private String post;
/**手机号*/
@Excel(name = "手机号", width = 15)
@ApiModelProperty(value = "手机号")
private String phone;
/**邮箱*/
@Excel(name = "邮箱", width = 15)
@ApiModelProperty(value = "邮箱")
private String email;
/**身份*/
@Excel(name = "身份", width = 15)
@ApiModelProperty(value = "身份")
@Dict(dicCode = "meet_identify_type")
private Integer identity;
/**嘉宾类型*/
@Excel(name = "嘉宾类型", width = 15)
@ApiModelProperty(value = "嘉宾类型")
@NotNull(message = "请选择嘉宾类型",groups = Guest.class)
@Min(value = 1,groups = Guest.class)
@Max(value = 4,groups = Guest.class)
private Integer guestType;
/**演讲题目*/
@Excel(name = "演讲题目", width = 15)
@ApiModelProperty(value = "演讲题目")
@NotBlank(message = "演讲题目不能为空",groups = Guest.class)
@Size(max = 50, message = "演讲题目最大为50字符")
private String speechTopic;
/**演讲ppt*/
@Excel(name = "演讲ppt", width = 15)
@ApiModelProperty(value = "演讲ppt")
@NotBlank(message = "演讲ppt不能为空",groups = Guest.class)
private String speechPpt;
/**照片*/
@@ -258,11 +263,16 @@ public class PayMeetingSituation implements Serializable {
/**缴费方式*/
@Excel(name = "缴费方式", width = 15)
@ApiModelProperty(value = "缴费方式")
@NotNull(message = "缴费方式不能为空",groups = CommonPeople.class)
@Min(1)
@Max(3)
private Integer payMode;
/**需要发票*/
@Excel(name = "需要发票", width = 15)
@ApiModelProperty(value = "需要发票")
@Min(0)
@Max(2)
private Integer needInvoice;
/**付款凭证*/
@@ -1,8 +1,14 @@
package com.jero.meeting.service.impl;
import com.jero.common.util.ValidUtil;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.vo.CommonPeopleVO;
import com.jero.meeting.vo.MeetingEntity;
import com.jero.project.common.PayProjectCommon;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,7 +27,28 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
public void add(PayMeetingSituation payMeetingSituation) {
save(payMeetingSituation);
PayMeetingSituation payMeetingSituation1 = new PayMeetingSituation();
MeetingEntity meetingEntity = new MeetingEntity();
BeanUtils.copyProperties(payMeetingSituation,meetingEntity);
//校验公共属性
ValidUtil.validate(meetingEntity);
//判断身份
Integer identity = payMeetingSituation.getIdentity();
if (identity.equals(Integer.parseInt(MeetingSubitemCommon.CAN_HUI_REN))){
CommonPeopleVO commonPeopleVO = new CommonPeopleVO();
BeanUtils.copyProperties(payMeetingSituation,commonPeopleVO);
ValidUtil.validate(commonPeopleVO);
BeanUtils.copyProperties(commonPeopleVO,payMeetingSituation1);
}
//到账
payMeetingSituation1.setInAccount(PayProjectCommon.IN_ACCOUNT0);
//打包
payMeetingSituation1.setPack(PayProjectCommon.PACKAGING0);
//开票
payMeetingSituation1.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
//邮寄
payMeetingSituation1.setMail(PayProjectCommon.MAIL0);
save(payMeetingSituation1);
}
/**
@@ -0,0 +1,9 @@
package com.jero.meeting.valid.group;
/**
* 非国际研讨会的嘉宾和内部企业
* @author liJiaRao
* @date 2021-09-08 17:19
*/
public @interface CommonGuest {
}
@@ -0,0 +1,9 @@
package com.jero.meeting.valid.group;
/**
* 普通参会人
* @author liJiaRao
* @date 2021-09-08 17:21
*/
public @interface CommonPeople {
}
@@ -0,0 +1,9 @@
package com.jero.meeting.valid.group;
/**
* 国际研讨会嘉宾类型
* @author liJiaRao
* @date 2021-09-08 17:05
*/
public @interface Guest {
}
@@ -0,0 +1,33 @@
package com.jero.meeting.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @author liJiaRao
* @date 2021-09-08 18:09
*/
@Data
public class CommonGuestVO extends MeetingEntity{
/**是否入住协议酒店*/
@Excel(name = "是否入住协议酒店", width = 15)
@ApiModelProperty(value = "是否入住协议酒店")
private Integer checkInHotel;
/**入住酒店时间*/
@Excel(name = "入住酒店时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "入住酒店时间")
private java.util.Date inHotelTime;
/**离开酒店时间*/
@Excel(name = "离开酒店时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "离开酒店时间")
private java.util.Date outHotelTime;
}
@@ -0,0 +1,61 @@
package com.jero.meeting.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.meeting.valid.group.CommonPeople;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.*;
/**
* @author liJiaRao
* @date 2021-09-08 17:59
*/
@Data
public class CommonPeopleVO extends CommonGuestVO{
/**邮寄联系人*/
@Excel(name = "邮寄联系人", width = 15)
@ApiModelProperty(value = "邮寄联系人")
private String postContactId;
/**
* 邮寄联系人临时id
*/
@Excel(name = "邮寄联系人姓名", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "3")
private String postContactTemporaryId;
/**
* 邮寄联系人姓名
*/
@ApiModelProperty(value = "邮寄联系人姓名")
private String postContactName;
/**邮寄联系人地址*/
@Excel(name = "邮寄联系人地址", width = 15)
@ApiModelProperty(value = "邮寄联系人地址")
private String postContactAddress;
/**缴费方式*/
@Excel(name = "缴费方式", width = 15)
@ApiModelProperty(value = "缴费方式")
@NotNull(message = "缴费方式不能为空",groups = CommonPeople.class)
@Min(1)
@Max(3)
private Integer payMode;
/**需要发票*/
@Excel(name = "需要发票", width = 15)
@ApiModelProperty(value = "需要发票")
@Min(0)
@Max(2)
private Integer needInvoice;
/**付款凭证*/
@Excel(name = "付款凭证", width = 15)
@ApiModelProperty(value = "付款凭证")
private String paymentRecord;
}
@@ -0,0 +1,84 @@
package com.jero.meeting.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* @author liJiaRao
* @date 2021-09-08 18:05
*/
@Data
public class MeetingEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**会议id*/
@Excel(name = "会议id", width = 15)
@ApiModelProperty(value = "会议id")
@NotBlank(message = "会议项目不能为空")
private String meetingId;
/**企业id*/
@ApiModelProperty(value = "企业id")
@NotBlank(message = "企业名称不能为空")
@Size(max = 50, message = "企业名称最大为50字符")
private String companyId;
/**
* 企业临时id
*/
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management_temporary", dicText = "company_name", dicCode = "id",orderNum = "1")
private String companyTemporaryId;
/**企业名称*/
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
private String companyName;
/**企业联系人id*/
@ApiModelProperty(value = "企业联系人id")
@NotBlank(message = "企业联系人不能为空")
@Size(max = 50, message = "企业联系人最大为50字符")
private String companyContactId;
/**
* 企业联系人临时id
*/
@Excel(name = "企业联系人名称", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "2")
private String companyContactTemporaryId;
/**企业联系人姓名*/
@Excel(name = "企业联系人姓名", width = 15)
@ApiModelProperty(value = "企业联系人姓名")
private String companyContactName;
/**职务*/
@ApiModelProperty(value = "职务")
private String post;
/**手机号*/
@ApiModelProperty(value = "手机号")
private String phone;
/**邮箱*/
@ApiModelProperty(value = "邮箱")
private String email;
/**身份*/
@ApiModelProperty(value = "身份")
@Dict(dicCode = "meet_identify_type")
private Integer identity;
}
@@ -146,17 +146,19 @@ public class PayMemberProjectSubitem implements Serializable {
* 应收金额
*/
@Excel(name = "应收金额", width = 15,orderNum = "4")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@ApiModelProperty(value = "应收金额")
@NotNull(message = "应收金额不能为空")
@Max(value = 999999999, message = "应收金额格式错误")
@DecimalMax(value = "10000000000",message = "应收金额格式错误1")
private BigDecimal amountReceivable;
/**
* 实收金额
*/
//@Excel(name = "实收金额", width = 15,orderNum = "5")
@JsonFormat(shape = JsonFormat.Shape.STRING)
@ApiModelProperty(value = "实收金额")
@Max(value = 999999999, message = "实收金额格式错误")
@DecimalMax(value = "9999999999.99",message = "实收金额格式错误")
private BigDecimal paidAmount;
/**
@@ -6,6 +6,7 @@ import com.jero.common.util.ValidUtil;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.project.common.PayProjectCommon;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
@@ -66,18 +67,16 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
throw new JeroBootException("会员单位已经存在");
}
validMemberProjectSubitem(payMemberProjectSubitem);
//应收金额
payMemberProjectSubitem.setAmountReceivable(memberProject.getChargeStandard());
//实收金额
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
//到账
payMemberProjectSubitem.setInAccount(0);
payMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
//打包
payMemberProjectSubitem.setPack(0);
payMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
//开票
payMemberProjectSubitem.setMakeInvoice(0);
payMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
//邮寄
payMemberProjectSubitem.setMail(0);
payMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
save(payMemberProjectSubitem);
}