Commit 7abfefba authored by shengnan hu's avatar shengnan hu
Browse files

init

parents
Pipeline #281 passed with stage
in 1 minute and 55 seconds
<?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>mall4cloud-api</artifactId>
<groupId>com.mall4j.cloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mall4cloud-api-user</artifactId>
<packaging>jar</packaging>
<description>用户对内接口</description>
<dependencies>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-common-order</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
package com.mall4j.cloud.api.user.feign;
import com.mall4j.cloud.common.feign.FeignInsideAuthConfig;
import com.mall4j.cloud.common.order.vo.UserAddrVO;
import com.mall4j.cloud.common.response.ServerResponseEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 用户地址feign连接
* @author FrozenWatermelon
* @date 2020/12/07
*/
@FeignClient(value = "mall4cloud-user",contextId = "userAddr")
public interface UserAddrFeignClient {
/**
* 根据地址id获取用户地址信息
* @param addrId 地址id
* @return 用户地址信息
*/
@GetMapping(value = FeignInsideAuthConfig.FEIGN_INSIDE_URL_PREFIX + "/userAddr/getUserAddrByAddrId")
ServerResponseEntity<UserAddrVO> getUserAddrByAddrId(@RequestParam("addrId") Long addrId);
}
package com.mall4j.cloud.api.user.feign;
import com.mall4j.cloud.api.user.vo.UserApiVO;
import com.mall4j.cloud.common.feign.FeignInsideAuthConfig;
import com.mall4j.cloud.common.response.ServerResponseEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 用户信息feign连接
* @author FrozenWatermelon
* @date 2020/12/07
*/
@FeignClient(value = "mall4cloud-user",contextId = "user")
public interface UserFeignClient {
/**
* 根据用户id列表,获取用户信息
* @param userIds 用户id列表
* @return 用户列表信息
*/
@GetMapping(value = FeignInsideAuthConfig.FEIGN_INSIDE_URL_PREFIX + "/user/getUserByUserIds")
ServerResponseEntity<List<UserApiVO>> getUserByUserIds(@RequestParam("userId") List<Long> userIds);
/**
* 获取用户数据
* @param userId
* @return
*/
@GetMapping(value = FeignInsideAuthConfig.FEIGN_INSIDE_URL_PREFIX + "/user/getUserData")
ServerResponseEntity<UserApiVO> getUserData(Long userId);
}
package com.mall4j.cloud.api.user.vo;
import com.mall4j.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
/**
* 省市区地区信息VO
*
* @author YXF
* @date 2020-11-25 15:16:14
*/
public class AreaVO extends BaseVO{
private static final long serialVersionUID = 1L;
private Long areaId;
@Schema(description = "地址" )
private String areaName;
@Schema(description = "上级地址" )
private Long parentId;
@Schema(description = "等级(从1开始)" )
private Integer level;
private Integer check;
/**
* 下级地址集合
*/
private List<AreaVO> areas;
/**
* 下级地址的areaId
*/
private List<Long> areaIds;
public Long getAreaId() {
return areaId;
}
public Integer getCheck() {
return check;
}
public void setCheck(Integer check) {
this.check = check;
}
public List<AreaVO> getAreas() {
return areas;
}
public void setAreas(List<AreaVO> areas) {
this.areas = areas;
}
public List<Long> getAreaIds() {
return areaIds;
}
public void setAreaIds(List<Long> areaIds) {
this.areaIds = areaIds;
}
public void setAreaId(Long areaId) {
this.areaId = areaId;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
@Override
public String toString() {
return "AreaDTO{" +
"areaId=" + areaId +
", areaName='" + areaName + '\'' +
", parentId=" + parentId +
", level=" + level +
", check=" + check +
", areas=" + areas +
", areaIds=" + areaIds +
'}';
}
}
package com.mall4j.cloud.api.user.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mall4j.cloud.common.serializer.ImgJsonSerializer;
import com.mall4j.cloud.common.vo.BaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
/**
* 用户表VO
*
* @author YXF
* @date 2020-12-08 11:18:04
*/
public class UserApiVO extends BaseVO{
private static final long serialVersionUID = 1L;
@Schema(description = "ID" )
private Long userId;
@Schema(description = "用户昵称" )
private String nickName;
@Schema(description = "头像图片路径" )
@JsonSerialize(using = ImgJsonSerializer.class)
private String pic;
@Schema(description = "状态 1 正常 0 无效" )
private Integer status;
@Schema(description = "是否创建过店铺" )
/**
* openId list
*/
private List<String> bizUserIdList;
public List<String> getBizUserIdList() {
return bizUserIdList;
}
public void setBizUserIdList(List<String> bizUserIdList) {
this.bizUserIdList = bizUserIdList;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getPic() {
return pic;
}
public void setPic(String pic) {
this.pic = pic;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
@Override
public String toString() {
return "UserApiVO{" +
"userId=" + userId +
",createTime=" + createTime +
",updateTime=" + updateTime +
",nickName=" + nickName +
",pic=" + pic +
",status=" + status +
'}';
}
}
<?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>mall4cloud</artifactId>
<groupId>com.mall4j.cloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mall4cloud-api</artifactId>
<packaging>pom</packaging>
<description>mall4cloud 内网接口</description>
<modules>
<module>mall4cloud-api-auth</module>
<module>mall4cloud-api-biz</module>
<module>mall4cloud-api-rbac</module>
<module>mall4cloud-api-leaf</module>
<module>mall4cloud-api-product</module>
<module>mall4cloud-api-multishop</module>
<module>mall4cloud-api-user</module>
<module>mall4cloud-api-order</module>
<module>mall4cloud-api-search</module>
<module>mall4cloud-api-platform</module>
</modules>
</project>
<?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>mall4cloud</artifactId>
<groupId>com.mall4j.cloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mall4cloud-auth</artifactId>
<packaging>jar</packaging>
<description>mall4cloud 授权校验模块</description>
<dependencies>
<!--注册中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-common-database</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-common-cache</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-common-security</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.anji-plus</groupId>
<artifactId>captcha</artifactId>
</dependency>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-api-platform</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.mall4j.cloud</groupId>
<artifactId>mall4cloud-api-biz</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
package com.mall4j.cloud.auth;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* @author FrozenWatermelon
* @date 2020/7/8
*/
@SpringBootApplication(scanBasePackages = { "com.mall4j.cloud" })
@EnableFeignClients(basePackages = {"com.mall4j.cloud.api.**.feign"})
public class AuthApplication {
public static void main(String[] args) {
SpringApplication.run(AuthApplication.class, args);
}
}
package com.mall4j.cloud.auth.adapter;
import com.anji.captcha.service.CaptchaCacheService;
import com.mall4j.cloud.common.cache.util.RedisUtil;
/**
* 适配验证码在redis的存储
*
* @author FrozenWatermelon
* @date 2020/8/12
*/
public class CaptchaCacheServiceRedisImpl implements CaptchaCacheService {
@Override
public void set(String key, String value, long expiresInSeconds) {
RedisUtil.set(key, value, expiresInSeconds);
}
@Override
public boolean exists(String key) {
return RedisUtil.hasKey(key);
}
@Override
public void delete(String key) {
RedisUtil.del(key);
}
@Override
public String get(String key) {
return RedisUtil.get(key);
}
@Override
public String type() {
return "redis";
}
}
package com.mall4j.cloud.auth.config;
import cn.hutool.core.io.FileUtil;
import com.anji.captcha.model.common.CaptchaTypeEnum;
import com.anji.captcha.model.common.Const;
import com.anji.captcha.service.CaptchaService;
import com.anji.captcha.service.impl.CaptchaServiceFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
/**
* @author FrozenWatermelon
* @date 2020/8/12
*/
@Configuration
public class CaptchaConfig {
@Bean
public CaptchaService captchaService() {
Properties config = new Properties();
config.put(Const.CAPTCHA_CACHETYPE, "redis");
config.put(Const.CAPTCHA_WATER_MARK, "");
// 滑动验证
config.put(Const.CAPTCHA_TYPE, CaptchaTypeEnum.BLOCKPUZZLE.getCodeValue());
// config.put(Const.ORIGINAL_PATH_JIGSAW, FileUtil.getAbsolutePath("classpath:captcha"));
return CaptchaServiceFactory.getInstance(config);
}
}
package com.mall4j.cloud.auth.constant;
/**
* 统一账户信息状态
* @author FrozenWatermelon
* @date 2020/09/22
*/
public enum AuthAccountStatusEnum {
/**
* 启用
*/
ENABLE(1),
/**
* 禁用
*/
DISABLE(0),
/**
* 删除
*/
DELETE(-1)
;
private final Integer value;
public Integer value() {
return value;
}
AuthAccountStatusEnum(Integer value) {
this.value = value;
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment