diff --git a/epmet-auth/src/main/java/com/epmet/controller/GovWebController.java b/epmet-auth/src/main/java/com/epmet/controller/GovWebController.java new file mode 100644 index 0000000000..e096c6a65a --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/controller/GovWebController.java @@ -0,0 +1,39 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.GovWebLoginFormDTO; +import com.epmet.dto.result.UserTokenResultDTO; +import com.epmet.service.GovWebService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description PC工作端-登陆服务 + * @author sun + */ +@RestController +@RequestMapping("govweb") +public class GovWebController { + + @Autowired + private GovWebService govWebService; + + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端-工作人员登录 + **/ + @PostMapping("login") + public Result workLogin(@RequestBody GovWebLoginFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(govWebService.login(formDTO)); + } + + +} diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/GovWebLoginFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/GovWebLoginFormDTO.java new file mode 100644 index 0000000000..22c87a0aed --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/dto/form/GovWebLoginFormDTO.java @@ -0,0 +1,46 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description PC工作端 手机号+密码登陆-接口入参 + * @Author sun + */ +@Data +public class GovWebLoginFormDTO extends LoginCommonFormDTO implements Serializable { + private static final long serialVersionUID = 7950477424010655108L; + + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空",groups = {AddUserShowGroup.class}) + private String customerId; + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空",groups = {AddUserShowGroup.class}) + private String phone; + + /** + * 密码 + */ + @NotBlank(message = "密码不能为空",groups = {AddUserShowGroup.class}) + private String password; + + /** + * 验证码 + */ + @NotBlank(message="验证码不能为空",groups = {AddUserShowGroup.class}) + private String captcha; + + /** + * 唯一标识 + */ + @NotBlank(message="唯一标识不能为空",groups = {AddUserInternalGroup.class}) + private String uuid; + +} diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java index 7339592d7a..aae374df94 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/LoginCommonFormDTO.java @@ -19,7 +19,7 @@ public class LoginCommonFormDTO implements Serializable { /** * 政府端:gov、居民端:resi、运营端:oper */ - @NotBlank(message = "app不能为空(政府端:gov、居民端:resi、运营端:oper)",groups ={AddUserInternalGroup.class} ) + @NotBlank(message = "app不能为空(工作端:gov、居民端:resi、运营端:oper)",groups ={AddUserInternalGroup.class} ) private String app; /** diff --git a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java index 37312c17f6..44c7d9d3ab 100644 --- a/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java +++ b/epmet-auth/src/main/java/com/epmet/feign/EpmetUserFeignClient.java @@ -7,6 +7,7 @@ import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.UserDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.*; +import com.epmet.dto.result.GovWebOperLoginResultDTO; import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; import com.epmet.dto.result.StaffLatestAgencyResultDTO; import com.epmet.feign.fallback.EpmetUserFeignClientFallback; @@ -115,4 +116,14 @@ public interface EpmetUserFeignClient { */ @PostMapping("/epmetuser/staffrole/staffroles") Result> getRolesOfStaff(StaffRoleFormDTO staffRoleFormDTO); + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端登陆-根据客户Id和手机号查询登陆用户信息 + **/ + @PostMapping(value = "epmetuser/customerstaff/getstaffidandpwd", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getStaffIdAndPwd(@RequestBody GovWebOperLoginFormDTO formDTO); + } diff --git a/epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java b/epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java index 88ed4e42de..59623a7dc7 100644 --- a/epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java +++ b/epmet-auth/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallback.java @@ -8,6 +8,7 @@ import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.UserDTO; import com.epmet.dto.UserWechatDTO; import com.epmet.dto.form.*; +import com.epmet.dto.result.GovWebOperLoginResultDTO; import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; import com.epmet.dto.result.StaffLatestAgencyResultDTO; import com.epmet.feign.EpmetUserFeignClient; @@ -68,4 +69,9 @@ public class EpmetUserFeignClientFallback implements EpmetUserFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getRolesOfStaff", staffRoleFormDTO); } + @Override + public Result getStaffIdAndPwd(GovWebOperLoginFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffIdAndPwd", formDTO); + } + } diff --git a/epmet-auth/src/main/java/com/epmet/service/GovWebService.java b/epmet-auth/src/main/java/com/epmet/service/GovWebService.java new file mode 100644 index 0000000000..30f8d8ae4c --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/service/GovWebService.java @@ -0,0 +1,19 @@ +package com.epmet.service; + +import com.epmet.dto.form.GovWebLoginFormDTO; +import com.epmet.dto.result.UserTokenResultDTO; + +/** + * @Description 第三方-居民端、政府端登陆服务 + * @author sun + */ +public interface GovWebService { + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端-工作人员登录 + **/ + UserTokenResultDTO login(GovWebLoginFormDTO formDTO); +} diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java new file mode 100644 index 0000000000..12162bfbd3 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovWebServiceImpl.java @@ -0,0 +1,124 @@ +package com.epmet.service.impl; + +import com.epmet.common.token.constant.LoginConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.security.password.PasswordUtils; +import com.epmet.commons.tools.utils.CpUserDetailRedis; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.GovWebLoginFormDTO; +import com.epmet.dto.form.GovWebOperLoginFormDTO; +import com.epmet.dto.form.LoginByPassWordFormDTO; +import com.epmet.dto.form.PasswordLoginUserInfoFormDTO; +import com.epmet.dto.result.GovWebOperLoginResultDTO; +import com.epmet.dto.result.PasswordLoginUserInfoResultDTO; +import com.epmet.dto.result.UserTokenResultDTO; +import com.epmet.feign.EpmetUserFeignClient; +import com.epmet.jwt.JwtTokenProperties; +import com.epmet.jwt.JwtTokenUtils; +import com.epmet.service.CaptchaService; +import com.epmet.service.GovWebService; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author sun + * @Description 第三方-居民端、政府端登陆服务 + */ +@Slf4j +@Service +public class GovWebServiceImpl implements GovWebService { + + private static final Logger logger = LoggerFactory.getLogger(GovWebServiceImpl.class); + @Autowired + private CaptchaService captchaService; + @Autowired + private JwtTokenUtils jwtTokenUtils; + @Autowired + private JwtTokenProperties jwtTokenProperties; + @Autowired + private CpUserDetailRedis cpUserDetailRedis; + @Autowired + private EpmetUserFeignClient epmetUserFeignClient; + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端-工作人员登录 + **/ + @Override + public UserTokenResultDTO login(GovWebLoginFormDTO formDTO) { + //1.参数校验 + if (!(LoginConstant.APP_GOV.equals(formDTO.getApp()) && LoginConstant.CLIENT_WEB.equals(formDTO.getClient()))) { + logger.error("当前接口只适用于PC工作端运营管理后台"); + throw new RenException("当前接口只适用于PC工作端运营管理后台"); + } + //2.验证码校验 + boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha()); + if (!flag) { + logger.error(String.format("用户%s登录,验证码输入错误,暂时放行", formDTO.getPhone())); + //暂时关闭验证码校验 TODO + //throw new RenException(EpmetErrorCode.ERR10019.getCode()); + } + //3.校验登陆账号是否存在 + //根据客户Id和手机号查询登陆用户信息(此处不需要判断登陆人是否是有效客户以及是否是客户的根管理员,前一接口获取登陆手机号对应客户列表已经判断了) + GovWebOperLoginFormDTO form = new GovWebOperLoginFormDTO(); + form.setCustomerId(formDTO.getCustomerId()); + form.setMobile(formDTO.getPhone()); + Result result = epmetUserFeignClient.getStaffIdAndPwd(form); + if (!result.success() || null == result.getData() || null == result.getData().getUserId()) { + logger.error("根据手机号查询PC工作端登陆人员信息失败,返回10003账号不存在"); + throw new RenException(EpmetErrorCode.ERR10003.getCode()); + } + GovWebOperLoginResultDTO resultDTO = result.getData(); + + //4.密码是否正确 + //密码错误 + if (!PasswordUtils.matches(formDTO.getPassword(), resultDTO.getPassWord())) { + logger.error("登陆密码错误"); + throw new RenException(EpmetErrorCode.ERR10004.getCode()); + } + + //5.生成token存到redis并返回 + UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); + userTokenResultDTO.setToken(this.packagingUserToken(formDTO, resultDTO.getUserId())); + return userTokenResultDTO; + + } + + /** + * 生成PC工作端token + * @author sun + */ + private String packagingUserToken(GovWebLoginFormDTO formDTO, String userId) { + // 生成token + Map map = new HashMap<>(); + map.put("app", formDTO.getApp()); + map.put("client", formDTO.getClient()); + map.put("userId", userId); + String token = jwtTokenUtils.createToken(map); + logger.info("app:" + formDTO.getApp() + ";client:" + formDTO.getClient() + ";userId:" + userId + ";生成token[" + token + "]"); + int expire = jwtTokenProperties.getExpire(); + TokenDto tokenDto = new TokenDto(); + tokenDto.setApp(formDTO.getApp()); + tokenDto.setClient(formDTO.getClient()); + tokenDto.setUserId(userId); + tokenDto.setToken(token); + tokenDto.setUpdateTime(System.currentTimeMillis()); + tokenDto.setExpireTime(jwtTokenUtils.getExpiration(token).getTime()); + cpUserDetailRedis.set(tokenDto, expire); + logger.info("截止时间:" + DateUtils.format(jwtTokenUtils.getExpiration(token), "yyyy-MM-dd HH:mm:ss")); + return token; + } + + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/QueryFunctionListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/QueryFunctionListFormDTO.java new file mode 100644 index 0000000000..9e30e726b1 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/QueryFunctionListFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 运营端-查询已上架功能列表-接口入参 + * @author sun + */ +@Data +public class QueryFunctionListFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 功能类型:0.默认功能,1.定制功能 + */ + private String functionGroup; +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionController.java index 1862cb7ceb..6be362acc0 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionController.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.FunctionDTO; +import com.epmet.dto.form.QueryFunctionListFormDTO; import com.epmet.excel.FunctionExcel; import com.epmet.service.FunctionService; import org.springframework.beans.factory.annotation.Autowired; @@ -101,8 +102,8 @@ public class FunctionController { * @Date 2020/3/23 22:11 **/ @GetMapping("queryFunctionList") - public Result> queryFunctionList() { - return functionService.queryFunctionList(); + public Result> queryFunctionList(QueryFunctionListFormDTO formDTO) { + return functionService.queryFunctionList(formDTO); } /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java index 0ad172a342..f39d3bff0c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.FunctionDTO; +import com.epmet.dto.form.QueryFunctionListFormDTO; import com.epmet.entity.FunctionEntity; import org.apache.ibatis.annotations.Mapper; @@ -48,4 +49,12 @@ public interface FunctionDao extends BaseDao { * @Description 查询所有已上架功能列表(默认、定制功能) **/ List selectShopFunctionList(int shoppingStatus); + + /** + * @param + * @return java.util.List + * @Author sun + * @Description 查询已上架的所有功能,供下拉框使用 + **/ + List selectQueryFunctionList(QueryFunctionListFormDTO formDTO); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionService.java index 04da335ca9..6654db247e 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/FunctionService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.FunctionDTO; +import com.epmet.dto.form.QueryFunctionListFormDTO; import com.epmet.entity.FunctionEntity; import java.util.List; @@ -101,7 +102,7 @@ public interface FunctionService extends BaseService { * @description 查询已上架的所有功能,供下拉框使用 * @Date 2020/3/23 22:10 **/ - Result> queryFunctionList(); + Result> queryFunctionList(QueryFunctionListFormDTO formDTO); /** * @param dto diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionServiceImpl.java index 8c65c5e64a..5f8344857a 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionServiceImpl.java @@ -28,6 +28,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dao.FunctionDao; import com.epmet.dto.CustomerDTO; import com.epmet.dto.FunctionDTO; +import com.epmet.dto.form.QueryFunctionListFormDTO; import com.epmet.entity.CustomerFunctionEntity; import com.epmet.entity.FunctionEntity; import com.epmet.feign.OperCrmOpenFeignClient; @@ -125,8 +126,8 @@ public class FunctionServiceImpl extends BaseServiceImpl> queryFunctionList() { - return new Result>().ok(baseDao.selectFunctionList()); + public Result> queryFunctionList(QueryFunctionListFormDTO formDTO) { + return new Result>().ok(baseDao.selectQueryFunctionList(formDTO)); } /** diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml index 0a158f9cb4..363893a660 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionDao.xml @@ -38,4 +38,18 @@ AND shopping_status = #{shoppingStatus} + + diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CustomerListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CustomerListFormDTO.java new file mode 100644 index 0000000000..696e5a890c --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CustomerListFormDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 查询登陆用户客户列表(工作端) + * @CreateTime 2020/8/25 + */ +@Data +public class CustomerListFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + public interface UserIdGroup extends CustomerClientShowGroup{} + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空",groups = UserIdGroup.class) + private String phone; + +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovWebOperLoginFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovWebOperLoginFormDTO.java new file mode 100644 index 0000000000..5acbfd6b05 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GovWebOperLoginFormDTO.java @@ -0,0 +1,21 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description PC工作端登陆获取登陆人信息-接口入参 + * @Author sun + */ +@Data +public class GovWebOperLoginFormDTO implements Serializable { + private static final long serialVersionUID = -6653010297552029277L; + + @NotBlank(message = "客户Id不能为空") + private String customerId; + + @NotBlank(message = "手机号不能为空") + private String mobile; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CustomerListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CustomerListResultDTO.java new file mode 100644 index 0000000000..3c6189e8b2 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/CustomerListResultDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 查询登陆用户客户列表(工作端) + * @CreateTime 2020/8/25 + */ +@Data +public class CustomerListResultDTO implements Serializable { + + /** + * 客户Id + */ + private String customerId; + + /** + * 客户名称 + */ + private String customerName; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovWebOperLoginResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovWebOperLoginResultDTO.java new file mode 100644 index 0000000000..dc08614749 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GovWebOperLoginResultDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description PC工作端登陆获取登陆人信息-接口返参 + * @Author sun + */ +@Data +public class GovWebOperLoginResultDTO implements Serializable { + private static final long serialVersionUID = -5353521601282463394L; + private String userId; + private String passWord; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffBasicInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffBasicInfoResultDTO.java new file mode 100644 index 0000000000..1f3388c4b1 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffBasicInfoResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 获取pc工作端登陆用户信息 + * @CreateTime 2020/8/25 + */ +@Data +public class StaffBasicInfoResultDTO implements Serializable { + + /** + * 客户Id + */ + private String customerId; + + /** + * 用户Id + */ + private String userId; + + /** + * 真实姓名 + */ + private String realName; + + /** + * 性别0.未知,1男,2.女 + */ + private String gender; + + /** + * 邮箱 + */ + private String email; + + /** + * 手机号 + */ + private String mobile; + + /** + * 地址 + */ + private String address; +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java index 08ed13c97a..0075470f27 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -359,4 +361,44 @@ public class CustomerStaffController { customerStaffService.updateRootManage(formDTO); return new Result(); } + + /** + * 查询登陆用户客户列表(工作端) + * 根据手机号查询customer_staff表数据,在根据查询到的数据的userId判断是不是根管理员,最后将同一手机号对应的客户列表且该手机都是根管理员的客户列表返给前端 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author zhangyong + * @Date 10:03 2020-08-25 + **/ + @PostMapping(value = "customerlist") + public Result> customerList(@RequestBody CustomerListFormDTO formDTO){ + return customerStaffService.selectCustomerList(formDTO); + } + + /** + * 获取pc工作端登陆用户信息 + * 根据token中userId,去查询登陆用户基本信息 + * @param tokenDTO + * @return com.epmet.commons.tools.utils.Result + * @Author zhangyong + * @Date 11:09 2020-08-25 + **/ + @PostMapping(value = "staffbasicinfo") + public Result staffBasicInfo(@LoginUser TokenDto tokenDTO){ + return customerStaffService.selectStaffBasicInfo(tokenDTO.getUserId()); + } + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端登陆-根据客户Id和手机号查询登陆用户信息 + **/ + @PostMapping("getstaffidandpwd") + public Result getStaffIdAndPwd(@RequestBody GovWebOperLoginFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + return new Result().ok(customerStaffService.getStaffIdAndPwd(formDTO)); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java index 41c7a550e6..1b7753ed18 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java @@ -172,4 +172,12 @@ public interface CustomerStaffDao extends BaseDao { * @return com.epmet.dto.CustomerStaffDTO */ CustomerStaffDTO selectRootManage(@Param("orgId") String orgId, @Param("roleKey") String roleKey); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 根据客户Id和手机号查询工作人员信息 + **/ + GovWebOperLoginResultDTO selectByCustomerIdAndPhone(GovWebOperLoginFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java index 6de16bc4f8..02e7e6abd5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java @@ -17,17 +17,18 @@ package com.epmet.dao; -import com.epmet.commons.mybatis.annotation.DataFilter; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.entity.DataScope; import com.epmet.dto.StaffRoleDTO; import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.CustomerStaffRoleListFormDTO; -import com.epmet.dto.result.*; +import com.epmet.dto.result.CustomerStaffRoleListResultDTO; +import com.epmet.dto.result.CustomerStaffRoleResultDTO; +import com.epmet.dto.result.GovStaffRoleResultDTO; +import com.epmet.dto.result.StaffRolesResultDTO; import com.epmet.entity.StaffRoleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.springframework.context.annotation.Scope; import java.util.List; @@ -100,4 +101,15 @@ public interface StaffRoleDao extends BaseDao { List selectStaffRoles(@Param("staffId") String staffId); List listStaffRoleEntytiesByStaffIdAndOrgId(@Param("agencyId") String agencyId, @Param("staffId") String staffId); -} \ No newline at end of file + + /** + * 根据用户id、角色id,查询 工作人员-角色关系表 + * + * @param staffId + * @param roleId + * @return com.epmet.dto.StaffRoleDTO + * @Author zhangyong + * @Date 10:45 2020-08-25 + **/ + StaffRoleDTO selectStaffRoleByStaffIdAndRoleId(@Param("staffId") String staffId, @Param("roleId") String roleId); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java index 3a49fc6f2d..996848c4ea 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java @@ -284,4 +284,35 @@ public interface CustomerStaffService extends BaseService { * @return com.epmet.dto.CustomerStaffDTO */ void updateRootManage(UpdateRootManageFormDTO formDTO); -} \ No newline at end of file + + /** + * 查询登陆用户客户列表(工作端) + * 根据手机号查询customer_staff表数据,在根据查询到的数据的userId判断是不是根管理员,最后将同一手机号对应的客户列表且该手机都是根管理员的客户列表返给前端 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + * @Author zhangyong + * @Date 10:03 2020-08-25 + **/ + Result> selectCustomerList(CustomerListFormDTO formDTO); + + /** + * 获取pc工作端登陆用户信息 + * 根据token中userId,去查询登陆用户基本信息 + * + * @param userId + * @return com.epmet.commons.tools.utils.Result + * @Author zhangyong + * @Date 11:10 2020-08-25 + **/ + Result selectStaffBasicInfo(String userId); + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端登陆-根据客户Id和手机号查询登陆用户信息 + **/ + GovWebOperLoginResultDTO getStaffIdAndPwd(GovWebOperLoginFormDTO formDTO); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 030a917e71..2b401b76cd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -17,12 +17,14 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.entity.DataScope; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; @@ -47,6 +49,7 @@ import com.epmet.entity.StaffRoleEntity; import com.epmet.entity.UserEntity; import com.epmet.feign.AuthFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.redis.CustomerStaffRedis; import com.epmet.service.CustomerStaffService; import com.epmet.service.GovStaffRoleService; @@ -99,6 +102,8 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) { @@ -611,4 +616,55 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl> selectCustomerList(CustomerListFormDTO formDTO) { + List listResultDTO = new ArrayList<>(); + CustomerListResultDTO resultDTO = new CustomerListResultDTO(); + CustomerDTO customerDTO = new CustomerDTO(); + // 1.根据手机号,去 customer_staff表,进行查询; 查询结果 多条:字段 customer_id,user_id + List customerStaffList = baseDao.selectListCustomerStaffDTO(formDTO.getPhone()); + + for (CustomerStaffDTO staffDTO : customerStaffList){ + // 2.根据 customer_id 去 gov_staff_role表,查询 customer_id + role_key = root_manager ,确定 根管理员的id,即roleId + GovStaffRoleDTO roleKey = govStaffRoleDao.getRoleByCustomerIdAndRoleKey(staffDTO.getCustomerId(), RoleKeyConstants.ROLE_KEY_ROOT_MANAGER); + // 3.根据roleId + staff_id(即 userId) 查 staff_role表的主键id, 如果查到了,那这个userId就是 根管理员 + StaffRoleDTO staffRoleDTO = staffRoleDao.selectStaffRoleByStaffIdAndRoleId(staffDTO.getUserId(), roleKey.getId()); + if (null != staffRoleDTO){ + // 4.如果userID是根管理员的话,则根据customerId 去 customer表 查询 id、customer_name + customerDTO.setId(staffDTO.getCustomerId()); + Result customerInfo = operCrmOpenFeignClient.getCustomerInfo(customerDTO); + if (!customerInfo.success()) { + logger.error(String.format("获取根管理员信息失败,调用%s服务查询客户名称失败,入参%s", ServiceConstant.OPER_CRM_SERVER, JSON.toJSONString(staffDTO.getCustomerId()))); + } else { + if (null != customerInfo.getData()){ + resultDTO.setCustomerId(customerInfo.getData().getId()); + resultDTO.setCustomerName(customerInfo.getData().getCustomerName()); + listResultDTO.add(resultDTO); + } + } + } + } + return new Result>().ok(listResultDTO); + } + + @Override + public Result selectStaffBasicInfo(String userId) { + CustomerStaffEntity staffEntity = baseDao.selectByUserId(userId); + StaffBasicInfoResultDTO resultDTO = ConvertUtils.sourceToTarget(staffEntity, StaffBasicInfoResultDTO.class); + resultDTO.setGender(String.valueOf(staffEntity.getGender())); + return new Result().ok(resultDTO); + } + + /** + * @param formDTO + * @return + * @Author sun + * @Description PC工作端登陆-根据客户Id和手机号查询登陆用户信息 + **/ + @Override + public GovWebOperLoginResultDTO getStaffIdAndPwd(GovWebOperLoginFormDTO formDTO) { + //1.根据客户Id和手机号查询用户信息 + return baseDao.selectByCustomerIdAndPhone(formDTO); + } + +} diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml index 81c83553fd..703bab3351 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/CustomerStaffDao.xml @@ -295,4 +295,18 @@ AND r.DEL_FLAG = '0' AND S.DEL_FLAG = '0' + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml index b02425c697..5f4bba0d72 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml @@ -164,4 +164,16 @@ and sr.ORG_ID = #{agencyId} and sr.DEL_FLAG='0' - \ No newline at end of file + + +