Pre Merge pull request !317 from tam/master
This commit is contained in:
commit
15efaf5d1e
@ -61,6 +61,19 @@
|
|||||||
<artifactId>ruoyi-generator</artifactId>
|
<artifactId>ruoyi-generator</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- wxJava -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.binarywang</groupId>
|
||||||
|
<artifactId>weixin-java-miniapp</artifactId>
|
||||||
|
<version>3.8.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-wxapi</artifactId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -2,6 +2,8 @@ package com.ruoyi.common.core.domain.model;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.WxUser;
|
||||||
import org.springframework.security.core.GrantedAuthority;
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
@ -71,6 +73,11 @@ public class LoginUser implements UserDetails
|
|||||||
*/
|
*/
|
||||||
private SysUser user;
|
private SysUser user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信用户信息
|
||||||
|
*/
|
||||||
|
private WxUser wxUser;
|
||||||
|
|
||||||
public Long getUserId()
|
public Long getUserId()
|
||||||
{
|
{
|
||||||
return userId;
|
return userId;
|
||||||
@ -119,17 +126,21 @@ public class LoginUser implements UserDetails
|
|||||||
this.permissions = permissions;
|
this.permissions = permissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LoginUser(WxUser wxUser){
|
||||||
|
this.wxUser = wxUser;
|
||||||
|
}
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@Override
|
@Override
|
||||||
public String getPassword()
|
public String getPassword()
|
||||||
{
|
{
|
||||||
return user.getPassword();
|
return user!=null ? user.getPassword() : wxUser.getPassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUsername()
|
public String getUsername()
|
||||||
{
|
{
|
||||||
return user.getUserName();
|
return user!=null ? user.getUserName() : wxUser.getOpenId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -258,6 +269,14 @@ public class LoginUser implements UserDetails
|
|||||||
this.user = user;
|
this.user = user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WxUser getWxUser() {
|
||||||
|
return wxUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWxUser(WxUser wxUser) {
|
||||||
|
this.wxUser = wxUser;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<? extends GrantedAuthority> getAuthorities()
|
public Collection<? extends GrantedAuthority> getAuthorities()
|
||||||
{
|
{
|
||||||
|
@ -58,6 +58,12 @@
|
|||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
<artifactId>ruoyi-system</artifactId>
|
<artifactId>ruoyi-system</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-wxapi</artifactId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
|
|||||||
// 过滤请求
|
// 过滤请求
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
||||||
.antMatchers("/login", "/register", "/captchaImage").anonymous()
|
.antMatchers("/login", "/register", "/captchaImage", "/api/wx/login").anonymous()
|
||||||
.antMatchers(
|
.antMatchers(
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
"/",
|
"/",
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package com.ruoyi.framework.web.service;
|
package com.ruoyi.framework.web.service;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.WxUser;
|
||||||
|
import com.ruoyi.common.utils.SecurityUtils;
|
||||||
|
import com.ruoyi.wxapi.service.IWxUserService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -30,9 +33,31 @@ public class UserDetailsServiceImpl implements UserDetailsService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SysPermissionService permissionService;
|
private SysPermissionService permissionService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IWxUserService wxUserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
|
||||||
{
|
{
|
||||||
|
if (StringUtils.isNotEmpty(username) && username.startsWith("wx_openid_")){
|
||||||
|
String openId = username.replace("wx_openid_", "");
|
||||||
|
WxUser wxUser = wxUserService.selectWxUserByOpenId(openId);
|
||||||
|
wxUser.setPassword(SecurityUtils.encryptPassword(wxUser.getOpenId()));
|
||||||
|
if (StringUtils.isNull(wxUser))
|
||||||
|
{
|
||||||
|
log.info("登录用户:{} 不存在.", openId);
|
||||||
|
throw new ServiceException("登录用户不存在");
|
||||||
|
}
|
||||||
|
else if ("3".equals(wxUser.getStatus()))
|
||||||
|
{
|
||||||
|
log.info("登录用户:{} 已被停用.", openId);
|
||||||
|
throw new ServiceException("对不起,您的账号已停用");
|
||||||
|
}
|
||||||
|
|
||||||
|
return new LoginUser(wxUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SysUser user = userService.selectUserByUserName(username);
|
SysUser user = userService.selectUserByUserName(username);
|
||||||
if (StringUtils.isNull(user))
|
if (StringUtils.isNull(user))
|
||||||
{
|
{
|
||||||
|
33
ruoyi-wxapi/pom.xml
Normal file
33
ruoyi-wxapi/pom.xml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>ruoyi</artifactId>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>ruoyi-wxapi</artifactId>
|
||||||
|
|
||||||
|
<description>
|
||||||
|
wxapi系统模块
|
||||||
|
</description>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.binarywang</groupId>
|
||||||
|
<artifactId>weixin-java-miniapp</artifactId>
|
||||||
|
<version>3.8.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ruoyi</groupId>
|
||||||
|
<artifactId>ruoyi-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
124
ruoyi-wxapi/src/main/java/com/ruoyi/wxapi/domain/WxApp.java
Normal file
124
ruoyi-wxapi/src/main/java/com/ruoyi/wxapi/domain/WxApp.java
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
package com.ruoyi.wxapi.domain;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
|
import com.ruoyi.common.annotation.Excel;
|
||||||
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序设置对象 wx_app
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
public class WxApp extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/** id */
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/** 小程序代号 */
|
||||||
|
@Excel(name = "小程序代号")
|
||||||
|
private String appCode;
|
||||||
|
|
||||||
|
/** 小程序名称 */
|
||||||
|
@Excel(name = "小程序名称")
|
||||||
|
private String appName;
|
||||||
|
|
||||||
|
/** 小程序id */
|
||||||
|
@Excel(name = "小程序id")
|
||||||
|
private String appId;
|
||||||
|
|
||||||
|
/** 小程序secret */
|
||||||
|
private String secret;
|
||||||
|
|
||||||
|
/** 服务器域名 */
|
||||||
|
@Excel(name = "服务器域名")
|
||||||
|
private String apiDomain;
|
||||||
|
|
||||||
|
/** 状态(1:正常,2:停用) */
|
||||||
|
@Excel(name = "状态(1:正常,2:停用)")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
public void setId(Long id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
public void setAppCode(String appCode)
|
||||||
|
{
|
||||||
|
this.appCode = appCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppCode()
|
||||||
|
{
|
||||||
|
return appCode;
|
||||||
|
}
|
||||||
|
public void setAppName(String appName)
|
||||||
|
{
|
||||||
|
this.appName = appName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppName()
|
||||||
|
{
|
||||||
|
return appName;
|
||||||
|
}
|
||||||
|
public void setAppId(String appId)
|
||||||
|
{
|
||||||
|
this.appId = appId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppId()
|
||||||
|
{
|
||||||
|
return appId;
|
||||||
|
}
|
||||||
|
public void setSecret(String secret)
|
||||||
|
{
|
||||||
|
this.secret = secret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSecret()
|
||||||
|
{
|
||||||
|
return secret;
|
||||||
|
}
|
||||||
|
public void setApiDomain(String apiDomain)
|
||||||
|
{
|
||||||
|
this.apiDomain = apiDomain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiDomain()
|
||||||
|
{
|
||||||
|
return apiDomain;
|
||||||
|
}
|
||||||
|
public void setStatus(String status)
|
||||||
|
{
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatus()
|
||||||
|
{
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
.append("id", getId())
|
||||||
|
.append("appCode", getAppCode())
|
||||||
|
.append("appName", getAppName())
|
||||||
|
.append("appId", getAppId())
|
||||||
|
.append("secret", getSecret())
|
||||||
|
.append("apiDomain", getApiDomain())
|
||||||
|
.append("status", getStatus())
|
||||||
|
.append("createBy", getCreateBy())
|
||||||
|
.append("createTime", getCreateTime())
|
||||||
|
.append("updateBy", getUpdateBy())
|
||||||
|
.append("updateTime", getUpdateTime())
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.ruoyi.wxapi.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.wxapi.domain.WxApp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序设置Mapper接口
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
public interface WxAppMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询小程序设置
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 小程序设置
|
||||||
|
*/
|
||||||
|
public WxApp selectWxAppById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序设置
|
||||||
|
*
|
||||||
|
* @param code 小程序code
|
||||||
|
* @return 小程序设置
|
||||||
|
*/
|
||||||
|
public WxApp selectWxAppByCode(String code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序设置列表
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 小程序设置集合
|
||||||
|
*/
|
||||||
|
public List<WxApp> selectWxAppList(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxApp(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxApp(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序设置
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxAppById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序设置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxAppByIds(Long[] ids);
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.ruoyi.wxapi.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.core.domain.entity.WxUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序用户Mapper接口
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
public interface WxUserMapper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
public WxUser selectWxUserById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param openId 小程序用户openId
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
public WxUser selectWxUserByOpenId(String openId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户列表
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 小程序用户集合
|
||||||
|
*/
|
||||||
|
public List<WxUser> selectWxUserList(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxUser(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxUser(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序用户
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxUserById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序用户
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxUserByIds(Long[] ids);
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
package com.ruoyi.wxapi.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import com.ruoyi.wxapi.domain.WxApp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序设置Service接口
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
public interface IWxAppService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询小程序设置
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 小程序设置
|
||||||
|
*/
|
||||||
|
public WxApp selectWxAppById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序设置列表
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 小程序设置集合
|
||||||
|
*/
|
||||||
|
public List<WxApp> selectWxAppList(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxApp(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxApp(WxApp wxApp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序设置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的小程序设置主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxAppByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序设置信息
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxAppById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取微信小程序服务
|
||||||
|
*
|
||||||
|
* @param code 小程序code
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public WxMaService getMaService(String code);
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package com.ruoyi.wxapi.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.core.domain.entity.WxUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序用户Service接口
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
public interface IWxUserService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
public WxUser selectWxUserById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param openId 小程序用户openId
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
public WxUser selectWxUserByOpenId(String openId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户列表
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 小程序用户集合
|
||||||
|
*/
|
||||||
|
public List<WxUser> selectWxUserList(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertWxUser(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int updateWxUser(WxUser wxUser);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序用户
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的小程序用户主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxUserByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序用户信息
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int deleteWxUserById(Long id);
|
||||||
|
}
|
@ -0,0 +1,125 @@
|
|||||||
|
package com.ruoyi.wxapi.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cn.binarywang.wx.miniapp.api.WxMaService;
|
||||||
|
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
|
||||||
|
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.wxapi.mapper.WxAppMapper;
|
||||||
|
import com.ruoyi.wxapi.domain.WxApp;
|
||||||
|
import com.ruoyi.wxapi.service.IWxAppService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序设置Service业务层处理
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WxAppServiceImpl implements IWxAppService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private WxAppMapper wxAppMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序设置
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 小程序设置
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxApp selectWxAppById(Long id)
|
||||||
|
{
|
||||||
|
return wxAppMapper.selectWxAppById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序设置列表
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 小程序设置
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WxApp> selectWxAppList(WxApp wxApp)
|
||||||
|
{
|
||||||
|
return wxAppMapper.selectWxAppList(wxApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertWxApp(WxApp wxApp)
|
||||||
|
{
|
||||||
|
wxApp.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return wxAppMapper.insertWxApp(wxApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序设置
|
||||||
|
*
|
||||||
|
* @param wxApp 小程序设置
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateWxApp(WxApp wxApp)
|
||||||
|
{
|
||||||
|
wxApp.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return wxAppMapper.updateWxApp(wxApp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序设置
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的小程序设置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxAppByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return wxAppMapper.deleteWxAppByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序设置信息
|
||||||
|
*
|
||||||
|
* @param id 小程序设置主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxAppById(Long id)
|
||||||
|
{
|
||||||
|
return wxAppMapper.deleteWxAppById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取微信小程序服务
|
||||||
|
*
|
||||||
|
* @param code 小程序code
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxMaService getMaService(String code) {
|
||||||
|
WxApp wxApp = wxAppMapper.selectWxAppByCode(code);
|
||||||
|
if (wxApp == null) {
|
||||||
|
throw new IllegalArgumentException(String.format("未找到对应appcode=[%s]的配置,请核实!", code));
|
||||||
|
}
|
||||||
|
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
|
||||||
|
config.setAppid(wxApp.getAppId());
|
||||||
|
config.setSecret(wxApp.getSecret());
|
||||||
|
// config.setToken(null);
|
||||||
|
// config.setAesKey(null);
|
||||||
|
// config.setMsgDataFormat(null);
|
||||||
|
|
||||||
|
WxMaService service = new WxMaServiceImpl();
|
||||||
|
service.setWxMaConfig(config);
|
||||||
|
return service;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,107 @@
|
|||||||
|
package com.ruoyi.wxapi.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import com.ruoyi.wxapi.mapper.WxUserMapper;
|
||||||
|
import com.ruoyi.common.core.domain.entity.WxUser;
|
||||||
|
import com.ruoyi.wxapi.service.IWxUserService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序用户Service业务层处理
|
||||||
|
*
|
||||||
|
* @author tgq
|
||||||
|
* @date 2021-09-01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WxUserServiceImpl implements IWxUserService
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private WxUserMapper wxUserMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxUser selectWxUserById(Long id)
|
||||||
|
{
|
||||||
|
return wxUserMapper.selectWxUserById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户
|
||||||
|
*
|
||||||
|
* @param openId 小程序用户openId
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public WxUser selectWxUserByOpenId(String openId) {
|
||||||
|
return wxUserMapper.selectWxUserByOpenId(openId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询小程序用户列表
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 小程序用户
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<WxUser> selectWxUserList(WxUser wxUser)
|
||||||
|
{
|
||||||
|
return wxUserMapper.selectWxUserList(wxUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int insertWxUser(WxUser wxUser)
|
||||||
|
{
|
||||||
|
wxUser.setCreateTime(DateUtils.getNowDate());
|
||||||
|
return wxUserMapper.insertWxUser(wxUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改小程序用户
|
||||||
|
*
|
||||||
|
* @param wxUser 小程序用户
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int updateWxUser(WxUser wxUser)
|
||||||
|
{
|
||||||
|
wxUser.setUpdateTime(DateUtils.getNowDate());
|
||||||
|
return wxUserMapper.updateWxUser(wxUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除小程序用户
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的小程序用户主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxUserByIds(Long[] ids)
|
||||||
|
{
|
||||||
|
return wxUserMapper.deleteWxUserByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除小程序用户信息
|
||||||
|
*
|
||||||
|
* @param id 小程序用户主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int deleteWxUserById(Long id)
|
||||||
|
{
|
||||||
|
return wxUserMapper.deleteWxUserById(id);
|
||||||
|
}
|
||||||
|
}
|
101
ruoyi-wxapi/src/main/resources/mapper/wxapi/WxAppMapper.xml
Normal file
101
ruoyi-wxapi/src/main/resources/mapper/wxapi/WxAppMapper.xml
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.wxapi.mapper.WxAppMapper">
|
||||||
|
|
||||||
|
<resultMap type="WxApp" id="WxAppResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="appCode" column="app_code" />
|
||||||
|
<result property="appName" column="app_name" />
|
||||||
|
<result property="appId" column="app_id" />
|
||||||
|
<result property="secret" column="secret" />
|
||||||
|
<result property="apiDomain" column="api_domain" />
|
||||||
|
<result property="status" column="status" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectWxAppVo">
|
||||||
|
select id, app_code, app_name, app_id, secret, api_domain, status, create_by, create_time, update_by, update_time from wx_app
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectWxAppList" parameterType="WxApp" resultMap="WxAppResult">
|
||||||
|
<include refid="selectWxAppVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="appCode != null and appCode != ''"> and app_code like concat('%', #{appCode}, '%')</if>
|
||||||
|
<if test="appName != null and appName != ''"> and app_name like concat('%', #{appName}, '%')</if>
|
||||||
|
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxAppById" parameterType="Long" resultMap="WxAppResult">
|
||||||
|
<include refid="selectWxAppVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxAppByCode" parameterType="String" resultMap="WxAppResult">
|
||||||
|
<include refid="selectWxAppVo"/>
|
||||||
|
where app_code = #{code}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertWxApp" parameterType="WxApp">
|
||||||
|
insert into wx_app
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="appCode != null">app_code,</if>
|
||||||
|
<if test="appName != null">app_name,</if>
|
||||||
|
<if test="appId != null">app_id,</if>
|
||||||
|
<if test="secret != null">secret,</if>
|
||||||
|
<if test="apiDomain != null">api_domain,</if>
|
||||||
|
<if test="status != null">status,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="appCode != null">#{appCode},</if>
|
||||||
|
<if test="appName != null">#{appName},</if>
|
||||||
|
<if test="appId != null">#{appId},</if>
|
||||||
|
<if test="secret != null">#{secret},</if>
|
||||||
|
<if test="apiDomain != null">#{apiDomain},</if>
|
||||||
|
<if test="status != null">#{status},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateWxApp" parameterType="WxApp">
|
||||||
|
update wx_app
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="appCode != null">app_code = #{appCode},</if>
|
||||||
|
<if test="appName != null">app_name = #{appName},</if>
|
||||||
|
<if test="appId != null">app_id = #{appId},</if>
|
||||||
|
<if test="secret != null">secret = #{secret},</if>
|
||||||
|
<if test="apiDomain != null">api_domain = #{apiDomain},</if>
|
||||||
|
<if test="status != null">status = #{status},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteWxAppById" parameterType="Long">
|
||||||
|
delete from wx_app where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteWxAppByIds" parameterType="String">
|
||||||
|
delete from wx_app where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
123
ruoyi-wxapi/src/main/resources/mapper/wxapi/WxUserMapper.xml
Normal file
123
ruoyi-wxapi/src/main/resources/mapper/wxapi/WxUserMapper.xml
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.ruoyi.wxapi.mapper.WxUserMapper">
|
||||||
|
|
||||||
|
<resultMap type="WxUser" id="WxUserResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="unionId" column="union_id" />
|
||||||
|
<result property="openId" column="open_id" />
|
||||||
|
<result property="nickName" column="nick_name" />
|
||||||
|
<result property="name" column="name" />
|
||||||
|
<result property="status" column="status" />
|
||||||
|
<result property="avatarUrl" column="avatar_url" />
|
||||||
|
<result property="gender" column="gender" />
|
||||||
|
<result property="country" column="country" />
|
||||||
|
<result property="province" column="province" />
|
||||||
|
<result property="city" column="city" />
|
||||||
|
<result property="mobile" column="mobile" />
|
||||||
|
<result property="appId" column="app_id" />
|
||||||
|
<result property="createBy" column="create_by" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateBy" column="update_by" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectWxUserVo">
|
||||||
|
select id, union_id, open_id, nick_name, name, status, avatar_url, gender, country, province, city, mobile, app_id, create_by, create_time, update_by, update_time from wx_user
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectWxUserList" parameterType="WxUser" resultMap="WxUserResult">
|
||||||
|
<include refid="selectWxUserVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="nickName != null and nickName != ''"> and nick_name like concat('%', #{nickName}, '%')</if>
|
||||||
|
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||||
|
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxUserById" parameterType="Long" resultMap="WxUserResult">
|
||||||
|
<include refid="selectWxUserVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWxUserByOpenId" parameterType="String" resultMap="WxUserResult">
|
||||||
|
<include refid="selectWxUserVo"/>
|
||||||
|
where open_id = #{openId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertWxUser" parameterType="WxUser" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into wx_user
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="unionId != null">union_id,</if>
|
||||||
|
<if test="openId != null and openId != ''">open_id,</if>
|
||||||
|
<if test="nickName != null and nickName != ''">nick_name,</if>
|
||||||
|
<if test="name != null and name != ''">name,</if>
|
||||||
|
<if test="status != null and status != ''">status,</if>
|
||||||
|
<if test="avatarUrl != null">avatar_url,</if>
|
||||||
|
<if test="gender != null">gender,</if>
|
||||||
|
<if test="country != null">country,</if>
|
||||||
|
<if test="province != null">province,</if>
|
||||||
|
<if test="city != null">city,</if>
|
||||||
|
<if test="mobile != null">mobile,</if>
|
||||||
|
<if test="appId != null">app_id,</if>
|
||||||
|
<if test="createBy != null">create_by,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateBy != null">update_by,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="unionId != null">#{unionId},</if>
|
||||||
|
<if test="openId != null and openId != ''">#{openId},</if>
|
||||||
|
<if test="nickName != null and nickName != ''">#{nickName},</if>
|
||||||
|
<if test="name != null and name != ''">#{name},</if>
|
||||||
|
<if test="status != null and status != ''">#{status},</if>
|
||||||
|
<if test="avatarUrl != null">#{avatarUrl},</if>
|
||||||
|
<if test="gender != null">#{gender},</if>
|
||||||
|
<if test="country != null">#{country},</if>
|
||||||
|
<if test="province != null">#{province},</if>
|
||||||
|
<if test="city != null">#{city},</if>
|
||||||
|
<if test="mobile != null">#{mobile},</if>
|
||||||
|
<if test="appId != null">#{appId},</if>
|
||||||
|
<if test="createBy != null">#{createBy},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateWxUser" parameterType="WxUser">
|
||||||
|
update wx_user
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="unionId != null">union_id = #{unionId},</if>
|
||||||
|
<if test="openId != null and openId != ''">open_id = #{openId},</if>
|
||||||
|
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
|
||||||
|
<if test="name != null and name != ''">name = #{name},</if>
|
||||||
|
<if test="status != null and status != ''">status = #{status},</if>
|
||||||
|
<if test="avatarUrl != null">avatar_url = #{avatarUrl},</if>
|
||||||
|
<if test="gender != null">gender = #{gender},</if>
|
||||||
|
<if test="country != null">country = #{country},</if>
|
||||||
|
<if test="province != null">province = #{province},</if>
|
||||||
|
<if test="city != null">city = #{city},</if>
|
||||||
|
<if test="mobile != null">mobile = #{mobile},</if>
|
||||||
|
<if test="appId != null">app_id = #{appId},</if>
|
||||||
|
<if test="createBy != null">create_by = #{createBy},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteWxUserById" parameterType="Long">
|
||||||
|
delete from wx_user where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteWxUserByIds" parameterType="String">
|
||||||
|
delete from wx_user where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
Loading…
x
Reference in New Issue
Block a user