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