Parcourir la source

fix 个人批发网站

zwhui il y a 1 an
Parent
commit
ce6f2d0258

+ 11 - 0
wholesale/src/main/java/com/yhlxj/dao/mapper/ChatgptUserMapper.java

@@ -0,0 +1,11 @@
+package com.yhlxj.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yhlxj.dao.model.entity.ChatgptUser;
+/**
+ * @author chan
+ * @date 2024/3/19 10:44
+ */
+public interface ChatgptUserMapper extends BaseMapper<ChatgptUser> {
+
+}

+ 11 - 0
wholesale/src/main/java/com/yhlxj/dao/mapper/ClaudeUserMapper.java

@@ -0,0 +1,11 @@
+package com.yhlxj.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yhlxj.dao.model.entity.ClaudeUser;
+
+/**
+ * @author chan
+ * @date 2024/8/8 19:00
+ */
+public interface ClaudeUserMapper extends BaseMapper<ClaudeUser> {
+}

+ 11 - 0
wholesale/src/main/java/com/yhlxj/dao/mapper/GrokUserMapper.java

@@ -0,0 +1,11 @@
+package com.yhlxj.dao.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yhlxj.dao.model.entity.GrokUser;
+
+/**
+ * @author chan
+ * @date 2025/3/20 18:32
+ */
+public interface GrokUserMapper extends BaseMapper<GrokUser> {
+}

+ 144 - 0
wholesale/src/main/java/com/yhlxj/dao/model/entity/ChatgptUser.java

@@ -0,0 +1,144 @@
+package com.yhlxj.dao.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ejlchina.searcher.bean.SearchBean;
+import com.yhlxj.dao.model.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chan
+ * @date 2024/3/18 17:10
+ */
+@Data
+@TableName("chatgpt_user")
+@SearchBean(tables = "chatgpt_user")
+public class ChatgptUser extends BaseEntity {
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 头像
+     */
+    private String img;
+
+    /**
+     * 用户凭证
+     */
+    @TableField("userToken")
+    private String userToken;
+
+    /**
+     * 过期时间
+     */
+    @TableField("expireTime")
+    private Date expireTime;
+
+    /**
+     * 是否为plus
+     */
+    @TableField("isPlus")
+    private Integer isPlus;
+
+    /**
+     * sessionId
+     */
+    @TableField("sessionId")
+    private Long sessionId;
+
+    /**
+     * 车票id
+     */
+    @TableField("relationId")
+    private Long relationId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 限制次数
+     */
+    private Integer limitNum;
+
+    /**
+     * 限制时间
+     */
+    private Long limitTime;
+
+    /**
+     * deepseek限制次数
+     */
+    private Integer dsLimitNum;
+
+    /**
+     * deepseek限制时间
+     */
+    private Long dsLimitTime;
+
+    /**
+     * 其他模型限制次数
+     */
+    private Integer otherLimitNum;
+
+    /**
+     * 其他模型限制时间
+     */
+    private Long otherLimitTime;
+
+    /**
+     * 是否为车队
+     */
+    private Boolean isCar;
+
+    /**
+     * 目前套餐包id
+     */
+    private Long packageId;
+
+    /**
+     * 是否封禁
+     */
+    private Boolean isBlock;
+
+    /**
+     * 清洗套餐包时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date clearPackageTime;
+
+    /**
+     * 续费升级订单id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewOrderId;
+
+    /**
+     * 目前续费规格id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewSkuId;
+
+    /**
+     * 续费升级过期时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date renewExpiryTime;
+
+    /**
+     * 用户目前模式 0旧版 1新版
+     */
+    private Integer model;
+
+    /**
+     * 是否是VIP
+     */
+    private Boolean isVip;
+}

+ 80 - 0
wholesale/src/main/java/com/yhlxj/dao/model/entity/ClaudeUser.java

@@ -0,0 +1,80 @@
+package com.yhlxj.dao.model.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.yhlxj.dao.model.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chan
+ * @date 2024/8/8 18:36
+ */
+@Data
+public class ClaudeUser extends BaseEntity {
+    private String name;
+
+    @DbField("userToken")
+    @TableField("userToken")
+    private String userToken;
+
+    @TableField("expireTime")
+    private Date expireTime;
+
+    @TableField("isPlus")
+    private Boolean isPlus;
+
+    private String remark;
+
+    /**
+     * 车票id
+     */
+    @TableField("relationId")
+    private Long relationId;
+
+    /**
+     * 限制次数
+     */
+    private Integer limitNum;
+
+    /**
+     * 限制时间
+     */
+    private Long limitTime;
+
+
+    /**
+     * 是否封禁
+     */
+    private Boolean isBlock;
+
+    /**
+     * 目前套餐包id
+     */
+    private Long packageId;
+
+    /**
+     * 续费升级订单id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewOrderId;
+
+    /**
+     * 目前续费规格id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long renewSkuId;
+
+    /**
+     * 续费升级过期时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date renewExpiryTime;
+
+    /**
+     * 是否是VIP
+     */
+    private Boolean isVip;
+}

+ 57 - 0
wholesale/src/main/java/com/yhlxj/dao/model/entity/GrokUser.java

@@ -0,0 +1,57 @@
+package com.yhlxj.dao.model.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ejlchina.searcher.bean.DbField;
+import com.yhlxj.dao.model.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author chan
+ * @date 2025/3/20 18:04
+ */
+@Data
+public class GrokUser extends BaseEntity {
+
+    private String name;
+
+    @DbField("userToken")
+    @TableField("userToken")
+    private String userToken;
+
+    @TableField("expireTime")
+    private Date expireTime;
+
+    @TableField("isPlus")
+    private Boolean isPlus;
+
+    private String remark;
+
+    /**
+     * 车票id
+     */
+    @TableField("relationId")
+    private Long relationId;
+
+    /**
+     * 限制次数
+     */
+    private Integer limitNum;
+
+    /**
+     * 限制时间
+     */
+    private Long limitTime;
+
+
+    /**
+     * 是否封禁
+     */
+    private Boolean isBlock;
+
+    /**
+     * 是否是VIP
+     */
+    private Boolean isVip;
+}

+ 70 - 0
wholesale/src/main/java/com/yhlxj/service/code/impl/ExchangeCodeServiceImpl.java

@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Objects;
 import java.util.UUID;
 
 /**
@@ -36,6 +37,12 @@ public class ExchangeCodeServiceImpl implements ExchangeCodeService {
 
 	private final WebInfoMapper webInfoMapper;
 
+	private final ChatgptUserMapper chatgptUserMapper;
+
+	private final ClaudeUserMapper claudeUserMapper;
+
+	private final GrokUserMapper grokUserMapper;
+
 
 	@Override
 	@Transactional(rollbackFor = Throwable.class)
@@ -64,6 +71,9 @@ public class ExchangeCodeServiceImpl implements ExchangeCodeService {
 		if (webWholesaleOrderDon == null || webWholesaleOrderDon.getStatus() != WebWholesaleOrderDon.Status.complete) {
 			throw BusinessRuntimeException.getInstance("兑换码不存在");
 		}
+		if (!webInfo.getId().equals(webWholesaleOrderDon.getUserId())) {
+			throw BusinessRuntimeException.getInstance("兑换码不存在");
+		}
 		int update = webWholesaleOrderDonCodeRelateMapper.update(null, Wrappers.lambdaUpdate(WebWholesaleOrderDonCodeRelate.class)
 				.set(WebWholesaleOrderDonCodeRelate::getDhUserId, userId)
 				.eq(WebWholesaleOrderDonCodeRelate::getId, webWholesaleOrderDonCodeRelate.getId())
@@ -91,5 +101,65 @@ public class ExchangeCodeServiceImpl implements ExchangeCodeService {
 		}
 		wholesaleUser.setExchangeCode(code);
 		wholesaleUserMapper.updateById(wholesaleUser);
+		createUser(wholesaleUser);
+	}
+
+    public void createUser(WholesaleUser wholesaleUser){
+        Long LIMIT_TIME = 24L;
+        Integer LIMIT_NUM = 9999;
+		String token = wholesaleUser.getToken();
+		ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getUserToken, token));
+		if (chatgptUser == null){
+			chatgptUser = new ChatgptUser();
+			chatgptUser.setIsCar(true);
+			chatgptUser.setLimitNum(LIMIT_NUM);
+			chatgptUser.setLimitTime(LIMIT_TIME);
+			chatgptUser.setDsLimitTime(LIMIT_TIME);
+			chatgptUser.setDsLimitNum(LIMIT_NUM);
+			chatgptUser.setOtherLimitNum(LIMIT_NUM);
+			chatgptUser.setOtherLimitTime(LIMIT_TIME);
+			chatgptUser.setExpireTime(wholesaleUser.getExpireTime());
+			chatgptUser.setIsPlus(1);
+			chatgptUser.setName(wholesaleUser.getNickname());
+			chatgptUser.setImg(wholesaleUser.getAvatar());
+			chatgptUser.setUserToken(token);
+			chatgptUserMapper.insert(chatgptUser);
+		}else {
+			chatgptUser.setName(wholesaleUser.getNickname());
+			chatgptUser.setImg(wholesaleUser.getAvatar());
+			chatgptUser.setExpireTime(wholesaleUser.getExpireTime());
+			chatgptUserMapper.updateById(chatgptUser);
+		}
+		ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class).eq(ClaudeUser::getUserToken, token));
+		if (claudeUser == null){
+			claudeUser = new ClaudeUser();
+			claudeUser.setLimitNum(LIMIT_NUM);
+			claudeUser.setLimitTime(LIMIT_TIME);
+			claudeUser.setExpireTime(wholesaleUser.getExpireTime());
+			claudeUser.setIsPlus(true);
+			claudeUser.setName(wholesaleUser.getNickname());
+			claudeUser.setUserToken(token);
+			claudeUserMapper.insert(claudeUser);
+		}else {
+			claudeUser.setName(wholesaleUser.getNickname());
+			claudeUser.setExpireTime(wholesaleUser.getExpireTime());
+			claudeUserMapper.updateById(claudeUser);
+		}
+		GrokUser grokUser = grokUserMapper.selectOne(Wrappers.lambdaQuery(GrokUser.class).eq(GrokUser::getUserToken, token));
+		if (grokUser == null){
+			grokUser = new GrokUser();
+			grokUser.setLimitNum(LIMIT_NUM);
+			grokUser.setLimitTime(LIMIT_TIME);
+			grokUser.setExpireTime(wholesaleUser.getExpireTime());
+			grokUser.setIsPlus(true);
+			grokUser.setName(wholesaleUser.getNickname());
+			grokUser.setUserToken(token);
+			grokUserMapper.insert(grokUser);
+		}else {
+			grokUser.setName(wholesaleUser.getNickname());
+			grokUser.setExpireTime(wholesaleUser.getExpireTime());
+			grokUserMapper.updateById(grokUser);
+		}
+
 	}
 }

+ 1 - 1
wholesale/src/main/java/com/yhlxj/service/wholesale/WholesaleUserService.java

@@ -8,7 +8,7 @@ import com.yhlxj.dao.model.entity.WholesaleUser;
  * @date 2025/6/9 15:44
  */
 public interface WholesaleUserService extends IService<WholesaleUser> {
-    WholesaleUser login(String username, String password) throws Exception;
+    WholesaleUser login(String prefix,String username, String password) throws Exception;
 
     WholesaleUser register(Long wholesaleId,String username, String password) throws Exception;
 }

+ 12 - 2
wholesale/src/main/java/com/yhlxj/service/wholesale/impl/WholesaleUserServiceImpl.java

@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.Codec;
+import com.yhlxj.dao.mapper.WebInfoMapper;
 import com.yhlxj.dao.mapper.WholesaleUserMapper;
 import com.yhlxj.dao.model.entity.WebInfo;
 import com.yhlxj.dao.model.entity.WholesaleUser;
 import com.yhlxj.service.wholesale.WholesaleUserService;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -16,14 +18,22 @@ import org.springframework.stereotype.Service;
  * @date 2025/6/9 15:45
  */
 @Service
+@RequiredArgsConstructor
 public class WholesaleUserServiceImpl extends ServiceImpl<WholesaleUserMapper, WholesaleUser> implements WholesaleUserService {
+    private final WebInfoMapper webInfoMapper;
     @Override
-    public WholesaleUser login(String username, String password) throws Exception {
+    public WholesaleUser login(String prefix,String username, String password) throws Exception {
+        WebInfo webInfo = webInfoMapper.selectOne(Wrappers.lambdaQuery(WebInfo.class).eq(WebInfo::getPrefix, prefix).last(" limit 1"));
+        if (null == webInfo) {
+            throw new BusinessRuntimeException("店铺不存在.");
+        }
         WholesaleUser wholesaleUser = baseMapper.selectOne(Wrappers.lambdaQuery(WholesaleUser.class).eq(WholesaleUser::getUsername, username));
         if (null == wholesaleUser) {
             throw new BusinessRuntimeException("用户不存在.");
         }
-
+        if (!webInfo.getId().equals(wholesaleUser.getWholesaleId())) {
+            throw new BusinessRuntimeException("用户不存在.");
+        }
         if (!StringUtils.equals(wholesaleUser.getPassword(), password)) {
             throw new BusinessRuntimeException("密码有误.");
         }

+ 8 - 1
wholesale/src/main/java/com/yhlxj/web/controller/login/WholesaleUserController.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.servlet.ServletUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.exception.BusinessRuntimeException;
@@ -21,6 +22,7 @@ import com.yhlxj.dao.model.view.WebInfoView;
 import com.yhlxj.service.wholesale.WebInfoService;
 import com.yhlxj.service.wholesale.WholesaleNoticeService;
 import com.yhlxj.service.wholesale.WholesaleUserService;
+import com.yhlxj.util.IpUtils;
 import com.yhlxj.web.util.StpUserUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -28,6 +30,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -47,6 +50,8 @@ public class WholesaleUserController {
 
     private final WebInfoService webInfoService;
 
+    private final HttpServletRequest request;
+
     private final HttpServletResponse response;
 
     private final WholesaleNoticeService wholesaleNoticeService;
@@ -58,6 +63,8 @@ public class WholesaleUserController {
      */
     @PostMapping("/login")
     public WholesaleUser login(@RequestBody @NotNull WholesaleUser wholesaleUser) throws Exception {
+        String prefix = request.getHeader("host").split("\\.")[0];
+
         String username = wholesaleUser.getUsername();
         if (StringUtils.isBlank(username)) {
             throw new BusinessRuntimeException("请填写帐号.");
@@ -68,7 +75,7 @@ public class WholesaleUserController {
             throw new BusinessRuntimeException("请填写密码.");
         }
 
-        WholesaleUser login = wholesaleUserService.login(username, password);
+        WholesaleUser login = wholesaleUserService.login(prefix,username, password);
 
         //写回登陆信息
         StpUserUtil.login(login.getId());