| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.account.api.feignClient.AppUserClient; |
| | | import com.ruoyi.account.api.feignClient.UserPointClient; |
| | | import com.ruoyi.account.api.model.AppUser; |
| | | import com.ruoyi.account.api.model.UserPoint; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.utils.ServletUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.web.controller.BaseController; |
| | | import com.ruoyi.common.security.service.TokenService; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.other.api.domain.PointSetting; |
| | | import com.ruoyi.other.api.domain.Share; |
| | | import com.ruoyi.other.api.domain.Shop; |
| | | import com.ruoyi.other.api.feignClient.ShopClient; |
| | | import com.ruoyi.other.enums.ShareAddType; |
| | | import com.ruoyi.other.enums.ShareAuditStatus; |
| | | import com.ruoyi.other.service.PointSettingService; |
| | | import com.ruoyi.other.service.ShareService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import com.ruoyi.system.api.domain.SysUser; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import io.swagger.annotations.*; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | | * 前端控制器 |
| | | * 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author luodangjia |
| | | * @since 2024-11-20 |
| | | */ |
| | | @Api(tags = "分享") |
| | | @Api("分享") |
| | | @RestController |
| | | @RequestMapping("/share") |
| | | public class ShareController extends BaseController { |
| | |
| | | private ShareService shareService; |
| | | @Resource |
| | | private TokenService tokenService; |
| | | @Resource |
| | | private AppUserClient appUserClient; |
| | | @Resource |
| | | private ShopClient shopClient; |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | @Resource |
| | | private UserPointClient userPointClient; |
| | | @Resource |
| | | private PointSettingService pointSettingService; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 分享列表 |
| | | */ |
| | | @ApiOperation(value = "分享列表", tags = {"小程序-个人中心-门店管理-分享列表"}) |
| | | @ApiOperation(value = "分享列表", tags = {"小程序-个人中心-门店管理"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "对象id(addType=1:平台添加,addType=2:推广人添加,addType=3:门店添加)", name = "objectId", required = true, dataType = "int"), |
| | | }) |
| | | @GetMapping("/list") |
| | | public R<List<Share>> list(@RequestParam Integer objectId){ |
| | | return R.ok(shareService.list(new LambdaQueryWrapper<Share>() |
| | | .eq(Share::getObjectId, objectId))); |
| | | public R<List<Share>> list(@RequestParam Integer objectId) { |
| | | List<Share> list = shareService.list(new LambdaQueryWrapper<Share>() |
| | | .eq(Share::getObjectId, objectId) |
| | | .eq(Share::getDelFlag, 0).or() |
| | | .eq(Share::getAddType, 1) |
| | | .eq(Share::getDelFlag, 0).orderByDesc(Share::getCreateTime)); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "分享页列表", tags = {"小程序-推广中心"}) |
| | | @GetMapping("/recommand/list") |
| | | public R<List<Share>> recommandlist(){ |
| | | public R<List<Share>> recommandlist() { |
| | | Long userid = tokenService.getLoginUserApplet().getUserid(); |
| | | return R.ok(shareService.list(new LambdaQueryWrapper<Share>().eq(Share::getAddType,2) |
| | | .eq(Share::getObjectId, userid))); |
| | | return R.ok(shareService.list(new LambdaQueryWrapper<Share>().eq(Share::getAddType, 2) |
| | | .eq(Share::getObjectId, userid).or().eq(Share::getAddType, 1).eq(Share::getAuditStatus, 1) |
| | | .eq(Share::getDelFlag, 0).orderByDesc(Share::getCreateTime))); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 分享添加 |
| | | */ |
| | | @ApiOperation(value = "分享添加", tags = {"小程序-个人中心-门店管理-分享添加"}) |
| | | @ApiOperation(value = "分享添加", tags = {"小程序-个人中心-门店管理"}) |
| | | @PostMapping |
| | | public R<Void> add(@RequestBody Share share){ |
| | | public R<Void> add(@RequestBody Share share) { |
| | | Long userid = tokenService.getLoginUserApplet().getUserid(); |
| | | if (share.getAddType()==1) { |
| | | if (share.getAddType() == 1) { |
| | | share.setAuditStatus(ShareAuditStatus.WAIT.getCode()); |
| | | }else if (share.getAddType()==2){ |
| | | } else if (share.getAddType() == 2) { |
| | | share.setAuditStatus(ShareAuditStatus.WAIT.getCode()); |
| | | share.setObjectId(userid.toString()); |
| | | share.setObjectId(userid); |
| | | } |
| | | share.setDelFlag(0); |
| | | share.setAppletShare(1); |
| | | share.setCreateTime(LocalDateTime.now()); |
| | | shareService.save(share); |
| | | return R.ok(); |
| | | } |
| | |
| | | /** |
| | | * 分享删除 |
| | | */ |
| | | @ApiOperation(value = "分享删除", tags = {"小程序-个人中心-门店管理-分享删除-小程序"}) |
| | | @ApiOperation(value = "分享删除", tags = {"小程序-个人中心-门店管理"}) |
| | | @DeleteMapping |
| | | public R<Void> delete(@RequestBody Share share){ |
| | | public R<Void> delete(@RequestBody Share share) { |
| | | shareService.removeById(share); |
| | | return R.ok(); |
| | | } |
| | |
| | | /** |
| | | * 分享编辑 |
| | | */ |
| | | @ApiOperation(value = "分享编辑", tags = {"小程序-个人中心-门店管理-分享编辑-小程序"}) |
| | | @ApiOperation(value = "分享编辑", tags = {"小程序-个人中心-门店管理"}) |
| | | @PutMapping |
| | | public R<Void> edit(@RequestBody Share share){ |
| | | public R<Void> edit(@RequestBody Share share) { |
| | | share.setAuditStatus(ShareAuditStatus.WAIT.getCode()); |
| | | shareService.updateById(share); |
| | | return R.ok(); |
| | |
| | | /** |
| | | * 分享详情 |
| | | */ |
| | | @ApiOperation(value = "分享详情", tags = {"小程序-个人中心-门店管理-分享详情-小程序"}) |
| | | @ApiOperation(value = "分享详情", tags = {"小程序-个人中心-门店管理"}) |
| | | @GetMapping("/detail/{id}") |
| | | public R<Share> detail(@PathVariable("id") Integer id){ |
| | | public R<Share> detail(@PathVariable("id") Integer id) { |
| | | return R.ok(shareService.getById(id)); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "添加", tags = {"后台-分享管理"}) |
| | | @ApiOperation(value = "广告管理-分享管理-添加", tags = {"管理后台"}) |
| | | @PostMapping("/manage/add") |
| | | public R<Void> manage(@RequestBody Share share){ |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | share.setAddType(1); |
| | | public R<Void> manage(@RequestBody Share share) { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | Long userid = loginUser.getSysUser().getUserId(); |
| | | SysUser sysUser = sysUserClient.getSysUser(userid).getData(); |
| | | share.setAddType(sysUser.getRoleType() == 1 ? 1 : 3); |
| | | share.setAppletShare(0); |
| | | if(sysUser.getRoleType() == 2){ |
| | | share.setObjectId(sysUser.getObjectId().longValue()); |
| | | } |
| | | if (sysUser.getRoleType() == 1){ |
| | | share.setAuditStatus(ShareAuditStatus.SUCCESS.getCode()); |
| | | share.setObjectId(userid.toString()); |
| | | }else{ |
| | | share.setAuditStatus(ShareAuditStatus.WAIT.getCode()); |
| | | } |
| | | share.setDelFlag(0); |
| | | shareService.save(share); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @ApiOperation(value = "编辑", tags = {"后台-分享管理"}) |
| | | @ApiOperation(value = "广告管理-分享管理-编辑", tags = {"管理后台"}) |
| | | @PostMapping("/manage/edit") |
| | | public R<Void> manageedit(@RequestBody Share share){ |
| | | |
| | | public R<Void> manageedit(@RequestBody Share share) { |
| | | if (null == share.getAuditStatus() || share.getAuditStatus()==2){ |
| | | share.setAuditStatus(0); |
| | | } |
| | | shareService.updateById(share); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @ApiOperation(value = "删除", tags = {"后台-分享管理"}) |
| | | @ApiOperation(value = "广告管理-分享管理-删除", tags = {"管理后台"}) |
| | | @GetMapping("/manage/delete") |
| | | public R<Void> managedelete(@RequestParam Integer id){ |
| | | |
| | | public R<Void> managedelete(@RequestParam Integer id) { |
| | | shareService.removeById(id); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @ApiOperation(value = "列表", tags = {"后台-分享管理"}) |
| | | @ApiOperation(value = "广告管理-分享管理-列表", tags = {"管理后台"}) |
| | | @GetMapping("/manage/list") |
| | | public R<Page<Share>> managelist(String name,Integer addType,@RequestParam Integer PageNum,Integer pageSize){ |
| | | Page<Share> page = shareService.lambdaQuery().like(name != null, Share::getName, name).eq(addType != null, Share::getAddType, addType).page(Page.of(pageSize, pageSize)); |
| | | return R.ok(page); |
| | | public R<Page<Share>> managelist(String name, |
| | | Integer addType, |
| | | Integer auditStatus, |
| | | @RequestParam Integer pageNum, Integer pageSize) { |
| | | //判断当前登陆人是平台还是门店 |
| | | Long userid = tokenService.getLoginUser().getUserid(); |
| | | SysUser sysUser = sysUserClient.getSysUser(userid).getData(); |
| | | if (sysUser.getRoleType()==1) { |
| | | Page<Share> page = shareService.lambdaQuery() |
| | | .eq(Share::getAuditStatus, 1) |
| | | .eq(Share::getDelFlag, 0) |
| | | .like(name != null, Share::getName, name) |
| | | .eq(addType != null , Share::getAddType, addType) |
| | | .page(Page.of(pageNum, pageSize)); |
| | | return R.ok(page); |
| | | }else { |
| | | Page<Share> page = shareService.lambdaQuery() |
| | | .eq(auditStatus!= null, Share::getAuditStatus, auditStatus) |
| | | .eq(Share::getAddType,3) |
| | | .eq(Share::getDelFlag, 0) |
| | | .eq(Share::getObjectId, sysUser.getObjectId()) |
| | | .like(name != null, Share::getName, name).page(Page.of(pageNum, pageSize)); |
| | | return R.ok(page); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "设为小程序分享", tags = {"后台-分享管理"}) |
| | | @ApiOperation(value = "广告管理-分享管理-设为小程序分享", tags = {"管理后台"}) |
| | | @GetMapping("/manage/set") |
| | | public R<Void> set(@RequestParam Integer id){ |
| | | public R<Void> set(@RequestParam Integer id) { |
| | | //将所有分享设为不是小程序分享 |
| | | List<Share> list = shareService.lambdaQuery().list(); |
| | | if (!list.isEmpty()){ |
| | | if (!list.isEmpty()) { |
| | | for (Share share : list) { |
| | | share.setAppletShare(0); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "广告管理-分享管理-审核列表", tags = {"管理后台"}) |
| | | @GetMapping("/manage/auth/list") |
| | | public R<Page<Share>> authmanagelist(String name, |
| | | Integer addType, |
| | | String authName, |
| | | String authPhone, |
| | | Integer auditStatus, |
| | | @RequestParam Integer pageNum, |
| | | Integer pageSize) { |
| | | |
| | | List<Long> userIds = new ArrayList<>(); |
| | | if (StringUtils.isNotEmpty(authName)){ |
| | | R<List<AppUser>> uR = appUserClient.getAppUserByName(authName); |
| | | List<AppUser> userList = uR.getData(); |
| | | if (CollectionUtils.isEmpty(userList)){ |
| | | return R.ok(Page.of(pageNum, pageSize)); |
| | | } |
| | | userIds.addAll(userList.stream().map(AppUser::getId).collect(Collectors.toList())); |
| | | |
| | | } |
| | | if (StringUtils.isNotEmpty(authPhone)){ |
| | | R<List<AppUser>> uR = appUserClient.getAppUserByPhone(authPhone); |
| | | List<AppUser> userList = uR.getData(); |
| | | if (CollectionUtils.isEmpty(userList)){ |
| | | return R.ok(Page.of(pageNum, pageSize)); |
| | | } |
| | | userIds.addAll(userList.stream().map(AppUser::getId).collect(Collectors.toList())); |
| | | } |
| | | |
| | | List<Share> list = shareService.list(); |
| | | if (CollectionUtils.isEmpty(list)){ |
| | | return R.ok(Page.of(pageNum, pageSize)); |
| | | } |
| | | List<Long> objectIds = list.stream().map(Share::getObjectId).distinct().collect(Collectors.toList()); |
| | | List<AppUser> appUsers = appUserClient.listByIds(objectIds); |
| | | List<Long> appUserIds = appUsers.stream().filter(item -> !item.getDelFlag()).map(AppUser::getId).collect(Collectors.toList()); |
| | | if (CollectionUtils.isEmpty(userIds)){ |
| | | userIds = appUserIds; |
| | | } |
| | | |
| | | |
| | | Page<Share> page = shareService.lambdaQuery() |
| | | .ne(Share::getAuditStatus, 1) |
| | | .like(name != null, Share::getName, name) |
| | | .eq(addType != null, Share::getAddType, addType) |
| | | .eq(auditStatus != null, Share::getAuditStatus, auditStatus) |
| | | .in(!CollectionUtils.isEmpty(userIds),Share::getObjectId, userIds) |
| | | .eq(Share::getDelFlag, 0) |
| | | .orderByDesc(Share::getCreateTime) |
| | | .page(Page.of(pageNum, pageSize)); |
| | | for (Share record : page.getRecords()) { |
| | | if (record.getAddType() == 2) { |
| | | AppUser appUserById = appUserClient.getAppUserById(Long.valueOf(record.getObjectId())); |
| | | if (appUserById!=null) { |
| | | record.setAuthName(appUserById.getName()); |
| | | record.setAuthPhone(appUserById.getPhone()); |
| | | } |
| | | } |
| | | if (record.getAddType() == 3) { |
| | | R<Shop> shopById = shopClient.getShopById(record.getObjectId().intValue()); |
| | | if (shopById.getData() != null) { |
| | | record.setAuthName(shopById.getData().getName()); |
| | | } |
| | | } |
| | | } |
| | | return R.ok(page); |
| | | } |
| | | |
| | | @ApiOperation(value = "广告管理-分享管理-详情", tags = {"管理后台"}) |
| | | @GetMapping("/manage/auth/detail") |
| | | public R<Share> authmanagelist(Integer id) { |
| | | Share byId = shareService.getById(id); |
| | | return R.ok(byId); |
| | | } |
| | | |
| | | @ApiOperation(value = "广告管理-分享管理-审核", tags = {"管理后台"}) |
| | | @GetMapping("/manage/auth/check") |
| | | public R<Share> authmanagecheck(Integer id, @ApiParam("1=审核通过,2=审核失败") Integer auditStatus, @ApiParam("备注") String auditMsg) { |
| | | Share byId = shareService.getById(id); |
| | | byId.setAuditStatus(auditStatus); |
| | | byId.setAuditMsg(auditMsg); |
| | | shareService.updateById(byId); |
| | | return R.ok(byId); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取小程序分享数据", tags = {"小程序-分享"}) |
| | | @GetMapping("/auth/getAppletShare") |
| | | public R<Share> getAppletShare(){ |
| | | Share one = shareService.getOne(new LambdaQueryWrapper<Share>().eq(Share::getDelFlag, 0).eq(Share::getAppletShare, 1) |
| | | .eq(Share::getAuditStatus, 1).last(" limit 0, 1")); |
| | | //添加每日分享积分 |
| | | String token = SecurityUtils.getToken(ServletUtils.getRequest()); |
| | | if(StringUtils.isNotEmpty(token)){ |
| | | Long userid = tokenService.getLoginUserApplet().getUserid(); |
| | | Boolean data = userPointClient.judgmentDailyShare(userid).getData(); |
| | | if(!data){ |
| | | AppUser appUser = appUserClient.getAppUserById(userid); |
| | | PointSetting pointSetting = pointSettingService.getOne(new LambdaQueryWrapper<PointSetting>() |
| | | .eq(PointSetting::getId, appUser.getVipId()).eq(PointSetting::getDelFlag, 0)); |
| | | if(null != pointSetting){ |
| | | Integer everySharePoint = pointSetting.getEverySharePoint(); |
| | | if(everySharePoint > 0){ |
| | | Integer lavePoint = appUser.getLavePoint(); |
| | | appUser.setTotalSharePoint(appUser.getTotalSharePoint() + everySharePoint); |
| | | appUser.setLavePoint(appUser.getLavePoint() + everySharePoint); |
| | | appUser.setAvailablePoint(appUser.getAvailablePoint() + everySharePoint); |
| | | appUser.setTransferablePoint(appUser.getTransferablePoint() + everySharePoint); |
| | | appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + everySharePoint); |
| | | appUser.setTotalPoint(appUser.getTotalPoint() + everySharePoint); |
| | | appUserClient.editAppUserById(appUser); |
| | | //添加积分流水 |
| | | UserPoint userPoint = new UserPoint(); |
| | | userPoint.setAppUserId(userid); |
| | | userPoint.setType(4); |
| | | userPoint.setHistoricalPoint(lavePoint); |
| | | userPoint.setVariablePoint(everySharePoint); |
| | | userPoint.setBalance(appUser.getLavePoint()); |
| | | userPoint.setCreateTime(LocalDateTime.now()); |
| | | userPoint.setAppUserId(appUser.getId()); |
| | | userPointClient.saveUserPoint(userPoint); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | return R.ok(one); |
| | | } |
| | | |
| | | //appUserShare/ |
| | | @GetMapping("/saveAppUserShare") |
| | | public R<Share> saveAppUserShare() { |
| | | return getAppletShare(); |
| | | } |
| | | |
| | | |
| | | } |
| | | |