update 标协会员项目成员- 开票后更新有效期,会员编号

This commit is contained in:
lijiarao
2024-03-08 15:26:27 +08:00
parent 336ea2ced8
commit cf8dddcb2f
6 changed files with 45 additions and 5 deletions
@@ -29,6 +29,8 @@ import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.payment.entity.PayPaymentRecord;
@@ -94,6 +96,8 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
private IPayDraftingGroupSubItemService payDraftingGroupSubItemService;
@Resource
private IPayDraftingGroupSubItemContactsService payDraftingGroupSubItemContactsService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Override
public ProjectDetailVO getProjectDetail(String projectId) {
@@ -360,6 +364,15 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress());
}
}
//会员权益
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)){
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(payCommonProject.getChargeCompanyId());
if (takeEffectInfo != null){
projectDetailVO.setMemberNo(takeEffectInfo.getMemberNo());
projectDetailVO.setEffectiveDate(takeEffectInfo.getEffectiveDate());
projectDetailVO.setInvalidationDate(takeEffectInfo.getInvalidationDate());
}
}
// 到账信息
LambdaQueryWrapper<PayPaymentRecord> queryWrapperPayPaymentRecord = new LambdaQueryWrapper<>();
queryWrapperPayPaymentRecord.eq(PayPaymentRecord::getProjectId,projectId);
@@ -7,9 +7,11 @@ import com.jero.payment.entity.PayPaymentRecord;
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@@ -289,5 +291,23 @@ public class ProjectDetailVO implements Serializable {
/**起草组成员联系人**/
@ApiModelProperty(value = "起草组成员联系人")
private List<PayDraftingGroupSubItemContacts> payDraftingGroupSubItemContactsLists;
/**
* 会员编号
*/
@ApiModelProperty(value = "会员编号")
private String memberNo;
/** 生效日期 */
@ApiModelProperty(value = "生效日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date effectiveDate;
/**
* 失效日期
*/
@ApiModelProperty(value = "失效日期")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date invalidationDate;
}
@@ -203,7 +203,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
for (int i = 0; i < bmpList.size(); i++) {
PayMailBillProject payMailBillProject = bmpList.get(i);
if (PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(payMailBillProject.getProjectType()))) {
// 更新会员有效期
// 生成会员有效期
String id = payMailBillProject.getProjectId();
tbMemberProjectSubitemService.generateValidDate(id);
}
@@ -36,6 +36,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
List<TbMemberProjectSubitem> getAllTakeEffectByCompanyId(@Param("companyId") String companyId);
@Select("SELECT IFNULL(MAX(SUBSTRING(member_no,13)),'0') + 1 FROM tb_member_info WHERE member_no LIKE concat(#{date},'%')")
@Select("SELECT IFNULL(MAX(SUBSTRING(member_no,13)),'0') + 1 FROM tb_member_project_subitem WHERE member_no LIKE concat(#{date},'%')")
Integer getMaxMemberNo(@Param("date") String date);
}
@@ -82,7 +82,9 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
void ticketCollection(String id);
void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO);
TbMemberProjectSubitem getTakeEffectInfo(String companyId);
void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO);
void generateValidDate(String id);
@@ -235,6 +235,7 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
* @param companyId
* @return
*/
@Override
public TbMemberProjectSubitem getTakeEffectInfo(String companyId){
//获得所有生效数据
List<TbMemberProjectSubitem> allByCompanyId = tbMemberProjectSubitemMapper.getAllTakeEffectByCompanyId(companyId);
@@ -266,6 +267,10 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
@Override
public void generateValidDate(String id){
TbMemberProjectSubitem memberProjectSubitem = getById(id);
//如果有有效期就不执行了
if (memberProjectSubitem.getEffectiveDate() != null){
return;
}
String companyId = memberProjectSubitem.getCompanyId();
//获得有效数据
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
@@ -274,7 +279,7 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
updateWrapper.eq(TbMemberProjectSubitem::getId,id);
DateTime date = DateUtil.date();
//如果是新会员,或者当前日期大于之前的失效日期
if (takeEffectInfo == null || date.compareTo(takeEffectInfo.getInvalidationDate()) > 0){
if (takeEffectInfo == null || DateUtil.compare(date,takeEffectInfo.getInvalidationDate()) > 0){
//获得当月1日
effectiveDate = DateUtil.beginOfMonth(date);
// 如果是续费
@@ -292,7 +297,7 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
//设置会员状态为已缴费
updateWrapper.set(TbMemberProjectSubitem::getMemberStatus,MemberStatusEnum.PAID.getValue());
//如果是新会员,生成会员编号
if (takeEffectInfo == null){
if (takeEffectInfo == null || memberProjectSubitem.getMemberNo() == null){
//格式化日期为yyyyMMdd
String dateStr = date.toString(DatePattern.PURE_DATE_PATTERN);
String memberNoPrefix = "CASA" + dateStr;