|
@@ -12,7 +12,6 @@ import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseEntitlemen
|
|
import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
|
|
import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
|
|
import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
|
|
import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-import org.springframework.util.StringUtils;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
@@ -161,89 +160,89 @@ public class EnterpriseEntitlementServiceImpl implements EnterpriseEntitlementSe
|
|
@Override
|
|
@Override
|
|
@DSTransactional
|
|
@DSTransactional
|
|
public void activateVip(EnterpriseVipReqVO reqVO) {
|
|
public void activateVip(EnterpriseVipReqVO reqVO) {
|
|
|
|
+ if (null == reqVO.getEntitlement()) {
|
|
|
|
+ throw exception(ENTERPRISE_ENTITLEMENT_NOT_EXISTS);
|
|
|
|
+ }
|
|
EnterpriseDO enterprise = enterpriseService.getEnterprise(reqVO.getEnterpriseId());
|
|
EnterpriseDO enterprise = enterpriseService.getEnterprise(reqVO.getEnterpriseId());
|
|
- EnterprisePackageDO packageDO = enterprisePackageService.getEnterprisePackage(reqVO.getPackageId());
|
|
|
|
- // 不算今天
|
|
|
|
- long day = packageDO.getDay() + 1;
|
|
|
|
-
|
|
|
|
- if (!StringUtils.hasText(enterprise.getVipFlag())) {
|
|
|
|
- // 没有开过会员
|
|
|
|
- enterprise.setVipFlag(String.valueOf(packageDO.getId()));
|
|
|
|
- enterprise.setVipExpireDate(LocalDateTime.now().plusDays(day));
|
|
|
|
- } else {
|
|
|
|
- // 开过会员
|
|
|
|
- if (isExpired(enterprise.getVipExpireDate())) {
|
|
|
|
- // 过期值覆盖
|
|
|
|
- enterprise.setVipFlag(String.valueOf(packageDO.getId()));
|
|
|
|
- // 不算今天
|
|
|
|
- enterprise.setVipExpireDate(LocalDateTime.now().plusDays(day));
|
|
|
|
- } else {
|
|
|
|
- // 没有过期
|
|
|
|
- // 累加时间,如果当前权益大于user.getVipFlag()则覆盖,并且累加时间
|
|
|
|
- // TODO 不允许小于当前权益
|
|
|
|
- Long currentVipFlag = Long.parseLong(enterprise.getVipFlag());
|
|
|
|
- Long newVipFlag = packageDO.getId();
|
|
|
|
-
|
|
|
|
- if (currentVipFlag == Long.parseLong(enterprise.getVipFlag())) {
|
|
|
|
- // 买一样的,加天数
|
|
|
|
- enterprise.setVipExpireDate(enterprise.getVipExpireDate().plusDays(day));
|
|
|
|
- } else if (newVipFlag > currentVipFlag) {
|
|
|
|
- // 新套餐大于套餐
|
|
|
|
- enterprise.setVipFlag(String.valueOf(packageDO.getId()));
|
|
|
|
- enterprise.setVipExpireDate(enterprise.getVipExpireDate().plusDays(day));
|
|
|
|
- } else {
|
|
|
|
- // 新套餐小于套餐
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ EnterprisePackageDO packageDO = null;
|
|
|
|
+ if (null != reqVO.getPackageId()) {
|
|
|
|
+ packageDO = enterprisePackageService.getEnterprisePackage(reqVO.getPackageId());
|
|
}
|
|
}
|
|
- // 修改会员
|
|
|
|
- enterpriseService.updateVip(enterprise.getId(), enterprise.getVipFlag(), enterprise.getVipExpireDate());
|
|
|
|
-
|
|
|
|
|
|
+ // 更新vip标识
|
|
|
|
+ updateVipFlag(packageDO, enterprise, reqVO.getEntitlement());
|
|
// 找出管理员
|
|
// 找出管理员
|
|
EnterpriseUserBindDO userBind = enterpriseBindService.getByEnterpriseAdmin(enterprise.getId());
|
|
EnterpriseUserBindDO userBind = enterpriseBindService.getByEnterpriseAdmin(enterprise.getId());
|
|
- if (enterpriseBindService.checkIsAdmin(userBind)) {
|
|
|
|
- // 管理员
|
|
|
|
|
|
+ // 是否管理员
|
|
|
|
+ if (!enterpriseBindService.checkIsAdmin(userBind)) {
|
|
|
|
+ // 没有管理员的企业
|
|
|
|
+ throw exception(ENTERPRISE_ENTITLEMENT_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
|
|
- // 查询权益
|
|
|
|
- EnterpriseEntitlementDO enterpriseEntitlement = mapper.selectOne(EnterpriseEntitlementDO::getEnterpriseId,
|
|
|
|
- userBind.getEnterpriseId(), EnterpriseEntitlementDO::getUserId, userBind.getUserId());
|
|
|
|
- if (null == enterpriseEntitlement) {
|
|
|
|
- // 新增
|
|
|
|
- EnterpriseEntitlementDO insert = EnterpriseEntitlementDO.builder()
|
|
|
|
- .enterpriseId(userBind.getEnterpriseId())
|
|
|
|
- .userId(userBind.getUserId())
|
|
|
|
- .publishJobCount(packageDO.getPublishJobCount())
|
|
|
|
- .searchCount(packageDO.getSearchCount())
|
|
|
|
- .lookCvCount(packageDO.getLookCvCount())
|
|
|
|
- .personMap(packageDO.getPersonMap())
|
|
|
|
- .hireJob(packageDO.getHireJob())
|
|
|
|
- .build();
|
|
|
|
-
|
|
|
|
- mapper.insert(insert);
|
|
|
|
- } else {
|
|
|
|
- // 修改
|
|
|
|
- EnterpriseEntitlementDO update = EnterpriseEntitlementDO.builder()
|
|
|
|
- .id(enterpriseEntitlement.getId())
|
|
|
|
- .enterpriseId(userBind.getEnterpriseId())
|
|
|
|
- .userId(userBind.getUserId())
|
|
|
|
- .publishJobCount(enterpriseEntitlement.getPublishJobCount() + packageDO.getPublishJobCount())
|
|
|
|
- .searchCount(enterpriseEntitlement.getSearchCount() + packageDO.getSearchCount())
|
|
|
|
- .lookCvCount(enterpriseEntitlement.getLookCvCount() + packageDO.getLookCvCount())
|
|
|
|
- // 覆盖
|
|
|
|
- .personMap(packageDO.getPersonMap())
|
|
|
|
- .hireJob(packageDO.getHireJob())
|
|
|
|
- .build();
|
|
|
|
- mapper.updateById(update);
|
|
|
|
- }
|
|
|
|
|
|
+ // 查询权益
|
|
|
|
+ EnterpriseEntitlementDO enterpriseEntitlement = mapper.selectOne(EnterpriseEntitlementDO::getEnterpriseId,
|
|
|
|
+ userBind.getEnterpriseId(), EnterpriseEntitlementDO::getUserId, userBind.getUserId());
|
|
|
|
+ if (null == enterpriseEntitlement) {
|
|
|
|
+ // 新增权益
|
|
|
|
+ EnterpriseEntitlementDO insert = EnterpriseEntitlementDO.builder()
|
|
|
|
+ .enterpriseId(userBind.getEnterpriseId())
|
|
|
|
+ .userId(userBind.getUserId())
|
|
|
|
+ .publishJobCount(reqVO.getEntitlement().getPublishJobCount())
|
|
|
|
+ .searchCount(reqVO.getEntitlement().getSearchCount())
|
|
|
|
+ .lookCvCount(reqVO.getEntitlement().getLookCvCount())
|
|
|
|
+ .personMap(reqVO.getEntitlement().getPersonMap())
|
|
|
|
+ .hireJob(reqVO.getEntitlement().getHireJob())
|
|
|
|
+ .build();
|
|
|
|
|
|
|
|
+ mapper.insert(insert);
|
|
|
|
+ } else {
|
|
|
|
+ // 修改权益
|
|
|
|
+ EnterpriseEntitlementDO update = EnterpriseEntitlementDO.builder()
|
|
|
|
+ .id(enterpriseEntitlement.getId())
|
|
|
|
+ .enterpriseId(userBind.getEnterpriseId())
|
|
|
|
+ .userId(userBind.getUserId())
|
|
|
|
+// .publishJobCount(enterpriseEntitlement.getPublishJobCount() + reqVO.getEntitlement().getPublishJobCount())
|
|
|
|
+// .searchCount(enterpriseEntitlement.getSearchCount() + reqVO.getEntitlement().getSearchCount())
|
|
|
|
+// .lookCvCount(enterpriseEntitlement.getLookCvCount() + reqVO.getEntitlement().getLookCvCount())
|
|
|
|
+ .publishJobCount(reqVO.getEntitlement().getPublishJobCount())
|
|
|
|
+ .searchCount(reqVO.getEntitlement().getSearchCount())
|
|
|
|
+ .lookCvCount(reqVO.getEntitlement().getLookCvCount())
|
|
|
|
+ // 覆盖
|
|
|
|
+ .personMap(reqVO.getEntitlement().getPersonMap())
|
|
|
|
+ .hireJob(reqVO.getEntitlement().getHireJob())
|
|
|
|
+ .build();
|
|
|
|
+ mapper.updateById(update);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 更新vip标识
|
|
|
|
+ **/
|
|
|
|
+ public void updateVipFlag(EnterprisePackageDO packageDO,
|
|
|
|
+ EnterpriseDO enterprise,
|
|
|
|
+ EnterpriseEntitlementSimpleReqVO entitlement) {
|
|
|
|
+ if (!entitlement.getActivateVip()) {
|
|
|
|
+ // 不更新标识
|
|
|
|
+ // 移除覆盖
|
|
|
|
+ enterpriseService.updateVip(enterprise.getId(), null, null);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ // 自定义的权益标识
|
|
|
|
+ String vipFlag = "99999";
|
|
|
|
+ enterprise.setVipFlag(null != packageDO ? String.valueOf(packageDO.getId()) : vipFlag);
|
|
|
|
+ enterprise.setVipExpireDate(entitlement.getVipExpireDate());
|
|
|
|
|
|
|
|
+ // 修改会员
|
|
|
|
+ enterpriseService.updateVip(enterprise.getId(), enterprise.getVipFlag(), enterprise.getVipExpireDate());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<EnterpriseEntitlementRespVO> getListByEnterpriseId(Long enterpriseId) {
|
|
public List<EnterpriseEntitlementRespVO> getListByEnterpriseId(Long enterpriseId) {
|
|
return BeanUtils.toBean(mapper.selectListByEnterpriseId(enterpriseId), EnterpriseEntitlementRespVO.class);
|
|
return BeanUtils.toBean(mapper.selectListByEnterpriseId(enterpriseId), EnterpriseEntitlementRespVO.class);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void checkVipExpired(Long enterpriseId) {
|
|
|
|
+ enterpriseService.checkVipExpired(enterpriseId);
|
|
|
|
+ }
|
|
}
|
|
}
|