This commit is contained in:
dute7liang
2024-01-02 23:32:11 +08:00
parent 2f918497c3
commit 322bd479e2
15 changed files with 177 additions and 41 deletions

View File

@@ -145,17 +145,17 @@ public class CaiLoginManager {
try {
UserInvite check = userInviteService.getByUserId(user.getId());
if(check == null){
UserInfo userInfo = userInfoService.getByUserId(user.getId());
UserInfo inviteUserInfo = userInfoService.getByUserId(inviteUser.getId());
UserInvite userInvite = new UserInvite();
userInvite.setUserId(user.getId());
userInvite.setInviteId(user.getInviteId());
userInvite.setVideoIncomeRate(userInfo.getVideoIncomeRate());
userInvite.setGuardIncomeRate(userInfo.getGuardIncomeRate());
userInvite.setGiftIncomeRate(userInfo.getGiftIncomeRate());
userInvite.setPayIncomeRate(userInfo.getPayIncomeRate());
userInvite.setVideoIncomeRate(inviteUserInfo.getVideoIncomeRate());
userInvite.setGuardIncomeRate(inviteUserInfo.getGuardIncomeRate());
userInvite.setGiftIncomeRate(inviteUserInfo.getGiftIncomeRate());
userInvite.setPayIncomeRate(inviteUserInfo.getPayIncomeRate());
if(inviteUser.getIsUnion() == 1){
BigDecimal unionOneRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_UNION_ONE_INCOME_RATE);
BigDecimal videoIncome = NumberUtil.add(userInfo.getVideoIncomeRate(), unionOneRate);
BigDecimal videoIncome = NumberUtil.add(inviteUserInfo.getVideoIncomeRate(), unionOneRate);
userInvite.setVideoIncomeRate(videoIncome);
}
userInviteService.save(userInvite);
@@ -178,6 +178,7 @@ public class CaiLoginManager {
if(checkUnionUser != null){
UnionUser unionUser = new UnionUser();
unionUser.setUnionId(union.getId());
unionUser.setUnionUserId(union.getUserId());
unionUser.setUserId(user.getId());
unionUser.setVideoDivide(systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_UNION_VIDEO_INCOME_RATE));
unionUser.setGiftDivide(systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_UNION_VIDEO_INCOME_RATE));

View File

@@ -3,6 +3,7 @@ package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Union;
import com.ruoyi.cai.dto.admin.query.UsercodeReq;
import com.ruoyi.cai.dto.admin.vo.UnionAdminVo;
import com.ruoyi.cai.service.UnionService;
import com.ruoyi.common.annotation.Log;
@@ -66,13 +67,10 @@ public class UnionController extends BaseController {
@Log(title = "工会列表", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody Union bo) {
return toAjax(unionService.save(bo));
public R<Void> add(@Validated(AddGroup.class) @RequestBody UsercodeReq bo) {
return toAjax(unionService.saveUnion(bo.getUsercode()));
}
/**
* 修改工会列表
*/
@SaCheckPermission("cai:userUnion:edit")
@Log(title = "工会列表", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@@ -82,15 +80,12 @@ public class UnionController extends BaseController {
}
/**
* 删除工会列表
*
* @param ids 主键串
* 解散工会
*/
@SaCheckPermission("cai:userUnion:remove")
@Log(title = "工会列表", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(unionService.removeBatchByIds(Arrays.asList(ids)));
@DeleteMapping("/{id}")
public R<Void> dissolve(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(unionService.dissolve(id));
}
}

View File

@@ -1,8 +1,10 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCodeGen;
import com.ruoyi.cai.dto.admin.query.ResetPasswordReq;
import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
@@ -19,12 +21,15 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户
@@ -51,6 +56,24 @@ public class UserController extends BaseController {
return TableDataInfo.build(result);
}
@GetMapping("/getByUsercode")
public R<User> getByUsercode(String usercode){
return R.ok(userService.getByUserCode(usercode));
}
@GetMapping("/listByUserCode")
public R<List<String>> listByUserCode(String usercode,int limit){
if(limit == 0){
limit = 40;
}
List<User> users = userService.list(Wrappers.lambdaQuery(User.class)
.select(User::getUsercode)
.like(StringUtils.isNotEmpty(usercode), User::getUsercode, usercode)
.last("limit " + limit));
return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList()));
}
/**
* 获取用户详细信息
*
@@ -97,16 +120,10 @@ public class UserController extends BaseController {
return R.ok();
}
/**
* 删除用户
*
* @param ids 主键串
*/
@SaCheckPermission("cai:user:remove")
@Log(title = "用户", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(userService.removeBatchByIds(Arrays.asList(ids)));
@DeleteMapping("/{id}")
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(userService.removeUser(id));
}
}

View File

@@ -29,6 +29,7 @@ public class UnionUser implements Serializable {
* 工会id
*/
private Long unionId;
private Long unionUserId;
/**
* 用户id
*/

View File

@@ -1,5 +1,6 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -22,7 +23,7 @@ public class UserForbid implements Serializable {
/**
*
*/
@TableId(value = "id")
@TableId(value = "id",type = IdType.INPUT)
private Long id;
/**
* 类型 1 封用户uid 2.封设备uuid 3.imei 4.mac

View File

@@ -0,0 +1,8 @@
package com.ruoyi.cai.dto.admin.query;
import lombok.Data;
@Data
public class UsercodeReq {
private String usercode;
}

View File

@@ -27,5 +27,6 @@ public class AnchorAdminVo extends Anchor {
private Integer gender;
private Integer age;
private Long city;
private Long cityId;
private String city;
}

View File

@@ -17,4 +17,8 @@ public interface UnionService extends IService<Union> {
Page<UnionAdminVo> pageAdmin(PageQuery pageQuery, UnionAdminVo bo);
Union getByUserId(Long userId);
boolean dissolve(Long id);
boolean saveUnion(String usercode);
}

View File

@@ -39,4 +39,5 @@ public interface UserService extends IService<User> {
void resetPassword(String mobile, String password);
boolean removeUser(Long id);
}

View File

@@ -3,12 +3,15 @@ package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.Union;
import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.admin.vo.UnionAdminVo;
import com.ruoyi.cai.mapper.UnionMapper;
import com.ruoyi.cai.service.UnionService;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 工会列表Service业务层处理
@@ -19,6 +22,15 @@ import org.springframework.stereotype.Service;
@Service
public class UnionServiceImpl extends ServiceImpl<UnionMapper, Union> implements UnionService {
@Autowired
private UnionUserService unionUserService;
@Autowired
private UserInviteService inviteService;
@Autowired
private UserInfoService userInfoService;
@Autowired
private UserService userService;
@Override
public Page<UnionAdminVo> pageAdmin(PageQuery pageQuery, UnionAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
@@ -28,4 +40,47 @@ public class UnionServiceImpl extends ServiceImpl<UnionMapper, Union> implements
public Union getByUserId(Long userId) {
return this.getOne(Wrappers.lambdaQuery(Union.class).eq(Union::getUserId,userId).last("limit 1"));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean dissolve(Long id) {
Union union = this.getById(id);
if(union == null){
throw new ServiceException("工会不存在");
}
boolean b = this.removeById(id);
if(!b){
throw new ServiceException("工会不存在");
}
unionUserService.remove(Wrappers.lambdaQuery(UnionUser.class).eq(UnionUser::getUnionId,id));
UserInfo userInfo = userInfoService.getByUserId(union.getUserId());
inviteService.update(Wrappers.lambdaUpdate(UserInvite.class)
.eq(UserInvite::getInviteId,union.getUserId())
.set(UserInvite::getVideoIncomeRate,userInfo.getVideoIncomeRate())
.set(UserInvite::getGiftIncomeRate,userInfo.getGuardIncomeRate())
.set(UserInvite::getGuardIncomeRate,userInfo.getGuardIncomeRate())
.set(UserInvite::getPayIncomeRate,userInfo.getPayIncomeRate()));
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveUnion(String usercode) {
User user = userService.getByUserCode(usercode);
if(user == null){
throw new ServiceException("用户不存在");
}
boolean update = userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId, user.getId())
.eq(User::getIsUnion, 0)
.set(User::getIsUnion, 1));
if(!update){
throw new ServiceException("新建工会失败,工会已存在");
}
Union union = new Union();
union.setUserId(user.getId());
union.setName("工会"+user.getUsercode());
union.setEnableRate(true);
this.save(union);
return true;
}
}

View File

@@ -4,8 +4,7 @@ import cn.dev33.satoken.secure.BCrypt;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.dto.app.query.index.GreetQuery;
import com.ruoyi.cai.dto.app.query.index.UserQuery;
@@ -20,6 +19,7 @@ import com.ruoyi.common.helper.LoginHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 用户Service业务层处理
@@ -43,6 +43,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
private UserGiftService userGiftService;
@Autowired
private UserOnlineService userOnlineService;
@Autowired
private UserInfoService userInfoService;
@Autowired
private UserInviteService userInviteService;
@Autowired
private AccountService accountService;
@Autowired
private UserCountService userCountService;
@Autowired
private DynamicImagesService dynamicImagesService;
@Override
public User getByUsername(String username) {
@@ -152,4 +162,50 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
.eq(User::getMobile,mobile)
.set(User::getPassword,BCrypt.hashpw(password)));
}
@Autowired
private UserGreetService userGreetService;
@Autowired
private UserMemberService userMemberService;
@Autowired
private UserForbidService userForbidService;
@Autowired
private AnchorApplyService anchorApplyService;
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removeUser(Long id) {
User user = this.getById(id);
if(user == null){
throw new ServiceException("用户不存在");
}
if(user.getIsUnion() == 1){
throw new ServiceException("该用户为会长,无法删除,请先前往工会列表解散工会");
}
if(user.getType() == 1){
throw new ServiceException("该员工为内部员工,禁止删除");
}
boolean b = this.removeById(id);
if(!b){
throw new ServiceException("用户不存在");
}
userOnlineService.remove(Wrappers.lambdaQuery(UserOnline.class).eq(UserOnline::getUserId, id));
userInfoService.remove(Wrappers.lambdaQuery(UserInfo.class).eq(UserInfo::getUserId, id));
userInviteService.remove(Wrappers.lambdaQuery(UserInvite.class).eq(UserInvite::getUserId, id));
userInviteService.remove(Wrappers.lambdaQuery(UserInvite.class).eq(UserInvite::getInviteId, id));
accountService.remove(Wrappers.lambdaQuery(Account.class).eq(Account::getUserId, id));
userCountService.remove(Wrappers.lambdaQuery(UserCount.class).eq(UserCount::getUserId, id));
anchorService.remove(Wrappers.lambdaQuery(Anchor.class).eq(Anchor::getUserId, id));
userAlbumService.remove(Wrappers.lambdaQuery(UserAlbum.class).eq(UserAlbum::getUserId, id));
dynamicService.remove(Wrappers.lambdaQuery(Dynamic.class).eq(Dynamic::getUserId, id));
dynamicImagesService.remove(Wrappers.lambdaQuery(DynamicImages.class).eq(DynamicImages::getUserId, id));
userFollowService.remove(Wrappers.lambdaQuery(UserFollow.class).eq(UserFollow::getUserId, id));
userFollowService.remove(Wrappers.lambdaQuery(UserFollow.class).eq(UserFollow::getFollowUser, id));
userGreetService.remove(Wrappers.lambdaQuery(UserGreet.class).eq(UserGreet::getUserId,id));
userMemberService.remove(Wrappers.lambdaQuery(UserMember.class).eq(UserMember::getUserId,id));
userForbidService.remove(Wrappers.lambdaQuery(UserForbid.class).eq(UserForbid::getId,id));
anchorApplyService.remove(Wrappers.lambdaQuery(AnchorApply.class).eq(AnchorApply::getId,id));
return true;
}
}