diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/SupplierRegistrationController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/SupplierRegistrationController.java new file mode 100644 index 0000000..deb0baf --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/SupplierRegistrationController.java @@ -0,0 +1,45 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.controller; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.zyhy.ebtp.supplier.base.service.ISupplierRegistrationService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/supplierRegistration") +public class SupplierRegistrationController { + + @Autowired + private ISupplierRegistrationService supplierRegistrationService; + + /** + * 境内获取短信验证码 + * @return + */ + @ApiOperation("供应商注册-发送验证码") + @GetMapping("/sendPhoneCode") + public BaseResponse sendPhoneCode(String contactsPhone) { + if (ObjectUtils.isEmpty(contactsPhone)) { + return BaseResponse.fail("手机号不能空"); + } + boolean sent = supplierRegistrationService.sendSmsCode(contactsPhone); + return BaseResponse.success(sent); + } + + + /** + * 境外获取邮箱验证码 + * @return + */ + @ApiOperation("供应商注册-发送验证码") + @GetMapping("/sendEmailCode") + public BaseResponse sendEmailCode(String contactsEmail) { + if (ObjectUtils.isEmpty(contactsEmail)) { + return BaseResponse.fail("邮箱不能空"); + } + return BaseResponse.success(supplierRegistrationService.sendEmailCode(contactsEmail)); + } +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/UserController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/UserController.java index 1ecfb52..b0670f7 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/UserController.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/controller/UserController.java @@ -1,6 +1,7 @@ package com.chinaunicom.zyhy.ebtp.supplier.base.controller; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.base.entity.SysSupplierUser; import com.chinaunicom.mall.ebtp.common.base.entity.SysUser; import com.chinaunicom.mall.ebtp.common.base.entity.SysUserVO; import com.chinaunicom.zyhy.ebtp.supplier.base.service.IUserService; @@ -49,6 +50,10 @@ public class UserController { } + @PostMapping("/supplierUserPwd") + public BaseResponse supplierUserPwd(@RequestBody SysSupplierUser sysSupplierUser) { + return BaseResponse.success(userService.supplierUserPwd(sysSupplierUser)); + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/ISupplierRegistrationService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/ISupplierRegistrationService.java new file mode 100644 index 0000000..ff9d14c --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/ISupplierRegistrationService.java @@ -0,0 +1,32 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.service; + + + +/** + * 注册获取验证码 + */ +public interface ISupplierRegistrationService { + + + /** + * 手机号获取验证码 + * @param phone + * @return + */ + boolean sendSmsCode(String phone); + + + + /** + * 获取邮箱验证码 + * @param phone + * @return + */ + String sendEmailCode(String phone); + + /** + * 校验手机号和验证码 + */ + boolean verifySmsCode(String phone, String code); + +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IUserService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IUserService.java index 2aa3edf..601c81c 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IUserService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/IUserService.java @@ -28,4 +28,8 @@ public interface IUserService{ SysSupplierUser register(CoscoSupplierBase coscoSupplierBase); + boolean supplierUserPwd(SysSupplierUser sysSupplierUser); + + + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/SupplierRegistrationServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/SupplierRegistrationServiceImpl.java new file mode 100644 index 0000000..932258a --- /dev/null +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/SupplierRegistrationServiceImpl.java @@ -0,0 +1,68 @@ +package com.chinaunicom.zyhy.ebtp.supplier.base.service.impl; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.mail.client.MailFeignClient; +import com.chinaunicom.mall.ebtp.common.mail.entity.MailRequest; +import com.chinaunicom.mall.ebtp.common.sms.client.SmsFeignClient; +import com.chinaunicom.mall.ebtp.common.sms.entity.SmsSendResponse; +import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.chinaunicom.mall.ebtp.login.common.RSA; +import com.chinaunicom.zyhy.ebtp.supplier.base.service.ISupplierRegistrationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.concurrent.TimeUnit; + + +@Service +public class SupplierRegistrationServiceImpl implements ISupplierRegistrationService { + + + @Autowired(required = false) + @Qualifier("cacheRedisTemplate") + private RedisTemplate redisTemplate; + + @Value("${login.password.privateKey}") + private String privateKey; + @Autowired + private SmsFeignClient smsFeignClient; + + @Autowired + private MailFeignClient mailFeignClient; + + + @Override + public boolean sendSmsCode(String phone) { + // 生成验证码 + String code = String.valueOf((int)((Math.random() * 9 + 1) * 100000)); + // 发送短信 + String message = "您的验证码是:" + code + ",请在5分钟内输入。"; + BaseResponse templateSMSBaseResponse = smsFeignClient.sendSms(new String[]{phone}, "1180212", new String[]{message}, PropertyUtils.getSnowflakeId(), null); + redisTemplate.opsForValue().set("FORGOT_REG_CODE:" + phone, code, 5, TimeUnit.MINUTES); + return templateSMSBaseResponse.isSuccess(); + } + + @Override + public String sendEmailCode(String email) { + // 生成验证码 + String code = String.valueOf((int)((Math.random() * 9 + 1) * 100000)); + // 发送短信 + String message = "您的验证码是:" + code + ",请在5分钟内输入。"; + MailRequest mailRequest = new MailRequest(); + mailRequest.setTo(email); + mailRequest.setSubject("中远海运"); + mailRequest.setContent(message); + //BaseResponse templateSMSBaseResponse = mailFeignClient.sendSimpleMail(mailRequest); + redisTemplate.opsForValue().set("FORGOT_REG_CODE:" + email, code, 5, TimeUnit.MINUTES); + return message; + } + + @Override + public boolean verifySmsCode(String phone, String code) { + Object redisCode = redisTemplate.opsForValue().get("FORGOT_REG_CODE:" + phone); + return code.equals(redisCode); + } +} diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/UserServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/UserServiceImpl.java index 7854034..129d9ec 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/UserServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/base/service/impl/UserServiceImpl.java @@ -3,11 +3,13 @@ package com.chinaunicom.zyhy.ebtp.supplier.base.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaunicom.mall.ebtp.common.base.client.SystemClient; import com.chinaunicom.mall.ebtp.common.base.entity.*; +import com.chinaunicom.mall.ebtp.common.base.util.TokenUtil; import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoType; import com.chinaunicom.zyhy.ebtp.supplier.base.service.IUserService; import com.chinaunicom.zyhy.ebtp.supplier.base.vo.SelectUserVo; import com.chinaunicom.zyhy.ebtp.supplier.base.vo.UserVo; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierBase; +import com.chinaunicom.zyhy.ebtp.supplier.util.Md5Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,6 +44,11 @@ public class UserServiceImpl implements IUserService { return systemClient.getUser(userId).getData(); } + /** + * 供应商注册同步接口 + * @param coscoSupplierBase + * @return + */ @Override public SysSupplierUser register(CoscoSupplierBase coscoSupplierBase) { SupplierRegistrationVO supplierRegistrationVO = new SupplierRegistrationVO(); @@ -71,6 +78,14 @@ public class UserServiceImpl implements IUserService { return systemClient.register(supplierRegistrationVO).getData(); } + @Override + public boolean supplierUserPwd(SysSupplierUser sysSupplierUser) { + BaseCacheUser currentUser = TokenUtil.getCurrentUser(); + sysSupplierUser.setUserId(Long.parseLong(currentUser.getUserId())); + sysSupplierUser.setPassword(Md5Util.encode(sysSupplierUser.getPassword())); + return systemClient.update(sysSupplierUser).isSuccess(); + } + public List getUser(SelectUserVo vo) { BaseResponse> userlist = systemClient.getUserlist(new SysUser()); List list = new ArrayList<>(); diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/controller/CoscoSupplierBaseController.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/controller/CoscoSupplierBaseController.java index 6452bbd..821f884 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/controller/CoscoSupplierBaseController.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/controller/CoscoSupplierBaseController.java @@ -9,6 +9,7 @@ import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.util.TokenUtil; import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoType; +import com.chinaunicom.zyhy.ebtp.supplier.base.service.ISupplierRegistrationService; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplierCategory; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierBase; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierUser; @@ -42,6 +43,11 @@ public class CoscoSupplierBaseController extends BaseController { @Autowired private ICoscoSupplierUserService coscoSupplierUserService; + @Autowired + private ISupplierRegistrationService supplierRegistrationService; + + + /** * 查询当前登录人的所在单位下,未准入供应商分页数据 * @return 返回结果 @@ -73,7 +79,21 @@ public class CoscoSupplierBaseController extends BaseController { */ @ApiOperation("新增数据") @PostMapping("/add") - public BaseResponse supplierRegistration(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid CoscoSupplierVo vo){ + public BaseResponse supplierRegistration(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid CoscoSupplierVo vo){ + if(CoscoType.SUPPLIER_TYPE_OVS.equals(vo.getCoscoSupplierBase().getSupplierType())){ + //如果是境外企业 + boolean valid = supplierRegistrationService.verifySmsCode(vo.getCoscoSupplierBase().getContactsEmail(),vo.getEncryptValue()); + if (!valid) { + return BaseResponse.fail("验证码错误"); + } + } + if(CoscoType.SUPPLIER_TYPE_DVS.equals(vo.getCoscoSupplierBase().getSupplierType())){ + //如果是境内企业 + boolean valid = supplierRegistrationService.verifySmsCode(vo.getCoscoSupplierBase().getContactsPhone(),vo.getEncryptValue()); + if (!valid) { + return BaseResponse.fail("验证码错误"); + } + } return BaseResponse.success(coscoSupplierBaseService.insertCoscoSupplierBase(vo,null)); } @@ -84,12 +104,13 @@ public class CoscoSupplierBaseController extends BaseController { */ @ApiOperation("新增数据") @PostMapping("/addAgent") - public BaseResponse addAgent(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid CoscoSupplierVo vo){ + public BaseResponse addAgent(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid CoscoSupplierVo vo){ BaseCacheUser currentUser = TokenUtil.getCurrentUser(); String userId = currentUser.getUserId();//登录人id CoscoSupplierBase coscoSupplierBase = vo.getCoscoSupplierBase(); coscoSupplierBase.setFillinStatus(CoscoType.FILLIN_STATUS_S);//代录入标识 coscoSupplierBase.setFillinBy(userId);//代理人 + coscoSupplierBase.setDeptId(currentUser.getDeptId()); return BaseResponse.success(coscoSupplierBaseService.insertCoscoSupplierBase(vo,userId)); } @@ -115,7 +136,7 @@ public class CoscoSupplierBaseController extends BaseController { BaseCacheUser currentUser = TokenUtil.getCurrentUser(); String userId = currentUser.getUserId();//登录人id coscoSupplierBase.setFillinBy(userId); - return BaseResponse.success(coscoSupplierBaseService.getPage(coscoSupplierBase)); + return BaseResponse.success(coscoSupplierBaseService.getPageAgent(coscoSupplierBase)); } @@ -259,7 +280,7 @@ public class CoscoSupplierBaseController extends BaseController { // 动态设置导出字段(忽略未标注字段) Set includeFields = new HashSet<>(Arrays.asList( - "personName", "idCard","personPhone", "orgName","deptName","createTime" // 指定要导出的字段名 + "personName", "idCard","personPhone", "orgName","createName","createTime" // 指定要导出的字段名 )); String fileName = URLEncoder.encode("个人合格供应商.xlsx", "UTF-8"); diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierBase.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierBase.java index 112c3fe..77a72ee 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierBase.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierBase.java @@ -266,4 +266,7 @@ public class CoscoSupplierBase { //统计数 private String countNum; + + @ExcelProperty("创建人") + private String createName; } \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierVo.java index 9d4d789..0105317 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierVo.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/CoscoSupplierVo.java @@ -31,4 +31,7 @@ public class CoscoSupplierVo { //变更说明 private String changeDesc; + //验证码 + private String encryptValue; + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/ICoscoSupplierBaseService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/ICoscoSupplierBaseService.java index 1258e6b..a230903 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/ICoscoSupplierBaseService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/ICoscoSupplierBaseService.java @@ -19,6 +19,10 @@ public interface ICoscoSupplierBaseService { IPage getPage(CoscoSupplierBase coscoSupplierBase); + IPage getPageAgent(CoscoSupplierBase coscoSupplierBase); + + + IPage getHgSupplierBasePage(CoscoSupplierBase coscoSupplierBase); IPage getMySupplierBasePage(CoscoSupplierBase coscoSupplierBase); @@ -59,7 +63,7 @@ public interface ICoscoSupplierBaseService { * 新增中远海运_供应商_基本信息 * */ - public Integer insertCoscoSupplierBase(CoscoSupplierVo vo,String userId); + public String insertCoscoSupplierBase(CoscoSupplierVo vo,String userId); /** * 修改中远海运_供应商_基本信息 diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java index 6d37835..c930f72 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java @@ -4,10 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser; -import com.chinaunicom.mall.ebtp.common.base.entity.SysOrg; -import com.chinaunicom.mall.ebtp.common.base.entity.SysOrgVO; -import com.chinaunicom.mall.ebtp.common.base.entity.SysSupplierUser; +import com.chinaunicom.mall.ebtp.common.base.entity.*; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.base.util.TokenUtil; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; @@ -28,6 +25,8 @@ import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.service.*; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.OrgDeptVo; import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.SupplierPageVo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -105,6 +104,9 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImpl redisTemplate; @@ -142,6 +144,23 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImpl getPageAgent(CoscoSupplierBase coscoSupplierBase) { + IPage page = new Page<>(coscoSupplierBase.getPageNo(), coscoSupplierBase.getPageSize()); + IPage pageData = coscoSupplierBaseMapper.selectPageList(page, coscoSupplierBase); + for(CoscoSupplierBase supplierBase : pageData.getRecords()){ + OrgDeptVo orgDeptVo = orgService.getOrgDeptInfo(supplierBase.getDeptId()); + supplierBase.setOrgName(orgDeptVo.getOrgName()); + supplierBase.setDeptName(orgDeptVo.getDeptName()); + } + return pageData; + } + /** * 合格、个人 * @param coscoSupplierBase @@ -155,6 +174,9 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImplupdate_by, update_time, last_update_time, + dept_id, #{id}, @@ -772,6 +774,7 @@ #{updateBy}, #{updateTime}, #{lastUpdateTime}, + #{deptId},