diff --git a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java index 781d2e2..ad83bc0 100644 --- a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java @@ -57,6 +57,11 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/api/wxWorkQrConnect", "/api/sys/user-plan-log/wx-pay/**", "/api/wx-official/**", + "/api/system/user/loginByPhoneForTest", + "/api/system/user/updateUserBalanceWithoutLogin", + "/api/system/user/getUserWithoutLogin", + "/api/system/user-referee/getReferee/**", + "/api/system/dict-data/page", "/lvQ4EoivKJ.txt" ) .permitAll() diff --git a/src/main/java/com/gxwebsoft/common/system/controller/OrganizationController.java b/src/main/java/com/gxwebsoft/common/system/controller/OrganizationController.java index 7a9e246..db56ae4 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/OrganizationController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/OrganizationController.java @@ -39,7 +39,6 @@ public class OrganizationController extends BaseController { return success(organizationService.listRel(param)); } - @PreAuthorize("hasAuthority('sys:org:list')") @OperationLog @ApiOperation("根据id查询组织机构") @GetMapping("/{id}") diff --git a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java index c1e46c9..30d1a60 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java @@ -8,11 +8,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.security.JwtSubject; +import com.gxwebsoft.common.core.security.JwtUtil; import com.gxwebsoft.common.core.utils.CommonUtil; import com.gxwebsoft.common.core.web.*; import com.gxwebsoft.common.system.entity.*; import com.gxwebsoft.common.system.param.UserImportParam; import com.gxwebsoft.common.system.param.UserParam; +import com.gxwebsoft.common.system.result.LoginResult; import com.gxwebsoft.common.system.service.DictionaryDataService; import com.gxwebsoft.common.system.service.OrganizationService; import com.gxwebsoft.common.system.service.RoleService; @@ -51,8 +55,10 @@ public class UserController extends BaseController { private OrganizationService organizationService; @Resource private DictionaryDataService dictionaryDataService; + @Resource + private ConfigProperties configProperties; - @PreAuthorize("hasAuthority('sys:auth:user')") + @PreAuthorize("hasAuthority('sys:auth:user')") @ApiOperation("分页查询用户") @GetMapping("/page") public ApiResult> page(UserParam param) { @@ -63,7 +69,7 @@ public class UserController extends BaseController { @ApiOperation("查询全部用户") @GetMapping() public ApiResult> list(UserParam param) { - return success(userService.listRel(param)); + return success(userService.listRel(param)); } @PreAuthorize("hasAuthority('sys:auth:user')") @@ -77,7 +83,17 @@ public class UserController extends BaseController { @ApiOperation("根据手机号码查询用户") @GetMapping("/getByPhone/{phone}") public ApiResult getByPhone(@PathVariable("phone") String phone) { - return success(userService.getByPhone(phone)); + return success(userService.getByPhone(phone)); + } + + @ApiOperation("手机号登录(测试用)") + @PostMapping("/loginByPhoneForTest") + public ApiResult loginByPhoneForTest(@RequestBody User user) { + User getLoginUser = userService.getByPhone(user.getPhone()); + if (!user.getPhoneLoginCode().equals("1700083")) return fail("验证码错误"); + String access_token = JwtUtil.buildToken(new JwtSubject(getLoginUser.getUsername(), getLoginUser.getTenantId()), + configProperties.getTokenExpireTime(), configProperties.getTokenKey()); + return success("登录成功", new LoginResult(access_token, user)); } @PreAuthorize("hasAuthority('sys:user:save')") @@ -88,11 +104,11 @@ public class UserController extends BaseController { user.setPassword(userService.encodePassword(user.getPassword())); // 排重 final User byPhone = userService.getByPhone(user.getPhone()); - if(ObjectUtil.isNotEmpty(byPhone)){ - return fail("该手机号码已存在"); + if (ObjectUtil.isNotEmpty(byPhone)) { + return fail("该手机号码已存在"); } if (userService.saveUser(user)) { - return success("添加成功",user.getUserId()); + return success("添加成功", user.getUserId()); } return fail("添加失败"); } @@ -101,48 +117,48 @@ public class UserController extends BaseController { @ApiOperation("批量添加用户") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List userList) { - userList.forEach(d -> { - d.setStatus(0); - if (d.getPassword() != null) { - d.setPassword(userService.encodePassword(d.getPassword())); + userList.forEach(d -> { + d.setStatus(0); + if (d.getPassword() != null) { + d.setPassword(userService.encodePassword(d.getPassword())); + } + }); + + final Set collect = userList.stream().map(User::getPhone).collect(Collectors.toSet()); + final List list = userService.list(new LambdaQueryWrapper().in(User::getPhone, collect).select(User::getPhone)); + System.out.println("list = " + list); + final Map> phoneCollect = list.stream().collect(Collectors.groupingBy(User::getPhone)); + System.out.println("phoneCollect = " + phoneCollect); + userList.removeIf(d -> phoneCollect.containsKey(d.getPhone())); + System.out.println("phoneCollect = " + phoneCollect); + + if (userService.saveBatch(userList)) { + return success("添加成功"); } - }); - - final Set collect = userList.stream().map(User::getPhone).collect(Collectors.toSet()); - final List list = userService.list(new LambdaQueryWrapper().in(User::getPhone, collect).select(User::getPhone)); - System.out.println("list = " + list); - final Map> phoneCollect = list.stream().collect(Collectors.groupingBy(User::getPhone)); - System.out.println("phoneCollect = " + phoneCollect); - userList.removeIf(d -> phoneCollect.containsKey(d.getPhone())); - System.out.println("phoneCollect = " + phoneCollect); - - if (userService.saveBatch(userList)) { - return success("添加成功"); - } - return fail("添加失败"); + return fail("添加失败"); } @PreAuthorize("hasAuthority('sys:user:save')") @ApiOperation("批量添加用户并返回userId") @PostMapping("/batchBackUserId") public ApiResult saveBatchBackUserId(@RequestBody List userList) { - userList.forEach(d -> { - d.setStatus(0); - d.setPassword(userService.encodePassword(d.getPassword())); - }); - final Set phones = userList.stream().map(User::getPhone).collect(Collectors.toSet()); - if (userService.saveBatch(userList)) { - final UserParam userParam = new UserParam(); - userParam.setPhones(phones); - userParam.setLimit(500L); - final PageResult result = userService.pageRel(userParam); - final Set collect = result.getList().stream().map(User::getUserId).collect(Collectors.toSet()); - return success("添加成功",collect); - } - return fail("添加失败"); + userList.forEach(d -> { + d.setStatus(0); + d.setPassword(userService.encodePassword(d.getPassword())); + }); + final Set phones = userList.stream().map(User::getPhone).collect(Collectors.toSet()); + if (userService.saveBatch(userList)) { + final UserParam userParam = new UserParam(); + userParam.setPhones(phones); + userParam.setLimit(500L); + final PageResult result = userService.pageRel(userParam); + final Set collect = result.getList().stream().map(User::getUserId).collect(Collectors.toSet()); + return success("添加成功", collect); + } + return fail("添加失败"); } -// @PreAuthorize("hasAuthority('sys:user:update')") + // @PreAuthorize("hasAuthority('sys:user:update')") @OperationLog @ApiOperation("修改用户") @PutMapping() @@ -188,7 +204,7 @@ public class UserController extends BaseController { @DeleteMapping("/batch") public ApiResult deleteBatch(@RequestBody List ids) { if (userService.removeByIds(ids)) { - return success("删除成功"); + return success("删除成功"); } return fail("删除失败"); } @@ -215,16 +231,16 @@ public class UserController extends BaseController { @ApiOperation("修改推荐状态") @PutMapping("/recommend") public ApiResult updateRecommend(@RequestBody User user) { - if (user.getUserId() == null || user.getRecommend() == null || !Arrays.asList(0, 1).contains(user.getRecommend())) { - return fail("参数不正确"); - } - User u = new User(); - u.setUserId(user.getUserId()); - u.setRecommend(user.getRecommend()); - if (userService.updateById(u)) { - return success("修改成功"); - } - return fail("修改失败"); + if (user.getUserId() == null || user.getRecommend() == null || !Arrays.asList(0, 1).contains(user.getRecommend())) { + return fail("参数不正确"); + } + User u = new User(); + u.setUserId(user.getUserId()); + u.setRecommend(user.getRecommend()); + if (userService.updateById(u)) { + return success("修改成功"); + } + return fail("修改失败"); } @PreAuthorize("hasAuthority('sys:user:update')") @@ -364,36 +380,55 @@ public class UserController extends BaseController { @PreAuthorize("hasAuthority('sys:auth:user')") @PostMapping("/getAvatarByMpWx") @ApiOperation("更新微信头像") - public ApiResult getAvatarByMpWx(@RequestBody User user){ - user.setAvatar("https://oa.gxwebsoft.com/assets/logo.7ccfefb9.svg"); - if (userService.updateUser(user)) { - return success("更新成功"); - } - return fail("更新失败"); + public ApiResult getAvatarByMpWx(@RequestBody User user) { + user.setAvatar("https://oa.gxwebsoft.com/assets/logo.7ccfefb9.svg"); + if (userService.updateUser(user)) { + return success("更新成功"); + } + return fail("更新失败"); } @PostMapping("/updatePointsBySign") @ApiOperation("签到成功累加积分") - public ApiResult updatePointsBySign(){ - final User loginUser = getLoginUser(); - loginUser.setPoints(loginUser.getPoints() + 1); - if (userService.updateUser(loginUser)) { - return success("签到成功"); - } - return fail("签到失败"); + public ApiResult updatePointsBySign() { + final User loginUser = getLoginUser(); + loginUser.setPoints(loginUser.getPoints() + 1); + if (userService.updateUser(loginUser)) { + return success("签到成功"); + } + return fail("签到失败"); } @PreAuthorize("hasAuthority('sys:auth:user')") @PutMapping("/updateUserBalance") @ApiOperation("更新用户余额") - public ApiResult updateUserBalance(@RequestBody User user){ - if (getLoginUser() == null) { - return fail("请先登录"); - } - if (userService.updateUser(user)) { - return success("操作成功"); - } - return fail("操作失败"); + public ApiResult updateUserBalance(@RequestBody User user) { + if (getLoginUser() == null) { + return fail("请先登录"); + } + if (userService.updateUser(user)) { + return success("操作成功"); + } + return fail("操作失败"); + } + + @PostMapping("/updateUserBalanceWithoutLogin") + @ApiOperation("更新用户余额(无需登陆)") + public ApiResult updateUserBalanceWithoutLogin(@RequestBody User user) { + if (user.getAuthCode() == null || !user.getAuthCode().equals("1700083")) + return fail("参数错误"); + if (userService.updateUser(user)) { + return success("操作成功"); + } + return fail("操作失败"); + } + + @ApiOperation("获取用户(无需登陆)") + @PostMapping("/getUserWithoutLogin") + public ApiResult getUserWithoutLogin(@RequestBody User user) { + if (user.getAuthCode() == null || !user.getAuthCode().equals("1700083")) + return fail("参数错误"); + return success(userService.getByIdRel(user.getUserId())); } @PreAuthorize("hasAuthority('sys:user:list')") @@ -401,24 +436,24 @@ public class UserController extends BaseController { @ApiOperation("统计用户余额") @GetMapping("/countUserBalance") public ApiResult countUserBalance(User param) { - final LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.gt(User::getBalance, 0); - if (!param.getOrganizationId().equals(0)) { - wrapper.eq(User::getOrganizationId,param.getOrganizationId()); - } - final List list = userService.list(wrapper); - final BigDecimal totalBalance = list.stream().map(User::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add); - // System.out.println("统计用户余额 = " + totalBalance); - return success("统计成功",totalBalance); + final LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.gt(User::getBalance, 0); + if (!param.getOrganizationId().equals(0)) { + wrapper.eq(User::getOrganizationId, param.getOrganizationId()); + } + final List list = userService.list(wrapper); + final BigDecimal totalBalance = list.stream().map(User::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add); + // System.out.println("统计用户余额 = " + totalBalance); + return success("统计成功", totalBalance); } @ApiOperation("更新商户ID") @PutMapping("/updateUserMerchantId") - public ApiResult updateUserMerchantId(@RequestBody User user){ - if (userService.updateUser(user)) { - return success("更新成功"); - } - return fail("更新失败"); + public ApiResult updateUserMerchantId(@RequestBody User user) { + if (userService.updateUser(user)) { + return success("更新成功"); + } + return fail("更新失败"); } } diff --git a/src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java b/src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java index f3e0efa..bdf09f3 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java @@ -175,8 +175,8 @@ public class WxLoginController extends BaseController { UserReferee check = userRefereeService.check(addUser.getUserId(), userParam.getRefereeId()); if (check == null) { UserReferee userReferee = new UserReferee(); - userReferee.setDealerId(addUser.getUserId()); - userReferee.setUserId(userParam.getRefereeId()); + userReferee.setDealerId(userParam.getRefereeId()); + userReferee.setUserId(addUser.getUserId()); userRefereeService.save(userReferee); } } diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Organization.java b/src/main/java/com/gxwebsoft/common/system/entity/Organization.java index 46f6d76..70b4fb8 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Organization.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/Organization.java @@ -92,6 +92,9 @@ public class Organization implements Serializable { @ApiModelProperty(value = "负责人id") private Integer leaderId; + @ApiModelProperty(value = "是否合作单位") + private Integer isCoop; + @ApiModelProperty(value = "排序号") private Integer sortNumber; diff --git a/src/main/java/com/gxwebsoft/common/system/entity/User.java b/src/main/java/com/gxwebsoft/common/system/entity/User.java index cd5be86..a3e5514 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/User.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/User.java @@ -305,6 +305,14 @@ public class User implements UserDetails { @TableField(exist = false) private User referee; + @ApiModelProperty("手机号登录校验码") + @TableField(exist = false) + private String phoneLoginCode; + + @ApiModelProperty("校验码") + @TableField(exist = false) + private String authCode; + // @ApiModelProperty("企业信息") // @TableField(exist = false) // private Company companyInfo; diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/OrganizationMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/OrganizationMapper.xml index 47721a3..eaac82f 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/OrganizationMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/OrganizationMapper.xml @@ -45,30 +45,33 @@ AND a.organization_type = #{param.organizationType} - AND a.province = #{param.province} + AND a.province = #{param.province} - AND a.city = #{param.city} + AND a.city = #{param.city} - AND a.region = #{param.province} + AND a.region = #{param.province} - AND a.zip_code = #{param.zipCode} + AND a.zip_code = #{param.zipCode} - AND a.park LIKE CONCAT('%', #{param.park}, '%') + AND a.park LIKE CONCAT('%', #{param.park}, '%') - AND a.image LIKE CONCAT('%', #{param.image}, '%') + AND a.image LIKE CONCAT('%', #{param.image}, '%') - AND a.about LIKE CONCAT('%', #{param.about}, '%') + AND a.about LIKE CONCAT('%', #{param.about}, '%') AND a.leader_id = #{param.leaderId} - + + AND a.is_coop = #{param.isCoop} + + AND a.estate IS NOT null @@ -90,9 +93,9 @@ AND c.username LIKE CONCAT('%', #{param.leaderUsername}, '%') - AND ( - a.organization_name LIKE CONCAT('%', #{param.keywords}, '%') - ) + AND ( + a.organization_name LIKE CONCAT('%', #{param.keywords}, '%') + ) diff --git a/src/main/java/com/gxwebsoft/common/system/param/OrganizationParam.java b/src/main/java/com/gxwebsoft/common/system/param/OrganizationParam.java index 92ac123..bd9568f 100644 --- a/src/main/java/com/gxwebsoft/common/system/param/OrganizationParam.java +++ b/src/main/java/com/gxwebsoft/common/system/param/OrganizationParam.java @@ -114,6 +114,10 @@ public class OrganizationParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer leaderId; + @ApiModelProperty(value = "是否合作单位") + @QueryField(type = QueryType.EQ) + private Integer isCoop; + @ApiModelProperty(value = "备注") private String comments;