|
@@ -0,0 +1,153 @@
|
|
|
+package com.citu.module.menduner.system.service.enterprise.user;
|
|
|
+
|
|
|
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.citu.framework.common.pojo.PageResult;
|
|
|
+import com.citu.framework.common.util.object.BeanUtils;
|
|
|
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyAuditReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.admin.enterprise.user.EnterpriseUserApplyPageReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseUserApplySaveReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseUserApplyRespVO;
|
|
|
+import com.citu.module.menduner.system.convert.EnterpriseConvert;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserApplyDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserApplyMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserBindMapper;
|
|
|
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
|
|
|
+import com.citu.module.menduner.system.enums.enterprise.EnterpriseUserApplyAuditStatusEnum;
|
|
|
+import com.citu.module.menduner.system.service.enterprise.EnterpriseUserApplyService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
+import static com.citu.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 门墩儿-企业用户申请 Service 实现类
|
|
|
+ *
|
|
|
+ * @author Rayson
|
|
|
+ */
|
|
|
+@Service
|
|
|
+@Validated
|
|
|
+public class EnterpriseUserApplyServiceImpl implements EnterpriseUserApplyService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EnterpriseUserApplyMapper enterpriseUserApplyMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private EnterpriseUserBindMapper userBindMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Long createEnterpriseUserApply(EnterpriseUserApplySaveReqVO createReqVO) {
|
|
|
+ // 插入
|
|
|
+ EnterpriseUserApplyDO enterpriseUserApply = BeanUtils.toBean(createReqVO, EnterpriseUserApplyDO.class);
|
|
|
+ enterpriseUserApplyMapper.insert(enterpriseUserApply);
|
|
|
+ // 返回
|
|
|
+ return enterpriseUserApply.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateEnterpriseUserApply(EnterpriseUserApplySaveReqVO updateReqVO) {
|
|
|
+ // 校验存在
|
|
|
+ validateEnterpriseUserApplyExists(updateReqVO.getId());
|
|
|
+ // 更新
|
|
|
+ EnterpriseUserApplyDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseUserApplyDO.class);
|
|
|
+ enterpriseUserApplyMapper.updateById(updateObj);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void deleteEnterpriseUserApply(Long id) {
|
|
|
+ // 校验存在
|
|
|
+ validateEnterpriseUserApplyExists(id);
|
|
|
+ // 删除
|
|
|
+ enterpriseUserApplyMapper.deleteById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void validateEnterpriseUserApplyExists(Long id) {
|
|
|
+ if (enterpriseUserApplyMapper.selectById(id) == null) {
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public EnterpriseUserApplyDO getEnterpriseUserApply(Long id) {
|
|
|
+ return enterpriseUserApplyMapper.selectById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResult<EnterpriseUserApplyDO> getEnterpriseUserApplyPage(EnterpriseUserApplyPageReqVO pageReqVO) {
|
|
|
+ return enterpriseUserApplyMapper.selectPage(pageReqVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void approved(EnterpriseUserApplyAuditReqVO reqVO) {
|
|
|
+ EnterpriseUserApplyDO appApplyDO = enterpriseUserApplyMapper.selectById(reqVO.getId());
|
|
|
+ if (null == appApplyDO) {
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ if (!EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus()
|
|
|
+ .equals(appApplyDO.getStatus())) {
|
|
|
+ // 已审批
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_APPROVED);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ appApplyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.APPROVED.getStatus());
|
|
|
+ appApplyDO.setReason(reqVO.getReason());
|
|
|
+ enterpriseUserApplyMapper.updateById(appApplyDO);
|
|
|
+
|
|
|
+ // 增加企业绑定用户信息
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void reject(EnterpriseUserApplyAuditReqVO reqVO) {
|
|
|
+ EnterpriseUserApplyDO userApplyDO = enterpriseUserApplyMapper.selectById(reqVO.getId());
|
|
|
+ if (null == userApplyDO) {
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ if (!EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus()
|
|
|
+ .equals(userApplyDO.getStatus())) {
|
|
|
+ // 已审批
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_APPROVED);
|
|
|
+ }
|
|
|
+ if (EnterpriseUserApplyAuditStatusEnum.APPROVED.getStatus()
|
|
|
+ .equals(userApplyDO.getStatus())) {
|
|
|
+ // 已审批通过,无法拒绝
|
|
|
+ throw exception(ENTERPRISE_USER_APPLY_APPROVED_SUCCESS);
|
|
|
+ }
|
|
|
+ userApplyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.REJECT.getStatus());
|
|
|
+ userApplyDO.setReason(reqVO.getReason());
|
|
|
+ enterpriseUserApplyMapper.updateById(userApplyDO);
|
|
|
+
|
|
|
+ // 加入绑定
|
|
|
+ EnterpriseUserBindDO userBindDO = new EnterpriseUserBindDO();
|
|
|
+ userBindDO.setEnterpriseId(userApplyDO.getEnterpriseId());
|
|
|
+ userBindDO.setUserId(userApplyDO.getUserId());
|
|
|
+ userBindDO.setName(userApplyDO.getName());
|
|
|
+ userBindDO.setPostId(userApplyDO.getPostId());
|
|
|
+ userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
|
|
|
+ userBindMapper.insert(userBindDO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void apply(AppEnterpriseUserApplyReqVO reqVO) {
|
|
|
+ if (enterpriseUserApplyMapper.selectCount(EnterpriseUserApplyDO::getUserId, getLoginUserId()) > 0) {
|
|
|
+ throw exception(MDE_ENTERPRISE_REGISTER_APPLY_DUPLICATE);
|
|
|
+ }
|
|
|
+ EnterpriseUserApplyDO applyDO = EnterpriseConvert.INSTANCE.convert10(reqVO);
|
|
|
+ applyDO.setStatus(EnterpriseUserApplyAuditStatusEnum.AUDITING.getStatus());
|
|
|
+ applyDO.setUserId(getLoginUserId());
|
|
|
+ enterpriseUserApplyMapper.insert(applyDO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AppEnterpriseUserApplyRespVO getApplyByUserId() {
|
|
|
+ return EnterpriseConvert.INSTANCE.convert9(enterpriseUserApplyMapper.selectByUserId(getLoginUserId()));
|
|
|
+ }
|
|
|
+}
|