package com.xzx.gc.user.controller; import cn.hutool.core.collection.CollUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.Result; import com.xzx.gc.common.annotations.PassToken; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.UserEnum; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.BusinessUtil; import com.xzx.gc.common.utils.SpringUtil; import com.xzx.gc.entity.OtherUserInfo; import com.xzx.gc.entity.UserGatherApply; import com.xzx.gc.entity.UserGatherInfo; import com.xzx.gc.entity.UserScrapStore; import com.xzx.gc.model.IdDTO; import com.xzx.gc.model.user.UserGatherApplyListParam; import com.xzx.gc.model.user.UserGatherAuditParam; import com.xzx.gc.user.service.OtherUserService; import com.xzx.gc.user.service.UserGatherApplyService; import com.xzx.gc.user.service.UserGatherInfoService; import com.xzx.gc.user.service.UserScrapStoreService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; @RestController @Validated @Slf4j @Api(tags = "外驻人员申请审核管理") public class UserGatherApplyController extends BaseController { @Autowired private UserGatherApplyService userGatherApplyService; @Autowired private BusinessUtil businessUtil; @Autowired private OtherUserService otherUserService; @Autowired private UserGatherInfoService userGatherInfoService; @Autowired private UserScrapStoreService userScrapStoreService; @PostMapping("/userGatherApply/apply") @ApiOperation(value = "外驻人员提交申请") @PassToken public Result userGatherApply(HttpServletRequest request, @RequestBody UserGatherApply userGatherApply) { String mobilePhone = userGatherApply.getMobilePhone(); String code = userGatherApply.getCode(); //1:集货员申请 2:回收员申请 3:废品店申请 String type = userGatherApply.getType(); boolean b = businessUtil.checkSmsCode(code, mobilePhone); if(!b){ return Result.error("验证码不正确"); } List byMobile = userGatherApplyService.findByMobileAndType(mobilePhone,type); if(CollUtil.isNotEmpty(byMobile)){ if(byMobile.stream().filter(x->x.getStatus().equals(CommonEnum.待审核.getValue())).count()>0){ return Result.error("当前手机号正在审核中"); } } //查询是否存在集货员、回收员、废品站等身份 List byMobileForBidden = otherUserService.findByMobileForBidden(mobilePhone); if(CollUtil.isNotEmpty(byMobileForBidden)){ return Result.error("当前手机号已被平台用户注册"); } UserGatherInfo userGatherInfo = userGatherInfoService.findByMobileForBidden(mobilePhone); if (userGatherInfo != null) { return Result.error("当前手机号已被集货员注册"); } UserScrapStore userScrapStore = userScrapStoreService.findByMobile(mobilePhone); if (userScrapStore != null) { return Result.error("当前手机号已被废品站注册"); } userGatherApplyService.apply(userGatherApply); OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(userGatherApply.getMobilePhone()) .methodName(Constants.USER_MODUL_NAME).operateAction("外驻人员提交申请-"+userGatherApply.getMobilePhone()).build(); mqUtil.sendApp(build); return Result.success("申请成功,请重新登录"); } @PostMapping(value = {"/userGatherApply/list","/admin/front/userGatherApply/list"}) @ApiOperation(value = "外驻审核列表") public Result> userGatherApplyList(HttpServletRequest request, @RequestBody UserGatherApplyListParam userGatherApplyListParam) { PageHelper.startPage(userGatherApplyListParam.getPageNo(),userGatherApplyListParam.getPageSize()); boolean mobile = isMobile(request); if(mobile){ userGatherApplyListParam.setClientType(CommonEnum.app.getValue()); } List list=userGatherApplyService.list(userGatherApplyListParam); return Result.success(new PageInfo<>(list)); } @PostMapping(value = {"/userGatherApply/audit","/admin/front/userGatherApply/audit"}) @ApiOperation(value = "外驻人员审核") public Result userGatherAudit(HttpServletRequest request, @RequestBody UserGatherAuditParam userGatherAuditParam) { //审核 userGatherApplyService.audit(userGatherAuditParam); if(isMobile(request)){ String mobilePhone = otherUserService.findById(getUserId(request)).getMobilePhone(); OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) .methodName(Constants.USER_MODUL_NAME).operateAction("外驻人员审核-" + userGatherAuditParam.getId()).build(); mqUtil.sendApp(build); }else { OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("外驻人员审核-" + userGatherAuditParam.getId()).build(); mqUtil.sendApp(build); } return Result.success(); } }