Merge remote-tracking branch 'origin/master'

This commit is contained in:
2024-10-27 23:49:56 +08:00
8 changed files with 156 additions and 99 deletions

View File

@@ -57,6 +57,11 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/api/wxWorkQrConnect", "/api/wxWorkQrConnect",
"/api/sys/user-plan-log/wx-pay/**", "/api/sys/user-plan-log/wx-pay/**",
"/api/wx-official/**", "/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" "/lvQ4EoivKJ.txt"
) )
.permitAll() .permitAll()

View File

@@ -39,7 +39,6 @@ public class OrganizationController extends BaseController {
return success(organizationService.listRel(param)); return success(organizationService.listRel(param));
} }
@PreAuthorize("hasAuthority('sys:org:list')")
@OperationLog @OperationLog
@ApiOperation("根据id查询组织机构") @ApiOperation("根据id查询组织机构")
@GetMapping("/{id}") @GetMapping("/{id}")

View File

@@ -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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.common.core.annotation.OperationLog; 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.utils.CommonUtil;
import com.gxwebsoft.common.core.web.*; import com.gxwebsoft.common.core.web.*;
import com.gxwebsoft.common.system.entity.*; import com.gxwebsoft.common.system.entity.*;
import com.gxwebsoft.common.system.param.UserImportParam; import com.gxwebsoft.common.system.param.UserImportParam;
import com.gxwebsoft.common.system.param.UserParam; 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.DictionaryDataService;
import com.gxwebsoft.common.system.service.OrganizationService; import com.gxwebsoft.common.system.service.OrganizationService;
import com.gxwebsoft.common.system.service.RoleService; import com.gxwebsoft.common.system.service.RoleService;
@@ -51,8 +55,10 @@ public class UserController extends BaseController {
private OrganizationService organizationService; private OrganizationService organizationService;
@Resource @Resource
private DictionaryDataService dictionaryDataService; private DictionaryDataService dictionaryDataService;
@Resource
private ConfigProperties configProperties;
@PreAuthorize("hasAuthority('sys:auth:user')") @PreAuthorize("hasAuthority('sys:auth:user')")
@ApiOperation("分页查询用户") @ApiOperation("分页查询用户")
@GetMapping("/page") @GetMapping("/page")
public ApiResult<PageResult<User>> page(UserParam param) { public ApiResult<PageResult<User>> page(UserParam param) {
@@ -63,7 +69,7 @@ public class UserController extends BaseController {
@ApiOperation("查询全部用户") @ApiOperation("查询全部用户")
@GetMapping() @GetMapping()
public ApiResult<List<User>> list(UserParam param) { public ApiResult<List<User>> list(UserParam param) {
return success(userService.listRel(param)); return success(userService.listRel(param));
} }
@PreAuthorize("hasAuthority('sys:auth:user')") @PreAuthorize("hasAuthority('sys:auth:user')")
@@ -77,7 +83,17 @@ public class UserController extends BaseController {
@ApiOperation("根据手机号码查询用户") @ApiOperation("根据手机号码查询用户")
@GetMapping("/getByPhone/{phone}") @GetMapping("/getByPhone/{phone}")
public ApiResult<User> getByPhone(@PathVariable("phone") String phone) { public ApiResult<User> 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')") @PreAuthorize("hasAuthority('sys:user:save')")
@@ -88,11 +104,11 @@ public class UserController extends BaseController {
user.setPassword(userService.encodePassword(user.getPassword())); user.setPassword(userService.encodePassword(user.getPassword()));
// 排重 // 排重
final User byPhone = userService.getByPhone(user.getPhone()); final User byPhone = userService.getByPhone(user.getPhone());
if(ObjectUtil.isNotEmpty(byPhone)){ if (ObjectUtil.isNotEmpty(byPhone)) {
return fail("该手机号码已存在"); return fail("该手机号码已存在");
} }
if (userService.saveUser(user)) { if (userService.saveUser(user)) {
return success("添加成功",user.getUserId()); return success("添加成功", user.getUserId());
} }
return fail("添加失败"); return fail("添加失败");
} }
@@ -101,48 +117,48 @@ public class UserController extends BaseController {
@ApiOperation("批量添加用户") @ApiOperation("批量添加用户")
@PostMapping("/batch") @PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<User> userList) { public ApiResult<?> saveBatch(@RequestBody List<User> userList) {
userList.forEach(d -> { userList.forEach(d -> {
d.setStatus(0); d.setStatus(0);
if (d.getPassword() != null) { if (d.getPassword() != null) {
d.setPassword(userService.encodePassword(d.getPassword())); d.setPassword(userService.encodePassword(d.getPassword()));
}
});
final Set<String> collect = userList.stream().map(User::getPhone).collect(Collectors.toSet());
final List<User> list = userService.list(new LambdaQueryWrapper<User>().in(User::getPhone, collect).select(User::getPhone));
System.out.println("list = " + list);
final Map<String, List<User>> 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("添加失败");
final Set<String> collect = userList.stream().map(User::getPhone).collect(Collectors.toSet());
final List<User> list = userService.list(new LambdaQueryWrapper<User>().in(User::getPhone, collect).select(User::getPhone));
System.out.println("list = " + list);
final Map<String, List<User>> 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("添加失败");
} }
@PreAuthorize("hasAuthority('sys:user:save')") @PreAuthorize("hasAuthority('sys:user:save')")
@ApiOperation("批量添加用户并返回userId") @ApiOperation("批量添加用户并返回userId")
@PostMapping("/batchBackUserId") @PostMapping("/batchBackUserId")
public ApiResult<?> saveBatchBackUserId(@RequestBody List<User> userList) { public ApiResult<?> saveBatchBackUserId(@RequestBody List<User> userList) {
userList.forEach(d -> { userList.forEach(d -> {
d.setStatus(0); d.setStatus(0);
d.setPassword(userService.encodePassword(d.getPassword())); d.setPassword(userService.encodePassword(d.getPassword()));
}); });
final Set<String> phones = userList.stream().map(User::getPhone).collect(Collectors.toSet()); final Set<String> phones = userList.stream().map(User::getPhone).collect(Collectors.toSet());
if (userService.saveBatch(userList)) { if (userService.saveBatch(userList)) {
final UserParam userParam = new UserParam(); final UserParam userParam = new UserParam();
userParam.setPhones(phones); userParam.setPhones(phones);
userParam.setLimit(500L); userParam.setLimit(500L);
final PageResult<User> result = userService.pageRel(userParam); final PageResult<User> result = userService.pageRel(userParam);
final Set<Integer> collect = result.getList().stream().map(User::getUserId).collect(Collectors.toSet()); final Set<Integer> collect = result.getList().stream().map(User::getUserId).collect(Collectors.toSet());
return success("添加成功",collect); return success("添加成功", collect);
} }
return fail("添加失败"); return fail("添加失败");
} }
// @PreAuthorize("hasAuthority('sys:user:update')") // @PreAuthorize("hasAuthority('sys:user:update')")
@OperationLog @OperationLog
@ApiOperation("修改用户") @ApiOperation("修改用户")
@PutMapping() @PutMapping()
@@ -188,7 +204,7 @@ public class UserController extends BaseController {
@DeleteMapping("/batch") @DeleteMapping("/batch")
public ApiResult<?> deleteBatch(@RequestBody List<Integer> ids) { public ApiResult<?> deleteBatch(@RequestBody List<Integer> ids) {
if (userService.removeByIds(ids)) { if (userService.removeByIds(ids)) {
return success("删除成功"); return success("删除成功");
} }
return fail("删除失败"); return fail("删除失败");
} }
@@ -215,16 +231,16 @@ public class UserController extends BaseController {
@ApiOperation("修改推荐状态") @ApiOperation("修改推荐状态")
@PutMapping("/recommend") @PutMapping("/recommend")
public ApiResult<?> updateRecommend(@RequestBody User user) { public ApiResult<?> updateRecommend(@RequestBody User user) {
if (user.getUserId() == null || user.getRecommend() == null || !Arrays.asList(0, 1).contains(user.getRecommend())) { if (user.getUserId() == null || user.getRecommend() == null || !Arrays.asList(0, 1).contains(user.getRecommend())) {
return fail("参数不正确"); return fail("参数不正确");
} }
User u = new User(); User u = new User();
u.setUserId(user.getUserId()); u.setUserId(user.getUserId());
u.setRecommend(user.getRecommend()); u.setRecommend(user.getRecommend());
if (userService.updateById(u)) { if (userService.updateById(u)) {
return success("修改成功"); return success("修改成功");
} }
return fail("修改失败"); return fail("修改失败");
} }
@PreAuthorize("hasAuthority('sys:user:update')") @PreAuthorize("hasAuthority('sys:user:update')")
@@ -364,36 +380,55 @@ public class UserController extends BaseController {
@PreAuthorize("hasAuthority('sys:auth:user')") @PreAuthorize("hasAuthority('sys:auth:user')")
@PostMapping("/getAvatarByMpWx") @PostMapping("/getAvatarByMpWx")
@ApiOperation("更新微信头像") @ApiOperation("更新微信头像")
public ApiResult<?> getAvatarByMpWx(@RequestBody User user){ public ApiResult<?> getAvatarByMpWx(@RequestBody User user) {
user.setAvatar("https://oa.gxwebsoft.com/assets/logo.7ccfefb9.svg"); user.setAvatar("https://oa.gxwebsoft.com/assets/logo.7ccfefb9.svg");
if (userService.updateUser(user)) { if (userService.updateUser(user)) {
return success("更新成功"); return success("更新成功");
} }
return fail("更新失败"); return fail("更新失败");
} }
@PostMapping("/updatePointsBySign") @PostMapping("/updatePointsBySign")
@ApiOperation("签到成功累加积分") @ApiOperation("签到成功累加积分")
public ApiResult<?> updatePointsBySign(){ public ApiResult<?> updatePointsBySign() {
final User loginUser = getLoginUser(); final User loginUser = getLoginUser();
loginUser.setPoints(loginUser.getPoints() + 1); loginUser.setPoints(loginUser.getPoints() + 1);
if (userService.updateUser(loginUser)) { if (userService.updateUser(loginUser)) {
return success("签到成功"); return success("签到成功");
} }
return fail("签到失败"); return fail("签到失败");
} }
@PreAuthorize("hasAuthority('sys:auth:user')") @PreAuthorize("hasAuthority('sys:auth:user')")
@PutMapping("/updateUserBalance") @PutMapping("/updateUserBalance")
@ApiOperation("更新用户余额") @ApiOperation("更新用户余额")
public ApiResult<?> updateUserBalance(@RequestBody User user){ public ApiResult<?> updateUserBalance(@RequestBody User user) {
if (getLoginUser() == null) { if (getLoginUser() == null) {
return fail("请先登录"); return fail("请先登录");
} }
if (userService.updateUser(user)) { if (userService.updateUser(user)) {
return success("操作成功"); return success("操作成功");
} }
return fail("操作失败"); 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')") @PreAuthorize("hasAuthority('sys:user:list')")
@@ -401,24 +436,24 @@ public class UserController extends BaseController {
@ApiOperation("统计用户余额") @ApiOperation("统计用户余额")
@GetMapping("/countUserBalance") @GetMapping("/countUserBalance")
public ApiResult<?> countUserBalance(User param) { public ApiResult<?> countUserBalance(User param) {
final LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); final LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.gt(User::getBalance, 0); wrapper.gt(User::getBalance, 0);
if (!param.getOrganizationId().equals(0)) { if (!param.getOrganizationId().equals(0)) {
wrapper.eq(User::getOrganizationId,param.getOrganizationId()); wrapper.eq(User::getOrganizationId, param.getOrganizationId());
} }
final List<User> list = userService.list(wrapper); final List<User> list = userService.list(wrapper);
final BigDecimal totalBalance = list.stream().map(User::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add); final BigDecimal totalBalance = list.stream().map(User::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
// System.out.println("统计用户余额 = " + totalBalance); // System.out.println("统计用户余额 = " + totalBalance);
return success("统计成功",totalBalance); return success("统计成功", totalBalance);
} }
@ApiOperation("更新商户ID") @ApiOperation("更新商户ID")
@PutMapping("/updateUserMerchantId") @PutMapping("/updateUserMerchantId")
public ApiResult<?> updateUserMerchantId(@RequestBody User user){ public ApiResult<?> updateUserMerchantId(@RequestBody User user) {
if (userService.updateUser(user)) { if (userService.updateUser(user)) {
return success("更新成功"); return success("更新成功");
} }
return fail("更新失败"); return fail("更新失败");
} }
} }

View File

@@ -175,8 +175,8 @@ public class WxLoginController extends BaseController {
UserReferee check = userRefereeService.check(addUser.getUserId(), userParam.getRefereeId()); UserReferee check = userRefereeService.check(addUser.getUserId(), userParam.getRefereeId());
if (check == null) { if (check == null) {
UserReferee userReferee = new UserReferee(); UserReferee userReferee = new UserReferee();
userReferee.setDealerId(addUser.getUserId()); userReferee.setDealerId(userParam.getRefereeId());
userReferee.setUserId(userParam.getRefereeId()); userReferee.setUserId(addUser.getUserId());
userRefereeService.save(userReferee); userRefereeService.save(userReferee);
} }
} }

View File

@@ -92,6 +92,9 @@ public class Organization implements Serializable {
@ApiModelProperty(value = "负责人id") @ApiModelProperty(value = "负责人id")
private Integer leaderId; private Integer leaderId;
@ApiModelProperty(value = "是否合作单位")
private Integer isCoop;
@ApiModelProperty(value = "排序号") @ApiModelProperty(value = "排序号")
private Integer sortNumber; private Integer sortNumber;

View File

@@ -305,6 +305,14 @@ public class User implements UserDetails {
@TableField(exist = false) @TableField(exist = false)
private User referee; private User referee;
@ApiModelProperty("手机号登录校验码")
@TableField(exist = false)
private String phoneLoginCode;
@ApiModelProperty("校验码")
@TableField(exist = false)
private String authCode;
// @ApiModelProperty("企业信息") // @ApiModelProperty("企业信息")
// @TableField(exist = false) // @TableField(exist = false)
// private Company companyInfo; // private Company companyInfo;

View File

@@ -45,30 +45,33 @@
AND a.organization_type = #{param.organizationType} AND a.organization_type = #{param.organizationType}
</if> </if>
<if test="param.province != null"> <if test="param.province != null">
AND a.province = #{param.province} AND a.province = #{param.province}
</if> </if>
<if test="param.city != null"> <if test="param.city != null">
AND a.city = #{param.city} AND a.city = #{param.city}
</if> </if>
<if test="param.province != null"> <if test="param.province != null">
AND a.region = #{param.province} AND a.region = #{param.province}
</if> </if>
<if test="param.zipCode != null"> <if test="param.zipCode != null">
AND a.zip_code = #{param.zipCode} AND a.zip_code = #{param.zipCode}
</if> </if>
<if test="param.park != null"> <if test="param.park != null">
AND a.park LIKE CONCAT('%', #{param.park}, '%') AND a.park LIKE CONCAT('%', #{param.park}, '%')
</if> </if>
<if test="param.image != null"> <if test="param.image != null">
AND a.image LIKE CONCAT('%', #{param.image}, '%') AND a.image LIKE CONCAT('%', #{param.image}, '%')
</if> </if>
<if test="param.about != null"> <if test="param.about != null">
AND a.about LIKE CONCAT('%', #{param.about}, '%') AND a.about LIKE CONCAT('%', #{param.about}, '%')
</if> </if>
<if test="param.leaderId != null"> <if test="param.leaderId != null">
AND a.leader_id = #{param.leaderId} AND a.leader_id = #{param.leaderId}
</if> </if>
<if test="param.estateOnly != null"> <if test="param.isCoop != null">
AND a.is_coop = #{param.isCoop}
</if>
<if test="param.estateOnly != null">
AND a.estate IS NOT null AND a.estate IS NOT null
</if> </if>
<if test="param.comments != null"> <if test="param.comments != null">
@@ -90,9 +93,9 @@
AND c.username LIKE CONCAT('%', #{param.leaderUsername}, '%') AND c.username LIKE CONCAT('%', #{param.leaderUsername}, '%')
</if> </if>
<if test="param.keywords != null"> <if test="param.keywords != null">
AND ( AND (
a.organization_name LIKE CONCAT('%', #{param.keywords}, '%') a.organization_name LIKE CONCAT('%', #{param.keywords}, '%')
) )
</if> </if>
</where> </where>
</sql> </sql>

View File

@@ -114,6 +114,10 @@ public class OrganizationParam extends BaseParam {
@QueryField(type = QueryType.EQ) @QueryField(type = QueryType.EQ)
private Integer leaderId; private Integer leaderId;
@ApiModelProperty(value = "是否合作单位")
@QueryField(type = QueryType.EQ)
private Integer isCoop;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String comments; private String comments;