提交 b58fb272 作者: Administrator

feat : 小程序用户访客相关接口

上级 f98380ae
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.appletUser;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.*;
import lombok.*;
import lombok.experimental.FieldDefaults;
import org.hibernate.annotations.Comment;
@Data
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Comment("小程序用户表")
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "BS_APPLET_USER")
public class AppletUser implements Serializable {
@Serial
private static final long serialVersionUID = 5188008300684723724L;
@Id
@Comment("用户唯一标识")
String openid;
@Comment("用户电话")
String mobile;
@Comment("最后登录时间")
LocalDateTime LastLoginTime;
@Comment("创建时间")
LocalDateTime createTime;
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.domain.appletUser;
import java.io.Serializable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
/**
* @author tzl
* 2022/4/22 13:55
*/
@Repository
public interface AppletUserRepository
extends JpaRepository<AppletUser, Serializable>, JpaSpecificationExecutor<AppletUser> {
@Query("SELECT COUNT(id) FROM AppletUser WHERE mobile=?1")
Integer countMobile(String mobile);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.appletUser;
import com.yiring.common.core.Result;
/**
* @author Administrator
* @version 1.0
* @description: 微信小程序用户
* @date 2022/4/24 9:22
*/
public interface AppletUserService {
/**
* 根据用户唯一标识获取手机号码,通过手机号码查询用户来访信息分页
* @author tzl
* @date 2022/4/24 9:34
* @param appid String
* @param secret String
* @param js_code String
* @param grant_type String
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result<String> selectMobile(String appid, String secret, String js_code, String grant_type);
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.service.appletUser.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.yiring.app.domain.appletUser.AppletUser;
import com.yiring.app.domain.appletUser.AppletUserRepository;
import com.yiring.app.feign.WxClient;
import com.yiring.app.service.appletUser.AppletUserService;
import com.yiring.common.core.Result;
import java.util.Optional;
import javax.annotation.Resource;
/**
* @author Administrator
* @version 1.0
* @description: TODO
* @date 2022/4/24 9:25
*/
public class AppletUserServiceImpl implements AppletUserService {
@Resource
AppletUserRepository appletUserRepository;
@Resource
WxClient wxClient;
@Override
public Result<String> selectMobile(String appid, String secret, String js_code, String grant_type) {
JSONObject jsonObject = wxClient.getOpenid(appid, secret, js_code, grant_type);
Object openid = jsonObject.get("openid");
if (StrUtil.isNotBlank(openid.toString())) {
Optional<AppletUser> optional = appletUserRepository.findById(openid.toString());
//如果该微信为第一次登录小程序
if (optional.isEmpty()) {
return Result.ok("绑定手机号码");
}
AppletUser appletUser = optional.get();
return Result.ok(appletUser.getMobile());
}
return null;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论