From f374de49cb7cd1c904c43e6e9c186a415a5e5c31 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 13 八月 2024 10:59:29 +0800 Subject: [PATCH] 8.13 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java | 1 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java | 67 +++++++++++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java | 55 ++++++++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/NoticeQueryDto.java | 12 ++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 36 ++---- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java | 24 ++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java | 15 +- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java | 45 +++++++++ ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java | 9 + 11 files changed, 238 insertions(+), 34 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java index 9ca255a..6f4e4a4 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/TAppUserVipDetail.java @@ -53,5 +53,9 @@ @TableField("create_time") private LocalDateTime createTime; + @ApiModelProperty(value = "已赠送的月份") + @TableField("send_month") + private String sendMonth; + } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/NoticeQueryDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/NoticeQueryDto.java new file mode 100644 index 0000000..879c7cd --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/NoticeQueryDto.java @@ -0,0 +1,12 @@ +package com.ruoyi.other.api.dto; + +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class NoticeQueryDto extends BasePage { + private String content; + @ApiModelProperty("0未开始1已开始2已结束") + private Integer status; +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index 3eaf8db..5605d42 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -6,6 +6,7 @@ import com.ruoyi.account.api.dto.*; import com.ruoyi.account.api.model.*; import com.ruoyi.account.service.*; +import com.ruoyi.account.util.GiveVipUtil; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.BasePojo; @@ -63,6 +64,8 @@ @Resource private ExchangeOrderClient exchangeOrderClient; + @Resource + private GiveVipUtil giveVipUtil; @ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"}) @PostMapping(value = "/unit/page") public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) { @@ -255,31 +258,20 @@ public R giveVip(@RequestBody GiveVipDto giveVipDto) { TAppUser nowUser = appUserService.getById(giveVipDto.getUserId()); - - //如果vipEndTime为空或已过期,直接增加 - if (nowUser.getVipEndTime()==null||nowUser.getVipEndTime().isBefore(LocalDateTime.now())) { - if (giveVipDto.getType() == 1) { - nowUser.setVipEndTime(LocalDateTime.now().plusDays(31)); - //直接增加vipDetail - } else if (giveVipDto.getType() == 2) { - nowUser.setVipEndTime(LocalDateTime.now().plusDays(93)); - } else if (giveVipDto.getType() == 3) { - nowUser.setVipEndTime(LocalDateTime.now().plusDays(365)); - } - //直接赠送优惠卷 - }else { - if (giveVipDto.getType() == 1) { - nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(31)); - //如果有这个类型的vip,累加,没有的话,从entTime新增 - } else if (giveVipDto.getType() == 2) { - nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(93)); - } else if (giveVipDto.getType() == 3) { - nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(365)); - } + int plusDay = 0; + if (giveVipDto.getType() == 1) { + plusDay = 31; + } else if (giveVipDto.getType() == 2) { + plusDay = 93; + } else if (giveVipDto.getType() == 3) { + plusDay = 365; } + //增加vipDetail + giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay); - + appUserService.updateById(nowUser); + //执行一次赠送优惠卷的定时任务 return R.ok(); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java index 8e90bd7..880fdb6 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserVipDetailService.java @@ -13,4 +13,5 @@ */ public interface TAppUserVipDetailService extends IService<TAppUserVipDetail> { + void giveVipCoupun(Long appUserId, Integer vipId); } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java index 50674ce..b40a62e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserVipDetailServiceImpl.java @@ -18,4 +18,13 @@ @Service public class TAppUserVipDetailServiceImpl extends ServiceImpl<TAppUserVipDetailMapper, TAppUserVipDetail> implements TAppUserVipDetailService { + @Override + public void giveVipCoupun(Long appUserId, Integer vipId) { + //给这个用户发放对应vip的优惠卷以及充电次数加满 + + + + + + } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java new file mode 100644 index 0000000..4d1a322 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/task/TaskUtil.java @@ -0,0 +1,67 @@ +package com.ruoyi.account.task; + + +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.service.TAppUserVipDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.util.List; + + +/** + * 定时任务工具类 + */ +@Component +public class TaskUtil { + + @Resource + private TAppUserVipDetailService tAppUserVipDetailService; + + + + /** + * 每隔一分钟去处理的定时任务 + */ + @Scheduled(fixedRate = 1000 * 60) + public void sendVipCoupon(){ + try { + //首先获取当前的月份,用int类型标识 + LocalDate currentDate = LocalDate.now(); + int monthNum = currentDate.getMonthValue(); + //获取在当前时间内生效的vipDetail + List<TAppUserVipDetail> recentDetails = tAppUserVipDetailService.lambdaQuery() + .ge(TAppUserVipDetail::getStartTime, currentDate) + .le(TAppUserVipDetail::getEndTime, currentDate) + .orderByDesc(TAppUserVipDetail::getStartTime).list(); + //判断sendNum是否包括当前月份 + for (TAppUserVipDetail recentDetail : recentDetails) { + if (recentDetail.getSendMonth()!=null&&recentDetail.getSendMonth().contains(monthNum+"")){ + //如果包含,则不执行操作 + continue; + }else { + //如果不包含,则更新sendNum,并且赠送优惠卷 + TAppUserVipDetail byId = tAppUserVipDetailService.getById(recentDetail.getId()); + if (byId==null){ + byId.setSendMonth(byId.getSendMonth()+monthNum); + }else{ + byId.setSendMonth(","+byId.getSendMonth()+monthNum); + } + + + tAppUserVipDetailService.updateById(byId); + //赠送优惠卷 + tAppUserVipDetailService.giveVipCoupun(recentDetail.getAppUserId(), recentDetail.getVipId()); + } + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java new file mode 100644 index 0000000..6091de5 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/GiveVipUtil.java @@ -0,0 +1,45 @@ +package com.ruoyi.account.util; + +import com.ruoyi.account.api.model.TAppUser; +import com.ruoyi.account.api.model.TAppUserVipDetail; +import com.ruoyi.account.service.TAppUserVipDetailService; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.time.LocalDateTime; + +@Component +public class GiveVipUtil { + @Resource + private TAppUserVipDetailService tAppUserVipDetailService; + public void sendVip(TAppUser nowUser,Integer vipId,Integer plusDay){ + if (nowUser.getVipEndTime()==null||nowUser.getVipEndTime().isBefore(LocalDateTime.now())) { + + nowUser.setVipEndTime(LocalDateTime.now().plusDays(plusDay)); + + //直接再detail里新增数据,因为不是续费 + TAppUserVipDetail tAppUserVipDetail = new TAppUserVipDetail(); + tAppUserVipDetail.setAppUserId(nowUser.getId()); + tAppUserVipDetail.setStartTime(LocalDateTime.now()); + tAppUserVipDetail.setEndTime(LocalDateTime.now().plusDays(plusDay)); + tAppUserVipDetail.setVipId(vipId); + tAppUserVipDetailService.save(tAppUserVipDetail); + //直接赠送优惠卷 + }else { + nowUser.setVipEndTime(nowUser.getVipEndTime().plusDays(plusDay)); + //获取detail里结束时间大于当前时间的数据,并将enttime延长 + TAppUserVipDetail tAppUserVipDetail = tAppUserVipDetailService.lambdaQuery().eq(TAppUserVipDetail::getAppUserId, nowUser.getId()).orderByDesc(TAppUserVipDetail::getEndTime).last("limit 1").one(); + + TAppUserVipDetail newAppUser = new TAppUserVipDetail(); + newAppUser.setAppUserId(nowUser.getId()); + newAppUser.setStartTime(tAppUserVipDetail.getEndTime()); + newAppUser.setEndTime(tAppUserVipDetail.getEndTime().plusDays(plusDay)); + + newAppUser.setVipId(vipId); + tAppUserVipDetailService.save(newAppUser); +// tAppUserVipDetail.setEndTime(tAppUserVipDetail.getEndTime().plusDays(plusDay)); +// tAppUserVipDetailService.updateById(tAppUserVipDetail); + } + + } +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java index fa49803..ec30f5a 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java @@ -163,10 +163,10 @@ } } - - return AjaxResult.ok(accountingStrategyService.pageList(query)); } + + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java index 1739f4d..46b995a 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/THtmlController.java @@ -1,9 +1,14 @@ package com.ruoyi.other.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.other.api.domain.THtml; +import com.ruoyi.other.api.domain.TNotice; +import com.ruoyi.other.service.THtmlService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; /** * <p> @@ -16,6 +21,21 @@ @RestController @RequestMapping("/t-html") public class THtmlController { + @Resource + private THtmlService htmlService; + @ApiOperation(tags = {"后台-内容设置-协议服务"},value = "新增修改") + @PostMapping(value = "/saveOrUpdate") + public AjaxResult saveOrUpdate(@RequestBody THtml tHtml) { + htmlService.saveOrUpdate(tHtml); + return AjaxResult.success(); + } + + @ApiOperation(tags = {"后台-内容设置-协议服务"},value = "查询") + @PostMapping(value = "/selectByType/{type}") + public AjaxResult selectByType(@PathVariable Integer type) { + THtml one = htmlService.lambdaQuery().eq(THtml::getType, type).last("limit 1").one(); + return AjaxResult.success(one); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java index ee4dcb9..06838a6 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TNoticeController.java @@ -1,9 +1,17 @@ package com.ruoyi.other.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.other.api.domain.TNotice; +import com.ruoyi.other.api.dto.NoticeQueryDto; +import com.ruoyi.other.mapper.SysNoticeMapper; +import com.ruoyi.other.service.TNoticeService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; +import java.time.LocalDateTime; /** * <p> @@ -16,6 +24,49 @@ @RestController @RequestMapping("/t-notice") public class TNoticeController { + @Resource + private TNoticeService noticeService; + + @ApiOperation(tags = {"后台-内容设置-公告管理"},value = "新增修改") + @PostMapping(value = "/saveOrUpdate") + public AjaxResult saveOrUpdate(@RequestBody TNotice notice) { + noticeService.saveOrUpdate(notice); + return AjaxResult.success(); + } + + @ApiOperation(tags = {"后台-内容设置-公告管理"},value = "删除") + @PostMapping(value = "/deleteById/{id}") + public AjaxResult deleteById(@PathVariable Integer id) { + noticeService.removeById(id); + return AjaxResult.success(); + } + + @ApiOperation(tags = {"后台-内容设置-公告管理"},value = "查询") + @PostMapping(value = "/pageList") + public AjaxResult<Page<TNotice>> authPageList(@RequestBody NoticeQueryDto query) { + if (query.getStatus()==0){ + return AjaxResult.success(noticeService.lambdaQuery() + .le(TNotice::getStartTime, LocalDateTime.now()) + .like(query.getContent()!=null&&query.getContent()!="",TNotice::getContent,query.getContent()) + .page(Page.of(query.getPageCurr(),query.getPageSize()))); + }else if (query.getStatus()==1){ + return AjaxResult.success(noticeService.lambdaQuery() + .ge(TNotice::getStartTime, LocalDateTime.now()).le(TNotice::getEndTime,LocalDateTime.now()) + .like(query.getContent()!=null&&query.getContent()!="",TNotice::getContent,query.getContent()) + .page(Page.of(query.getPageCurr(),query.getPageSize()))); + }else if (query.getStatus()==2){ + return AjaxResult.success(noticeService.lambdaQuery() + .ge(TNotice::getEndTime, LocalDateTime.now()) + .like(query.getContent()!=null&&query.getContent()!="",TNotice::getContent,query.getContent()) + .page(Page.of(query.getPageCurr(),query.getPageSize()))); + }else{ + return AjaxResult.success(noticeService.lambdaQuery() + .like(query.getContent()!=null&&query.getContent()!="",TNotice::getContent,query.getContent()) + .page(Page.of(query.getPageCurr(),query.getPageSize()))); + } + + + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java index cc3de1a..0ced739 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TSystemConfigurationController.java @@ -7,11 +7,7 @@ import com.ruoyi.other.service.TSystemConfigurationService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * <p> @@ -35,12 +31,19 @@ /** * 查看系统设置 */ - @ApiOperation(tags = {"小程序-系统设置"},value = "联系客服") + @ApiOperation(tags = {"小程序-系统设置","后台-内容设置"},value = "联系客服,查询设置") @GetMapping(value = "/getDetailById") public AjaxResult<TSystemConfiguration> getDetailById(@RequestParam(name = "type",value = "1=客服信息,2=系统设置") Integer type) { return AjaxResult.ok(systemConfigurationService.getOne(Wrappers.lambdaQuery(TSystemConfiguration.class) .eq(TSystemConfiguration::getType, type))); } + @ApiOperation(tags = {"后台-内容设置"},value = "客户信息,系统内容设置") + @GetMapping(value = "/save") + public AjaxResult getDetailById(@RequestBody TSystemConfiguration systemConfiguration) { + systemConfigurationService.saveOrUpdate(systemConfiguration); + return AjaxResult.success(); + } + } -- Gitblit v1.7.1