Преглед изворни кода

Merge branch 'independent_gpt'

zoujiajian пре 2 година
родитељ
комит
46c18c135b

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GroupsRelationIndependentRenewMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GroupsRelationIndependentRenew;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GroupsRelationIndependentRenewMapper
+ * 创建者: JavaZou
+ * 创建时间:2023/11/27 15:27
+ */
+public interface GroupsRelationIndependentRenewMapper extends BaseMapper<GroupsRelationIndependentRenew> {
+}

+ 22 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GroupsRelationIndependentRenew.java

@@ -0,0 +1,22 @@
+package com.cyksj.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GroupsRelationIndependentRenew
+ * 创建者: JavaZou
+ * 创建时间:2023/11/27 15:26
+ */
+@Getter
+@Setter
+public class GroupsRelationIndependentRenew extends BaseEntity{
+	private Long userId;
+
+	private Long relationId;
+
+	private Boolean isRenew;
+
+	private String operator;
+}

+ 54 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GroupsRelationIndependentView.java

@@ -0,0 +1,54 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: GroupsRelationIndependentView
+ * 创建者: JavaZou
+ * 创建时间:2023/11/27 15:10
+ */
+
+@Getter
+@Setter
+@SearchBean(tables = "groups_relation gr inner join groups_trips gt on gt.id = gr.groups_id" +
+		" inner join account a on a.id = gt.account_id" +
+		" inner join user u on u.id = gr.user_id",
+		where = ":condition:")
+public class GroupsRelationIndependentView {
+	@DbField("gr.id")
+	private Long relationId;
+
+	@DbField("a.account")
+	private String account;
+
+	@DbField("a.password")
+	private String password;
+
+	@DbField("gr.user_id")
+	private Long userId;
+
+	@DbField("u.nickname")
+	private String nickname;
+
+	@DbField("gr.start_time")
+	private Date startTime;
+
+	@DbField("gr.expiry_time")
+	private Date expiryTime;
+
+	@DbField("a.expiry_time")
+	private Date accountExpiryTime;
+
+	@DbIgnore
+	private Boolean isRenew = false;
+
+	@DbIgnore
+	private Integer numOfRenew;
+}

+ 45 - 0
netflix-dao/src/main/java/com/cyksj/model/views/OrderDonRenewView.java

@@ -0,0 +1,45 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: OrderDonRenewView
+ * 创建者: JavaZou
+ * 创建时间:2023/11/27 15:34
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_don o left join goods_don g on g.id = o.goods_id" +
+		" left join goods_don_sku sku on sku.id = o.sku_id")
+public class OrderDonRenewView {
+	@DbField("o.id")
+	private Long orderId;
+
+	@DbField("o.user_id")
+	private Long userId;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("sku.spec_val")
+	private String specVal;
+
+	@DbField("o.money")
+	private BigDecimal money;
+
+	@DbField("o.relation_id")
+	private Long relationId;
+
+	@DbField("o.order_type")
+	private Integer orderType;
+
+	@DbField("o.created_time")
+	private Date createdTime;
+}

+ 83 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/group/CmsGroupRelationController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.NoSubmit;
 import com.cyksj.common.constant.Constant;
@@ -11,12 +12,15 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.mapper.GroupsRelationIndependentRenewMapper;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.manage.cms.CmsUserMapper;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.GroupsRelationBackView;
+import com.cyksj.model.views.GroupsRelationIndependentView;
 import com.cyksj.model.views.GroupsRelationRechargeView;
+import com.cyksj.model.views.OrderDonRenewView;
 import com.cyksj.service.scheduler.SchedulerService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
@@ -29,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * @author chan
@@ -54,6 +59,8 @@ public class CmsGroupRelationController {
 
     private final GoodsDonSkuMapper goodsDonSkuMapper;
 
+    private final GroupsRelationIndependentRenewMapper groupsRelationIndependentRenewMapper;
+
     @GetMapping("/get")
     public Result<List<GroupsRelationBackView>> get(){
         List<GroupsRelationBackView> search = beanSearcher.searchAll(GroupsRelationBackView.class, MapUtils.flatBuilder(request.getParameterMap())
@@ -150,4 +157,80 @@ public class CmsGroupRelationController {
         }
         return GatewayResponse.SUCCESS.newBuilder().toResult(false);
     }
+
+    /**
+     * Chat GPT独立规格续费 列表
+     */
+    @GetMapping("/get/chatGPT/independent/renew")
+    public Result<SearchResult<GroupsRelationIndependentView>> getIndependentRenew(Boolean isRenew) {
+        String condition = " sku_id in (select id from goods_don_sku sku where sku.goods_id = 18 and sku.num = 1)" +
+                " and exists (select id from order_don o where o.user_id = gr.user_id and o.relation_id = gr.id and o.status not in ('close','noPayment','refund') and o.order_type = 2 limit 1)";
+        if (isRenew != null) {
+            if (isRenew) {
+                condition += String.format(" and exists (select id from groups_relation_independent_renew gnr where gnr.user_id = gr.user_id and gnr.relation_id = gr.id and gnr.is_renew = 1 limit 1)");
+            } else {
+                condition += String.format(" and (select count(*) from groups_relation_independent_renew gnr where gnr.user_id = gr.user_id and gnr.relation_id = gr.id and gnr.is_renew = 1) = 0");
+            }
+        }
+        SearchResult<GroupsRelationIndependentView> search = beanSearcher.search(GroupsRelationIndependentView.class, MapUtils.flatBuilder(request.getParameterMap())
+                .put("condition", condition)
+                .build());
+        search.getDataList().forEach(e->{
+            Optional.ofNullable(groupsRelationIndependentRenewMapper.selectOne(Wrappers.lambdaQuery(GroupsRelationIndependentRenew.class).eq(GroupsRelationIndependentRenew::getUserId, e.getUserId())
+                    .eq(GroupsRelationIndependentRenew::getRelationId, e.getRelationId()).last("limit 1"))).ifPresent(data -> e.setIsRenew(data.getIsRenew()));
+            Number count = beanSearcher.searchCount(OrderDonRenewView.class, MapUtils.flatBuilder(request.getParameterMap())
+                    .field(OrderDonRenewView::getUserId, e.getUserId())
+                    .field(OrderDonRenewView::getRelationId, e.getRelationId())
+                    .field(OrderDonRenewView::getOrderType, 2)
+                    .build());
+            e.setNumOfRenew(count.intValue());
+        });
+        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+    }
+
+    /**
+     * 编辑车票独立续费状态
+     */
+    @PutMapping("/update/independent/renew/status")
+    public Result<String> updateRenewStatus(@RequestBody GroupsRelationIndependentView view) {
+        long adminId = StpUtil.getLoginIdAsLong();
+        Long relationId = view.getRelationId();
+        Long userId = view.getUserId();
+        Boolean isRenew = view.getIsRenew();
+        if (ObjectUtil.hasEmpty(relationId, userId, isRenew)) {
+            throw BusinessRuntimeException.getInstance("参数错误");
+        }
+        GroupsRelationIndependentRenew groupsRelationIndependentRenew = Optional.ofNullable(groupsRelationIndependentRenewMapper.selectOne(Wrappers.lambdaQuery(GroupsRelationIndependentRenew.class).eq(GroupsRelationIndependentRenew::getUserId, userId)
+                .eq(GroupsRelationIndependentRenew::getRelationId, relationId).last("limit 1"))).orElse(new GroupsRelationIndependentRenew());
+        CmsUser cmsUser = cmsUserMapper.selectById(adminId);
+        if (cmsUser != null) {
+            groupsRelationIndependentRenew.setOperator(cmsUser.getNickname());
+        }
+        if (groupsRelationIndependentRenew.getId() == null) {
+            groupsRelationIndependentRenew.setRelationId(relationId);
+            groupsRelationIndependentRenew.setUserId(userId);
+            groupsRelationIndependentRenew.setIsRenew(isRenew);
+            groupsRelationIndependentRenewMapper.insert(groupsRelationIndependentRenew);
+        } else {
+            groupsRelationIndependentRenew.setIsRenew(isRenew);
+            groupsRelationIndependentRenewMapper.updateById(groupsRelationIndependentRenew);
+        }
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
+
+    /**
+     * 独立账号续费记录
+     */
+    @GetMapping("/get/independent/renew/record")
+    public Result<SearchResult<OrderDonRenewView>> getIndependentRenewRecord(Long userId, Long relationId) {
+        if (ObjectUtil.hasEmpty(relationId, userId)) {
+            throw BusinessRuntimeException.getInstance("参数错误");
+        }
+        SearchResult<OrderDonRenewView> search = beanSearcher.search(OrderDonRenewView.class, MapUtils.flatBuilder(request.getParameterMap())
+                .field(OrderDonRenewView::getUserId, userId)
+                .field(OrderDonRenewView::getRelationId, relationId)
+                .field(OrderDonRenewView::getOrderType, 2)
+                .build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+    }
 }