Commit b1a843e2 authored by m1991's avatar m1991

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	wisenergy-common/src/main/java/cn/wisenergy/common/utils/Result.java
#	wisenergy-service/src/main/java/cn/wisenergy/service/app/UserService.java
#	wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java
parents 750d2a2a 7ef1bfae
...@@ -9,7 +9,7 @@ COPY ./wisenergy-web-admin/target/shop-mall.jar /opt/ ...@@ -9,7 +9,7 @@ COPY ./wisenergy-web-admin/target/shop-mall.jar /opt/
#ADD hosts /tmp #ADD hosts /tmp
WORKDIR /opt WORKDIR /opt
EXPOSE 8080 EXPOSE 8997
ENV TZ=Asia/Shanghai ENV TZ=Asia/Shanghai
#ENV TZ=PRC #ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
......
...@@ -82,6 +82,7 @@ ...@@ -82,6 +82,7 @@
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-fileupload</groupId> <groupId>commons-fileupload</groupId>
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId> <groupId>org.mybatis.spring.boot</groupId>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<id column="id" property="id"/> <id column="id" property="id"/>
<result column="user_id" property="userId"/> <result column="user_id" property="userId"/>
<result column="password" property="password"/> <result column="password" property="password"/>
<result column="head_image" property="headImage"/>
<result column="user_level" property="userLevel"/> <result column="user_level" property="userLevel"/>
<result column="cross_border_line" property="crossBorderLine"/> <result column="cross_border_line" property="crossBorderLine"/>
<result column="id_card_number" property="idCardNumber"/> <result column="id_card_number" property="idCardNumber"/>
...@@ -27,18 +28,19 @@ ...@@ -27,18 +28,19 @@
</sql> </sql>
<sql id="cols_exclude_id"> <sql id="cols_exclude_id">
user_id,password, user_level,cross_border_line,id_card_number,fans_nickname,fans_id, invite_code, user_id,password, head_image,user_level,cross_border_line,id_card_number,fans_nickname,fans_id, invite_code,
be_invited_code,create_time,update_time be_invited_code,create_time,update_time
</sql> </sql>
<sql id="vals"> <sql id="vals">
#{userId},#{password},#{userLevel},#{crossBorderLine},#{idCardNumber},#{fansNickname},#{fansId},#{inviteCode}, #{userId},#{password},#{headImage},#{userLevel},#{crossBorderLine},#{idCardNumber},#{fansNickname},#{fansId},#{inviteCode},
#{beInvitedCode},now(),now() #{beInvitedCode},now(),now()
</sql> </sql>
<sql id="updateCondition"> <sql id="updateCondition">
<if test="userId != null">user_id = #{userId},</if> <if test="userId != null">user_id = #{userId},</if>
<if test="password != null">password =#{password},</if> <if test="password != null">password =#{password},</if>
<if test="headImage != null">head_image =#{headImage},</if>
<if test="userLevel != null">user_level =#{userLevel},</if> <if test="userLevel != null">user_level =#{userLevel},</if>
<if test="crossBorderLine != null">cross_border_line =#{crossBorderLine},</if> <if test="crossBorderLine != null">cross_border_line =#{crossBorderLine},</if>
<if test="idCardNumber != null">id_card_number = #{idCardNumber},</if> <if test="idCardNumber != null">id_card_number = #{idCardNumber},</if>
...@@ -53,6 +55,7 @@ ...@@ -53,6 +55,7 @@
<if test="id != null">id = #{id}</if> <if test="id != null">id = #{id}</if>
<if test="userId != null">and user_id = #{userId}</if> <if test="userId != null">and user_id = #{userId}</if>
<if test="password != null">and password =#{password}</if> <if test="password != null">and password =#{password}</if>
<if test="headImage != null">and head_image =#{headImage}</if>
<if test="userLevel != null">and user_level =#{userLevel}</if> <if test="userLevel != null">and user_level =#{userLevel}</if>
<if test="crossBorderLine != null">and cross_border_line =#{crossBorderLine}</if> <if test="crossBorderLine != null">and cross_border_line =#{crossBorderLine}</if>
<if test="idCardNumber != null">and id_card_number = #{idCardNumber}</if> <if test="idCardNumber != null">and id_card_number = #{idCardNumber}</if>
...@@ -97,6 +100,10 @@ ...@@ -97,6 +100,10 @@
from from
<include refid="table"/> <include refid="table"/>
<where> <where>
<if test="createTime != null">
YEAR(create_time) = YEAR(#{createTime})
AND MONTH(create_time) = MONTH(#{createTime})
</if>
</where> </where>
</select> </select>
...@@ -182,7 +189,7 @@ ...@@ -182,7 +189,7 @@
</where> </where>
</select> </select>
<!--根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID--> <!--根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID-->
<select id="BeInvitedCode1" resultType="java.lang.Integer"> <select id="beInvitedCode1" resultType="java.lang.Integer">
select select
id id
from from
......
...@@ -38,6 +38,12 @@ public class User extends Model<User> implements Serializable{ ...@@ -38,6 +38,12 @@ public class User extends Model<User> implements Serializable{
@ApiModelProperty(name = "password", value = "用户密码") @ApiModelProperty(name = "password", value = "用户密码")
private String password; private String password;
/**
* 用户头像
*/
@ApiModelProperty(name = "用户头像", value = "headImage")
private String headImage;
/** /**
* 用户会员等级 * 用户会员等级
......
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
*@ Description: 空投池Vo
*@ Author : 86187
*@ Date : 2021/3/6 10:29
* @author 86187
*/
@Data
@ApiModel("AerialDeliveryVo")
public class AerialDeliveryVo {
/**
* 总数
*/
@ApiModelProperty(value = "总数",name = "total")
private Integer total;
/**
* 用户列表
*/
@ApiModelProperty(value = "用户列表",name = "userPoolVos")
private List<UserPoolVo> userPoolVos;
}
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author 86187
* @ Description: 用户空投Vo
* @ Author : 86187
* @ Date : 2021/3/6 10:32
*/
@Data
@ApiModel("UserPoolVo")
public class UserPoolVo {
/**
* 用户id
*/
@ApiModelProperty(value = "用户id",name="userId")
private String userId;
/**
* 进入空投池时间
*/
@ApiModelProperty(value = "进入空投池时间",name="intoTime")
private Date intoTime;
/**
* 头像
*/
@ApiModelProperty(value = "头像",name="headImage")
private String headImage;
}
...@@ -2,29 +2,32 @@ package cn.wisenergy.service.app; ...@@ -2,29 +2,32 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.vo.AerialDeliveryVo;
import java.util.Map; import java.util.Map;
/** /**
* @author 86187
* @ Description: 用户接口 * @ Description: 用户接口
* @ Author : 86187 * @ Author : 86187
* @ Date : 2021/1/6 16:08 * @ Date : 2021/1/6 16:08
* @author 86187
*/ */
public interface UserService { public interface UserService {
/** /**
* 获取用户信息 * 获取用户信息
*
* @param userId 用户id * @param userId 用户id
* @return 用户信息 * @return 用户信息
*/ */
User getById(String userId); User getById(String userId);
R<Integer> getById1(String userId); R<Integer> getById1(String userId);
/** /**
* 获取用户信息 * 获取用户信息
*
* @param userId 用户id * @param userId 用户id
* @return 用户信息 * @return 用户信息
*/ */
...@@ -45,4 +48,19 @@ public interface UserService { ...@@ -45,4 +48,19 @@ public interface UserService {
// //
Integer getuserIdById(String userId); Integer getuserIdById(String userId);
/**
* 获取空投池列表
*
* @return 空投池列表
*/
R<AerialDeliveryVo> queryAerialDelivery();
/**
* 设置用户头像
* @param userId 用户id
* @param headImage 头像地址
* @return true or false
*/
R<Boolean> setHeadImage(String userId,String headImage);
} }
...@@ -4,6 +4,7 @@ import cn.wisenergy.common.utils.FileException; ...@@ -4,6 +4,7 @@ import cn.wisenergy.common.utils.FileException;
import cn.wisenergy.common.utils.FileUtils; import cn.wisenergy.common.utils.FileUtils;
import cn.wisenergy.common.utils.FrameGrabberKit; import cn.wisenergy.common.utils.FrameGrabberKit;
import cn.wisenergy.common.utils.StringUtil;
import cn.wisenergy.model.app.Page; import cn.wisenergy.model.app.Page;
import cn.wisenergy.model.app.shopZx; import cn.wisenergy.model.app.shopZx;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -269,15 +270,15 @@ public class UploadServiceImpl implements UploadService { ...@@ -269,15 +270,15 @@ public class UploadServiceImpl implements UploadService {
*/ */
private Path fileStorageLocation; // 文件在本地存储的地址 private Path fileStorageLocation; // 文件在本地存储的地址
public UploadServiceImpl(@Value("${file.upload.path}") String path) { public UploadServiceImpl(@Value("${file.upload.path:#{null}}") String path) {
this.fileStorageLocation = Paths.get(path).toAbsolutePath().normalize(); if (!StringUtil.isBlank(path)) {
try { this.fileStorageLocation = Paths.get(path).toAbsolutePath().normalize();
Files.createDirectories(this.fileStorageLocation); try {
} catch (IOException e) { Files.createDirectories(this.fileStorageLocation);
throw new FileException("Could not create the directory", e); } catch (IOException e) {
throw new FileException("Could not create the directory", e);
}
} }
} }
/** /**
......
...@@ -8,11 +8,14 @@ import cn.wisenergy.mapper.UsersMapper; ...@@ -8,11 +8,14 @@ import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.RecommendUser; import cn.wisenergy.model.app.RecommendUser;
import cn.wisenergy.model.app.TeamUserInfo; import cn.wisenergy.model.app.TeamUserInfo;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.vo.AerialDeliveryVo;
import cn.wisenergy.model.vo.UserPoolVo;
import cn.wisenergy.service.app.UserService; import cn.wisenergy.service.app.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sun.xml.internal.bind.v2.TODO; import com.sun.xml.internal.bind.v2.TODO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -175,6 +178,54 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -175,6 +178,54 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
return null; return null;
} }
@Override
public R<AerialDeliveryVo> queryAerialDelivery() {
log.info("shop-mall[]UserServiceImpl[]queryAerialDelivery[]input.method");
//获取本月新注册用户
Map<String, Object> map = new HashMap<>(4);
map.put("createTime", new Date());
List<User> list = usersMapper.getList(map);
if (CollectionUtils.isEmpty(list)) {
return R.ok(new AerialDeliveryVo());
}
AerialDeliveryVo aerialDeliveryVo = new AerialDeliveryVo();
List<UserPoolVo> userPoolVoList = new ArrayList<>();
for (User user : list) {
UserPoolVo userPoolVo = new UserPoolVo();
userPoolVo.setUserId(user.getUserId());
userPoolVo.setHeadImage(user.getHeadImage());
userPoolVo.setIntoTime(user.getCreateTime());
userPoolVoList.add(userPoolVo);
}
aerialDeliveryVo.setTotal(list.size());
aerialDeliveryVo.setUserPoolVos(userPoolVoList);
return R.ok(aerialDeliveryVo);
}
@Override
public R<Boolean> setHeadImage(String userId, String headImage) {
log.info("shop-mall[]UserServiceImpl[]setHeadImage[]input.param.userId,headImage:" + userId, headImage);
if (StringUtils.isBlank(userId) || StringUtils.isBlank(headImage)) {
return R.error("入参不能为空!");
}
//获取用户信息
User user = usersMapper.getByUserId(userId);
if (null == user) {
return R.error("用户信息不存在!");
}
//添加头像
user.setHeadImage(headImage);
int count = usersMapper.edit(user);
if (count == 0) {
return R.error("设置头像失败!");
}
return R.ok(0, true);
}
//私有构造方法-传入被邀请码 //私有构造方法-传入被邀请码
private R teamgg(String beInvitedCode) { private R teamgg(String beInvitedCode) {
//用户的被邀请码,查询到推荐人用户,根据推荐人用户的邀请码查询/修改 //用户的被邀请码,查询到推荐人用户,根据推荐人用户的邀请码查询/修改
......
...@@ -10,91 +10,4 @@ ...@@ -10,91 +10,4 @@
</configuration> </configuration>
</facet> </facet>
</component> </component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="wisenergy-mapper" />
<orderEntry type="module" module-name="wisenergy-model" />
<orderEntry type="module" module-name="wisenergy-common" />
<orderEntry type="library" name="Maven: com.hikvision.ga:artemis-http-client:1.1.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains:annotations:20.1.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.5.3" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.5" level="project" />
<orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.33.0" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-util:0.33.0" level="project" />
<orderEntry type="library" name="Maven: io.opentracing:opentracing-noop:0.33.0" level="project" />
<orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.11.33.ALL" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.6.0" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.11.0" level="project" />
<orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-apache-httpclient:0.2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpmime:4.5.8" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.13" level="project" />
<orderEntry type="library" name="Maven: com.itextpdf:itext-asian:5.2.0" level="project" />
<orderEntry type="library" name="Maven: com.youzan.cloud:open-sdk-core:1.0.7-RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.youzan.cloud:open-sdk-gen:1.0.7.78771202102051104-RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.youzan.cloud:open-sdk-api:1.0.7-RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.youzan.cloud:open-sdk-common:1.0.7-RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-pool:commons-pool:1.6" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.11" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.8" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:22.0" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.0.18" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.68" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel:2.2.6" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.17" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.04" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
<orderEntry type="library" name="Maven: org.ehcache:ehcache:3.6.3" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco:javacv:0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:opencv:2.4.9-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:ffmpeg:2.2.1-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:flycapture:1.7.17-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:libdc1394:2.2.2-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:libfreenect:0.4-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:videoinput:0.200-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:artoolkitplus:2.3.0-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:opencv:windows-x86_64:2.4.9-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:ffmpeg:windows-x86_64:2.2.1-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:flycapture:windows-x86_64:1.7.17-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:libdc1394:windows-x86_64:2.2.2-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:libfreenect:windows-x86_64:0.4-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:videoinput:windows-x86_64:0.200-0.8" level="project" />
<orderEntry type="library" name="Maven: org.bytedeco.javacpp-presets:artoolkitplus:windows-x86_64:2.3.0-0.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.1.9" level="project" />
</component>
</module> </module>
\ No newline at end of file
...@@ -15,6 +15,10 @@ ...@@ -15,6 +15,10 @@
<!-- 项目依赖 --> <!-- 项目依赖 -->
<dependencies> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 模块依赖 --> <!-- 模块依赖 -->
<dependency> <dependency>
<groupId>cn.wisenergy</groupId> <groupId>cn.wisenergy</groupId>
......
package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
/**
* @author 86187
* @ Description:
* @ Author : 86187
* @ Date : 2021/2/3 17:05
*/
@Api(tags = "图片上传")
@RestController
@RequestMapping("/pic")
@Slf4j
public class FileUploadController {
/**
* 请求 url 中的资源映射,不推荐写死在代码中,最好提供可配置,如 /upload_flowChart/**
*/
@Value("${uploadFile.resourceHandler}")
private String resourceHandler;
/**
* 上传文件保存的本地目录,使用@Value获取全局配置文件中配置的属性值,如 D:/java/upload_flowChart/
*/
@Value("${uploadFile.location}")
private String uploadImagesLocation;
/**
* 允许上传的格式
*/
private static final String[] IMAGE_TYPE = new String[]{".bmp", ".jpg", ".jpeg", ".gif", ".png"};
@ApiOperation(value = "文件上传", notes = "文件上传")
@PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
public R file(
@ApiParam(required = true, value = "上传文件")
@RequestParam("file") MultipartFile file,
HttpServletRequest request) {
boolean isLegal = true;
if (file.isEmpty()) {
// 上传文件为空
return R.error("上传文件不能为空");
}
for (String type : IMAGE_TYPE) {
if (StringUtils.endsWithIgnoreCase(file.getOriginalFilename(), type)) {
isLegal = false;
break;
}
}
if (isLegal) {
return R.error("上传文件类型不符合");
}
File folder = new File(uploadImagesLocation);
if (!folder.exists()) {
folder.mkdirs();
}
String oldName = file.getOriginalFilename();
String newName = UUID.randomUUID().toString().substring(4,9) + oldName;
try {
file.transferTo(new File(folder, newName));
String url = "/upload_flowChart/" + newName;
return R.ok(200, url);
} catch (IOException e) {
e.printStackTrace();
}
return R.error("上传文件失败!");
}
}
...@@ -29,7 +29,7 @@ import java.util.Map; ...@@ -29,7 +29,7 @@ import java.util.Map;
@Slf4j @Slf4j
@RequestMapping("/api/user") @RequestMapping("/api/user")
@RestController @RestController
public class loginController { public class LoginController {
@Autowired @Autowired
private RedisUtils redisUtils; private RedisUtils redisUtils;
......
...@@ -10,7 +10,10 @@ import cn.wisenergy.model.app.RecommendUser; ...@@ -10,7 +10,10 @@ import cn.wisenergy.model.app.RecommendUser;
import cn.wisenergy.model.app.TeamUserInfo; import cn.wisenergy.model.app.TeamUserInfo;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UsersDto; import cn.wisenergy.model.app.UsersDto;
import cn.wisenergy.model.dto.WithdrawBankDto;
import cn.wisenergy.model.vo.AerialDeliveryVo;
import cn.wisenergy.model.vo.UserAndRecommendVo; import cn.wisenergy.model.vo.UserAndRecommendVo;
import cn.wisenergy.model.vo.WithdrawalRecordVo;
import cn.wisenergy.service.app.RecommendUserService; import cn.wisenergy.service.app.RecommendUserService;
import cn.wisenergy.service.app.TeamUserInfoService; import cn.wisenergy.service.app.TeamUserInfoService;
import cn.wisenergy.service.app.UserForestStatusService; import cn.wisenergy.service.app.UserForestStatusService;
...@@ -23,8 +26,10 @@ import com.alibaba.druid.sql.ast.statement.SQLIfStatement; ...@@ -23,8 +26,10 @@ import com.alibaba.druid.sql.ast.statement.SQLIfStatement;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -71,7 +76,7 @@ public class UserController extends BaseController { ...@@ -71,7 +76,7 @@ public class UserController extends BaseController {
@ApiOperation(value = "获取用户信息", notes = "获取用户信息", httpMethod = "GET") @ApiOperation(value = "获取用户信息", notes = "获取用户信息", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String") @ApiImplicitParam(name = "userId", value = "用户id", dataType = "String")
@GetMapping("/getByUserId") @GetMapping("/getByUserId")
public User getByUserId(String userId){ public User getByUserId(String userId) {
return userService.getById(userId); return userService.getById(userId);
} }
...@@ -99,8 +104,8 @@ public class UserController extends BaseController { ...@@ -99,8 +104,8 @@ public class UserController extends BaseController {
@ApiOperation(value = "获取用户森林状态接口", notes = "获取用户森林状态接口", httpMethod = "GET") @ApiOperation(value = "获取用户森林状态接口", notes = "获取用户森林状态接口", httpMethod = "GET")
@GetMapping("/forestStatus") @GetMapping("/forestStatus")
public R<Map> forestStatus(String userId){ public R<Map> forestStatus(String userId) {
if (null == userId){ if (null == userId) {
return R.error("入参为空"); return R.error("入参为空");
} }
...@@ -108,34 +113,60 @@ public class UserController extends BaseController { ...@@ -108,34 +113,60 @@ public class UserController extends BaseController {
Map userForestStatus = userForestStatusService.getUserForestStatus(userId); Map userForestStatus = userForestStatusService.getUserForestStatus(userId);
return R.ok(userForestStatus); return R.ok(userForestStatus);
} catch (Exception e) { } catch (Exception e) {
return R.error(1,"请重新尝试"); return R.error(1, "请重新尝试");
} }
} }
@ApiOperation(value = "获取用户我的直推信息", notes = "获取用户我的直推信息", httpMethod = "GET") @ApiOperation(value = "获取用户我的直推信息", notes = "获取用户我的直推信息", httpMethod = "GET")
@GetMapping("/myRecommend") @GetMapping("/myRecommend")
public R<Map> getMyRecommend(String userId){ public R<Map> getMyRecommend(String userId) {
int userLevel = userService.getByUserId(userId).getUserLevel(); int userLevel = userService.getByUserId(userId).getUserLevel();
RecommendUser myRecommed = recommendUserService.getMyRecommed(userId); RecommendUser myRecommed = recommendUserService.getMyRecommed(userId);
Map myRecommedMap = new HashMap(); Map myRecommedMap = new HashMap();
myRecommedMap.put("userlevel",userLevel); myRecommedMap.put("userlevel", userLevel);
myRecommedMap.put("myRecommed",myRecommed); myRecommedMap.put("myRecommed", myRecommed);
return R.ok(myRecommedMap); return R.ok(myRecommedMap);
} }
@ApiOperation(value = "获取用户我的团队信息", notes = "获取用户我的团队推信息", httpMethod = "GET") @ApiOperation(value = "获取用户我的团队信息", notes = "获取用户我的团队推信息", httpMethod = "GET")
@GetMapping("/myTeam") @GetMapping("/myTeam")
public R<TeamUserInfo> getMyTeam(String userId){ public R<TeamUserInfo> getMyTeam(String userId) {
TeamUserInfo myTeam = teamUserInfoService.getOneById(userId); TeamUserInfo myTeam = teamUserInfoService.getOneById(userId);
return R.ok(myTeam); return R.ok(myTeam);
} }
@ApiOperation(value = "获取用户我的直推信息详情", notes = "获取用户我的直推信息详情", httpMethod = "GET") @ApiOperation(value = "获取用户我的直推信息详情", notes = "获取用户我的直推信息详情", httpMethod = "GET")
@GetMapping("/myRecommendInfo") @GetMapping("/myRecommendInfo")
public R<List<UserAndRecommendVo>> getMyRecommendInfo(@RequestParam("userid") String userid, @RequestParam("userlevel") int userlevel){ public R<List<UserAndRecommendVo>> getMyRecommendInfo(@RequestParam("userid") String userid, @RequestParam("userlevel") int userlevel) {
List<UserAndRecommendVo> myRecommendInfo = recommendUserService.getMyRecommendInfo(userid, userlevel); List<UserAndRecommendVo> myRecommendInfo = recommendUserService.getMyRecommendInfo(userid, userlevel);
return R.ok(myRecommendInfo); return R.ok(myRecommendInfo);
} }
@ApiOperation(value = "查询空投池信息", notes = "查询空投池信息", httpMethod = "GET")
@GetMapping("/queryAerialDelivery")
public R<AerialDeliveryVo> queryAerialDelivery(String userId, String yearMonth) {
log.info("shop-mall[]UserController[]getWithdrawalRecord[]input.param.userId:{},yearMonth:" + userId, yearMonth);
if (StringUtils.isBlank(yearMonth)) {
return R.error("入参不能为空!");
}
return userService.queryAerialDelivery();
}
@ApiOperation(value = "设置头像", notes = "设置头像", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "String"),
@ApiImplicitParam(name = "headImage", value = "头像Url", dataType = "String")
})
@PostMapping("/setHeadImage")
public R<Boolean> setHeadImage(String userId,String headImage) {
log.info("shop-mall[]UserController[]setHeadImage[]input.param.userId,headImage:" + userId, headImage);
if (StringUtils.isBlank(userId) || StringUtils.isBlank(headImage)) {
return R.error("入参不能为空!");
}
return userService.setHeadImage(userId,headImage);
}
} }
...@@ -21,6 +21,7 @@ import java.io.IOException; ...@@ -21,6 +21,7 @@ import java.io.IOException;
/** /**
* oauth2过滤器 * oauth2过滤器
*
* @author 86187 * @author 86187
*/ */
@Slf4j @Slf4j
...@@ -68,21 +69,25 @@ public class AuthFilter extends AuthenticatingFilter { ...@@ -68,21 +69,25 @@ public class AuthFilter extends AuthenticatingFilter {
*/ */
@Override @Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
//获取请求token,如果token不存在,直接返回40101 if (isLoginRequest(request, response) || isEnabled(request, response)) {
String token = getRequestToken((HttpServletRequest) request); return true;
if (StringUtils.isBlank(token)) { } else {
HttpServletResponse httpResponse = (HttpServletResponse) response; //获取请求token,如果token不存在,直接返回40101
httpResponse.setHeader("Access-Control-Allow-Credentials", "true"); String token = getRequestToken((HttpServletRequest) request);
httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin()); if (StringUtils.isBlank(token)) {
httpResponse.setCharacterEncoding("UTF-8"); HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin());
httpResponse.setCharacterEncoding("UTF-8");
Result result = new Result(); Result result = new Result();
result.setResult(Result.RESULT_FLG.FAIL.getValue()); result.setResult(Result.RESULT_FLG.FAIL.getValue());
result.setErrorCode(RespCodeEnum.NO_AUTH_REQUEST.getCode()); result.setErrorCode(RespCodeEnum.NO_AUTH_REQUEST.getCode());
result.setErrorMsg(RespCodeEnum.NO_AUTH_REQUEST.getMsg()); result.setErrorMsg(RespCodeEnum.NO_AUTH_REQUEST.getMsg());
String json = JSON.toJSONString(result); String json = JSON.toJSONString(result);
httpResponse.getWriter().print(json); httpResponse.getWriter().print(json);
return false; return false;
}
} }
return executeLogin(request, response); return executeLogin(request, response);
......
...@@ -3,9 +3,9 @@ spring: ...@@ -3,9 +3,9 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
druid: druid:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.97.107.31:3306/qunzhihe?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8 url: jdbc:mysql://8.131.244.76:3306/shop-mall?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
username: qunzhihe username: root
password: j2kRn8HjrPez7trw password: PRMHmHBr
initial-size: 10 initial-size: 10
max-active: 100 max-active: 100
min-idle: 10 min-idle: 10
...@@ -43,10 +43,10 @@ spring: ...@@ -43,10 +43,10 @@ spring:
max-file-size: 10MB max-file-size: 10MB
# 总限制 # 总限制
max-request-size: 20MB max-request-size: 20MB
# 192.168.110.165 adm4HYservice$ # 192.168.110.165 adm4HYservice$
redis: redis:
database: 0 database: 0
host: 39.97.107.31 host: 8.131.244.76
port: 6379 port: 6379
password: 1qaz@WSX # 密码(默认为空) password: 1qaz@WSX # 密码(默认为空)
timeout: 6000ms # 连接超时时长(毫秒) timeout: 6000ms # 连接超时时长(毫秒)
...@@ -77,4 +77,17 @@ sms: ...@@ -77,4 +77,17 @@ sms:
domain: dysmsapi.aliyuncs.com domain: dysmsapi.aliyuncs.com
version: 2017-05-25 version: 2017-05-25
action: SendSms action: SendSms
signName: 西田森生物科技 signName: 西田森生物科技
\ No newline at end of file
xxl:
job:
accessToken:
admin:
addresses: http://127.0.0.1:8090/job-admin
executor:
address:
appname: shop-mall
ip: 127.0.0.1
logpath: /home/meepo/logs/xxl-job/jobhandler
logretentiondays: 30
port: 9999
\ No newline at end of file
...@@ -3,9 +3,9 @@ spring: ...@@ -3,9 +3,9 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
druid: druid:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.97.107.31:3306/qunzhihe?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 url: jdbc:mysql://8.131.244.76:3306/shop-mall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: qunzhihe username: root
password: j2kRn8HjrPez7trw password: PRMHmHBr
initial-size: 10 initial-size: 10
max-active: 100 max-active: 100
min-idle: 10 min-idle: 10
...@@ -36,7 +36,7 @@ spring: ...@@ -36,7 +36,7 @@ spring:
redis: redis:
open: false # 是否开启redis缓存 true开启 false关闭 open: false # 是否开启redis缓存 true开启 false关闭
database: 0 database: 0
host: 39.97.107.31 host: 8.131.244.76
port: 6379 port: 6379
password: 1qaz@WSX password: 1qaz@WSX
timeout: 6000ms timeout: 6000ms
...@@ -46,21 +46,38 @@ spring: ...@@ -46,21 +46,38 @@ spring:
max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
max-idle: 10 # 连接池中的最大空闲连接 max-idle: 10 # 连接池中的最大空闲连接
min-idle: 5 # 连接池中的最小空闲连接 min-idle: 5 # 连接池中的最小空闲连接
#jwt: ###上传文件配置 :该配置可根据部署的系统或开发人员自定义路径,每次部署之前需要修改location
## # 加密秘钥 uploadFile:
## secret: f4e2e52034348f86b67cde581c0f9eb5 resourceHandler: /upload_flowChart/** #请求 url 中的资源映射也是保存到数据库中的父级路径
## # token有效时长,单位秒 location: /opt/images/upload_flowChart/ #自定义上传文件服务器硬盘保存路径 ,linux服务器保存路径 /home/changfa/app/wxbjgkpt/upload_flowChart/
## expire: 14400 file:
upload:
path: C:/aplus
jwt:
# 加密秘钥
secret: f4e2e52034348f86b67cde581c0f9eb5
# token有效时长,单位秒
expire: 14400
logging:
config: classpath:logback-spring.xml
sms:
accessKeyId: LTAI4G6xmYPhjrS18Bxz5Kqu
secret: l3ZuSn2XjsFZXaB3yb8O5ASRJh3DDe
regionId: cn-hangzhou
domain: dysmsapi.aliyuncs.com
version: 2017-05-25
action: SendSms
signName: 西田森生物科技
xxl: xxl:
job: job:
accessToken: accessToken:
admin: admin:
addresses: http://127.0.0.1:8090/job-admin addresses: http://172.24.252.165:8090/job-admin
executor: executor:
address: address:
appname: shop-mall appname: shop-mall
ip: 127.0.0.1 ip: 172.24.252.165
logpath: /home/meepo/logs/xxl-job/jobhandler logpath: /home/meepo/logs/xxl-job/jobhandler
logretentiondays: 30 logretentiondays: 30
port: 9999 port: 9999
...@@ -75,6 +75,7 @@ ...@@ -75,6 +75,7 @@
</dependencies> </dependencies>
<build> <build>
<finalName>xxl-job-2.3.0</finalName>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -23,9 +23,9 @@ mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml ...@@ -23,9 +23,9 @@ mybatis.mapper-locations=classpath:/mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model #mybatis.type-aliases-package=com.xxl.job.admin.core.model
### xxl-job, datasource ### xxl-job, datasource
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.url=jdbc:mysql://8.131.244.76:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=xxl_job spring.datasource.username=root
spring.datasource.password=6EmAWkCtwc5SjKxd spring.datasource.password=PRMHmHBr
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### datasource-pool ### datasource-pool
......
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