New file |
| | |
| | | package com.ruoyi.account.controller; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ruoyi.account.api.model.AgentApplication; |
| | | import com.ruoyi.account.api.model.AppUser; |
| | | import com.ruoyi.account.api.model.UserChangeLog; |
| | | import com.ruoyi.account.dto.AgentQuery; |
| | | import com.ruoyi.account.api.model.VipSettingDto; |
| | | import com.ruoyi.account.service.AgentApplicationService; |
| | | import com.ruoyi.account.service.AppUserService; |
| | | import com.ruoyi.account.service.UserChangeLogService; |
| | | import com.ruoyi.account.service.VipCenterService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.core.web.controller.BaseController; |
| | | import com.ruoyi.other.api.domain.BaseSetting; |
| | | import com.ruoyi.other.api.domain.VipSetting; |
| | | import com.ruoyi.other.api.feignClient.BaseSettingClient; |
| | | import com.ruoyi.other.api.feignClient.VipSettingClient; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | /** |
| | | * <p> |
| | | * 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author luodangjia |
| | | * @since 2024-11-21 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/agent-application") |
| | | public class AgentApplicationController extends BaseController { |
| | | @Resource |
| | | private AgentApplicationService agentApplicationService; |
| | | @Resource |
| | | private AppUserService appUserService; |
| | | @Resource |
| | | private BaseSettingClient baseSettingClient; |
| | | @Resource |
| | | private VipCenterService vipCenterService; |
| | | |
| | | @PostMapping("/apply") |
| | | @ApiOperation(value = "会员申请", tags = {"会员中心-小程序"}) |
| | | public R<Void> apply(@RequestBody AgentApplication agentApplication) { |
| | | agentApplicationService.apply(agentApplication); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/page") |
| | | @ApiOperation(value = "会员申请列表", tags = {"后台"}) |
| | | public R<IPage<AgentApplication>> page(@RequestBody AgentQuery agentQuery) { |
| | | IPage<AgentApplication> agentApplicationIPage = agentApplicationService.pageList(agentQuery); |
| | | for (AgentApplication record : agentApplicationIPage.getRecords()) { |
| | | AppUser byId = appUserService.getById(record.getAppUserId()); |
| | | if (byId!=null){ |
| | | record.setVipId(byId.getVipId()); |
| | | } |
| | | } |
| | | return R.ok(agentApplicationIPage); |
| | | } |
| | | @Resource |
| | | private VipSettingClient vipSettingClient; |
| | | @GetMapping("/detail") |
| | | @ApiOperation(value = "会员申请详情", tags = {"会员中心-小程序"}) |
| | | public R<AgentApplication> detail(@RequestParam Long id) { |
| | | AgentApplication agentApplication = agentApplicationService.getById(id); |
| | | AppUser appUser = appUserService.getById(agentApplication.getAppUserId()); |
| | | agentApplication.setShopPoint(appUser.getShopPoint()); |
| | | agentApplication.setSharePoint(appUser.getSharePoint()); |
| | | R<VipSetting> vipSetting = vipSettingClient.getVipSetting(agentApplication.getApplicationVipId()); |
| | | VipSettingDto vipSettingDto = new VipSettingDto(); |
| | | BeanUtils.copyProperties(vipSetting.getData(),vipSettingDto); |
| | | agentApplication.setVipSettingDto(vipSettingDto); |
| | | // List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() |
| | | // .ne(AppUser::getStatus, 3) |
| | | // .eq(AppUser::getDelFlag, 0)); |
| | | // ArrayList<Long> userIds = new ArrayList<>(); |
| | | // userIds.add(appUser.getId()); |
| | | // getUserAncestorList(appUser,userIds,new ArrayList<>(),appUserList); |
| | | return R.ok(agentApplication); |
| | | } |
| | | public void getUserAncestorList(AppUser user,List<Long> userIds, List<AppUser> children,List<AppUser> list) { |
| | | children = list.stream().filter(u -> userIds.contains(u.getInviteUserId()) || userIds.contains(u.getTopInviteId())).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(children)){ |
| | | user.setCount1((user.getCount1() == null ? 0L : user.getCount1()) + children.stream().filter(e->e.getVipId() == 1).count()); |
| | | user.setCount2((user.getCount2() == null ? 0L : user.getCount2()) + children.stream().filter(e->e.getVipId() == 2).count()); |
| | | user.setCount3((user.getCount3() == null ? 0L : user.getCount3()) + children.stream().filter(e->e.getVipId() == 3).count()); |
| | | user.setCount4((user.getCount4() == null ? 0L : user.getCount4()) + children.stream().filter(e->e.getVipId() == 4).count()); |
| | | user.setCount5((user.getCount5() == null ? 0L : user.getCount5()) + children.stream().filter(e->e.getVipId() == 5).count()); |
| | | user.setCount6((user.getCount6() == null ? 0L : user.getCount6()) + children.stream().filter(e->e.getVipId() == 6).count()); |
| | | user.setCount7((user.getCount7() == null ? 0L : user.getCount7()) + children.stream().filter(e->e.getVipId() == 7).count()); |
| | | List<Long> userIdList = children.stream().map(AppUser::getId).collect(Collectors.toList()); |
| | | getUserAncestorList(user,userIdList, children,list); |
| | | } |
| | | } |
| | | @Resource |
| | | private UserChangeLogService userChangeLogService; |
| | | |
| | | @GetMapping("/auth") |
| | | @ApiOperation(value = "会员申请审核", tags = {"会员中心-小程序"}) |
| | | public R<AgentApplication> auth(@RequestParam Long id, @ApiParam("2'已处理-同意',3'已处理-拒绝")Integer status,@ApiParam("处理意见") String remark) { |
| | | AgentApplication byId = agentApplicationService.getById(id); |
| | | byId.setStatus(status); |
| | | byId.setRemark(remark); |
| | | agentApplicationService.updateById(byId); |
| | | AppUser byId1 = appUserService.getById(byId.getAppUserId()); |
| | | //插入等级变化数据 |
| | | UserChangeLog userChangeLog = new UserChangeLog(); |
| | | userChangeLog.setCreateTime(LocalDateTime.now()); |
| | | userChangeLog.setAppUserId(byId.getAppUserId()); |
| | | userChangeLog.setBeforeVipId(byId1.getVipId()); |
| | | userChangeLog.setAfterVipId(byId.getApplicationVipId()); |
| | | if (userChangeLog.getBeforeVipId()>userChangeLog.getAfterVipId()) { |
| | | userChangeLog.setChangeType(0); |
| | | }else { |
| | | userChangeLog.setChangeType(1); |
| | | } |
| | | userChangeLogService.save(userChangeLog); |
| | | //变更会员等级 |
| | | byId1.setVipId(byId.getApplicationVipId()); |
| | | |
| | | // 当用户为合伙人时,计算合伙人积分和培育积分 |
| | | Integer vipId = byId1.getVipId(); |
| | | if (vipId == 7){ |
| | | R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1); |
| | | BaseSetting data = baseSetting.getData(); |
| | | int basePoint = Integer.parseInt(data.getContent()); |
| | | // 当前用户计算合伙人积分 |
| | | R<VipSetting> vipSetting = vipSettingClient.getVipSetting(vipId); |
| | | Integer point = getPoint(vipSetting, byId1, basePoint); |
| | | byId1.setPartPoint(point); |
| | | // 上级计算培育积分 |
| | | R<BaseSetting> baseSetting2 = baseSettingClient.getBaseSetting(1); |
| | | BaseSetting data2 = baseSetting2.getData(); |
| | | int basePoint2 = Integer.parseInt(data2.getContent()); |
| | | Long inviteUserId = byId1.getInviteUserId(); |
| | | AppUser byId2 = appUserService.getById(inviteUserId); |
| | | if (byId2 != null){ |
| | | Integer point1 = getPoint(vipSetting, byId2, basePoint2); |
| | | byId2.setPartGrowPoint(point1); |
| | | } |
| | | } |
| | | |
| | | appUserService.updateById(byId1); |
| | | return R.ok(byId); |
| | | } |
| | | |
| | | private Integer getPoint(R<VipSetting> vipSetting, AppUser appUser, Integer basePoint) { |
| | | VipSetting vipSettingData = vipSetting.getData(); |
| | | Integer vipLevelUpShopRole = vipSettingData.getVipLevelUpShopRole(); |
| | | int i = 1; |
| | | if (vipLevelUpShopRole == 1){ |
| | | i += 1; |
| | | } |
| | | Integer vipLevelUpNumRole = vipSettingData.getVipLevelUpNumRole(); |
| | | if (vipLevelUpNumRole == 1){ |
| | | i += 1; |
| | | } |
| | | |
| | | |
| | | if (vipCenterService.checkReadyToBePartner(appUser.getId())){ |
| | | return basePoint * i; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | } |
| | | |