Commit 466add35 authored by liqin's avatar liqin 💬

Merge branch 'master' of http://111.203.232.171:8888/licc/shop-mall into master

 Conflicts:
	wisenergy-service/src/main/java/cn/wisenergy/service/app/UserService.java
	wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/UserServiceImpl.java
	wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/UserController.java
	wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/loginController.java
parents 980d15e3 4272103d
...@@ -155,6 +155,12 @@ ...@@ -155,6 +155,12 @@
<artifactId>javacv</artifactId> <artifactId>javacv</artifactId>
<version>0.8</version> <version>0.8</version>
</dependency> </dependency>
<!--druid数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
......
package cn.wisenergy.web.sms; package cn.wisenergy.common.enums;
/** /**
* 出参错误码列表 * 出参错误码列表
......
package cn.wisenergy.common.utils; package cn.wisenergy.common.utils;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
...@@ -8,6 +9,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -8,6 +9,7 @@ import javax.servlet.http.HttpServletRequest;
/** /**
* @author 86187 * @author 86187
*/ */
@Component
public class HttpContextUtils { public class HttpContextUtils {
public static HttpServletRequest getHttpServletRequest() { public static HttpServletRequest getHttpServletRequest() {
......
...@@ -73,6 +73,16 @@ public class R<T> implements Serializable { ...@@ -73,6 +73,16 @@ public class R<T> implements Serializable {
return new R<>(data, msg); return new R<>(data, msg);
} }
/**
* 请求成功,返回前端的信息
*
* @param msg 描述
* @return R
*/
public static <T> R<T> ok(String msg, int code) {
return new R<>(code, msg);
}
/** /**
* 请求成功,返回前端的信息 * 请求成功,返回前端的信息
* *
......
package cn.wisenergy.web.sms; package cn.wisenergy.common.utils;
import cn.wisenergy.common.enums.ResultEnum;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
package cn.wisenergy.web.sms; package cn.wisenergy.common.utils;
import cn.wisenergy.common.enums.ResultEnum;
import org.springframework.stereotype.Component;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 返回信息包装类 * 返回信息包装类
* Created by m1991 on 2021/2/28 23:08 * Created by m1991 on 2021/2/28 23:08
*/ */
@Component
public class Result<T> implements Serializable{ public class Result<T> implements Serializable{
public String code; public String code;
......
package cn.wisenergy.web.sms; package cn.wisenergy.common.utils;
import cn.wisenergy.common.enums.ResultEnum;
/** /**
* 用于返回Result的工具类 * 用于返回Result的工具类
......
This diff is collapsed.
...@@ -10,6 +10,7 @@ public interface RecommendUserMapper extends BaseMapper<RecommendUser> { ...@@ -10,6 +10,7 @@ public interface RecommendUserMapper extends BaseMapper<RecommendUser> {
RecommendUser getByUserId(String userId); RecommendUser getByUserId(String userId);
Integer zcByUserId(String userId); //根据用户推荐人的userid,查询数据库用户直推表,看推荐人用户是否存在
Integer zcByUserId(String userid);
} }
...@@ -5,9 +5,12 @@ import cn.wisenergy.model.app.TeamUserInfo; ...@@ -5,9 +5,12 @@ import cn.wisenergy.model.app.TeamUserInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* 团队Mapper
* @author zw * @author zw
*/ */
public interface TeamUserInfoMapper extends BaseMapper<TeamUserInfo> { public interface TeamUserInfoMapper extends BaseMapper<TeamUserInfo> {
TeamUserInfo getByUserId(String userId); TeamUserInfo getByUserId(String userid);
//根据userId查询用户是否存在
Integer czByUserId(String userId);
} }
...@@ -55,6 +55,20 @@ public interface UsersMapper extends BaseMapper<User> { ...@@ -55,6 +55,20 @@ public interface UsersMapper extends BaseMapper<User> {
*/ */
User getByUserId(@Param("userId") String userId); User getByUserId(@Param("userId") String userId);
/**
* 获取用户信息
* @param userId 用户id
* @return 用户信息
*/
Integer ByUserId(@Param("userId") String userId);
/**
* 获取用户信息
* @param
* @return 用户信息
*/
Integer beInvitedCode1(@Param("beInvitedCode") String beInvitedCode);
/** /**
* 获取用户信息 * 获取用户信息
* @param beInvitedCode 用户被邀请码 * @param beInvitedCode 用户被邀请码
...@@ -78,6 +92,9 @@ public interface UsersMapper extends BaseMapper<User> { ...@@ -78,6 +92,9 @@ public interface UsersMapper extends BaseMapper<User> {
//根据手机号查询用户Integer //根据手机号查询用户Integer
Integer queryUsersByPhone(@Param("userId")String userId); Integer queryUsersByPhone(@Param("userId")String userId);
//根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID
Integer inviteCodeBeInvitedCode(@Param("beInvitedCode")Integer beInvitedCode);
/** /**
* 用户注册 * 用户注册
* @param userId * @param userId
......
...@@ -78,8 +78,9 @@ ...@@ -78,8 +78,9 @@
from from
<include refid="table"/> <include refid="table"/>
<where> <where>
user_id=#{userId} user_id=#{userid}
</where> </where>
</select> </select>
<!--用户信息插入用户直推表-->
</mapper> </mapper>
\ No newline at end of file
...@@ -71,5 +71,16 @@ ...@@ -71,5 +71,16 @@
user_id=#{userId} user_id=#{userId}
</where> </where>
</select> </select>
<!--根据userid查询用户是否存在-->
<select id="czByUserId" resultType="cn.wisenergy.model.app.TeamUserInfo">
select
id
from
<include refid="table"/>
<where>
user_id=#{userid}
</where>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -109,6 +109,15 @@ ...@@ -109,6 +109,15 @@
user_id=#{userId} user_id=#{userId}
</where> </where>
</select> </select>
<select id="ByUserId" resultType="java.lang.Integer">
select
id
from
<include refid="table"/>
<where>
user_id=#{userId}
</where>
</select>
<!--查询全部--> <!--查询全部-->
<select id="findAll" resultType="cn.wisenergy.model.app.User"> <select id="findAll" resultType="cn.wisenergy.model.app.User">
...@@ -162,7 +171,28 @@ ...@@ -162,7 +171,28 @@
user_id=#{userId} user_id=#{userId}
</where> </where>
</select> </select>
<select id="getuserIdById" resultType="java.lang.Integer"> <!--根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID-->
<select id="inviteCodeBeInvitedCode" resultType="java.lang.Integer">
select
user_id
from
<include refid="table"/>
<where>
invite_code=#{beInvitedCode}
</where>
</select>
<!--根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID-->
<select id="BeInvitedCode1" resultType="java.lang.Integer">
select
id
from
<include refid="table"/>
<where>
invite_code=#{beInvitedCode}
</where>
</select>
<select id="getuserIdById" resultType="cn.wisenergy.model.app.User">
select select
id id
from from
......
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<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$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<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.slf4j:slf4j-api:1.7.26" 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" />
</component>
</module>
\ No newline at end of file
...@@ -17,14 +17,16 @@ public interface UserService { ...@@ -17,14 +17,16 @@ public interface UserService {
* @param userId 用户id * @param userId 用户id
* @return 用户信息 * @return 用户信息
*/ */
R<User> getById(String userId); User getById(String userId);
R<Integer> getById1(String userId);
/** /**
* 获取用户信息 * 获取用户信息
* @param userId 用户id * @param userId 用户id
* @return 用户信息 * @return 用户信息
*/ */
R<User> getByUserId(String userId); User getByUserId(String userId);
//根据手机号查询用户 //根据手机号查询用户
public User queryUsersByPhone(String id); public User queryUsersByPhone(String id);
...@@ -34,7 +36,7 @@ public interface UserService { ...@@ -34,7 +36,7 @@ public interface UserService {
/** /**
*用户注册 *用户注册
*/ */
Integer userByZx(String userId, String beInvitedCode); R userByZx(String userId, String beInvitedCode);
// Integer selectbyint(String userId,String beInvitedCode); // Integer selectbyint(String userId,String beInvitedCode);
// //
......
...@@ -3,7 +3,10 @@ package cn.wisenergy.service.app.impl; ...@@ -3,7 +3,10 @@ package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.common.utils.ShareCodeUtil; import cn.wisenergy.common.utils.ShareCodeUtil;
import cn.wisenergy.mapper.RecommendUserMapper; import cn.wisenergy.mapper.RecommendUserMapper;
import cn.wisenergy.mapper.TeamUserInfoMapper;
import cn.wisenergy.mapper.UsersMapper; import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.RecommendUser;
import cn.wisenergy.model.app.TeamUserInfo;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
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;
...@@ -12,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -12,6 +15,7 @@ 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;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -29,26 +33,37 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -29,26 +33,37 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Autowired @Autowired
private UsersMapper usersMapper; private UsersMapper usersMapper;
//直推表 //直推表userId
@Autowired @Autowired
private RecommendUserMapper recommendUserMapper; private RecommendUserMapper recommendUserMapper;
//团队表
@Autowired
private TeamUserInfoMapper teamUserInfoMapper;
@Override @Override
public R<User> getById(String userId) { public User getById(String userId) {
return R.ok(usersMapper.getByUserId(userId)); return null;
} }
@Override @Override
public R<User> getByUserId(String userId) { public R<Integer> getById1(String userId) {
return R.ok(usersMapper.getByUserId(userId));
return R.ok(usersMapper.ByUserId(userId));
}
@Override
public User getByUserId(String userId) {
return null;
} }
@Override @Override
public User queryUsersByPhone(String phone) { public User queryUsersByPhone(String phone) {
Map<String, Object> param = new HashMap<String, Object>(); Map<String,Object> param=new HashMap<String, Object>();
param.put("phone", phone); param.put("phone",phone);
List<User> usersList = usersMapper.getUsersListByMap(param); List<User> usersList=usersMapper.getUsersListByMap(param);
if (!CollectionUtils.isEmpty(usersList)) { if(!CollectionUtils.isEmpty(usersList)){
return usersList.get(0); return usersList.get(0);
} }
return null; return null;
...@@ -60,33 +75,85 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -60,33 +75,85 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
} }
@Override @Override
public Integer userByZx(String userId, String beInvitedCode) { public R userByZx(String userId, String beInvitedCode) {
/** /**
* 判断用户等级是否为空,空的话填写0 * 判断用户推荐人的邀请码是否为空,空的话填写1
*/ */
if (null == beInvitedCode || "".equals(beInvitedCode)) { if (null == beInvitedCode || "" == beInvitedCode) {
beInvitedCode = String.valueOf(1); beInvitedCode = String.valueOf(1);
} }
//插入用户手机号与推荐人邀请码 //用户的被邀请码,查询到推荐人用户,根据推荐人用户的邀请码查询/修改
User user=usersMapper.getByBeInvitedCode(beInvitedCode);
int ida = user.getId();
// 邀请人的被邀请码
String byqm= user.getBeInvitedCode();
// 通过被邀请码,比对本人邀请码查询本人id
int idb=usersMapper.beInvitedCode1(beInvitedCode);
//判断被邀请用户的创建时间是否比推荐人的用户时间晚
if(idb<ida){
return R.error(1,"邀请码无效,请重新填写!");
}
// 插入用户手机号与推荐人邀请码
usersMapper.insertbyint(userId, beInvitedCode); usersMapper.insertbyint(userId, beInvitedCode);
//根据插入的用户手机号,查询用户唯一ID
Integer yqm = usersMapper.ByUserId(userId);
//用户唯一ID调用生成6位邀请码 //用户唯一ID调用生成6位邀请码
String inviteCode = ShareCodeUtil.idToCode(usersMapper.getByUserId(userId).getId()); String inviteCode = ShareCodeUtil.idToCode(yqm);
//根据用户手机号,更新用户信息 //根据用户手机号,更新用户信息
User user = new User(); user = new User();
user.setInviteCode(inviteCode); user.setInviteCode(inviteCode);
user.setUserLevel(0); user.setUserLevel(0);
usersMapper.updateById(user); usersMapper.updateById(user);
//插入直推用户表
//插入直推用户表
RecommendUser recommendUser = new RecommendUser();
recommendUser.setUserId(userId);
recommendUserMapper.insert(recommendUser);
//插入用户团队表 //插入用户团队表
TeamUserInfo teamUserInfo = new TeamUserInfo();
teamUserInfo.setUserId(userId);
teamUserInfoMapper.insert(teamUserInfo);
//根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID=userid
String userid = String.valueOf(usersMapper.inviteCodeBeInvitedCode(Integer.valueOf(beInvitedCode)));
//根据用户推荐人的userid,查询数据库,看推荐人用户是否存在
Integer a = recommendUserMapper.zcByUserId(userid);
//根据邀请码查询推荐人的普通用户字段+1 //判断从数据库中是否存在该用户 如果存在,普通用户+1
Integer a = recommendUserMapper.zcByUserId(userId);
if (null != a && 0 != a) { if (null != a && 0 != a) {
return a; Integer normalUserNum = recommendUser.getNormalUserNum();
//更新直推表用户中的普通用户字段+1
recommendUser.setNormalUserNum(normalUserNum + 1);
//更新直推表用户数据
recommendUserMapper.updateById(recommendUser);
} else {
return R.error(1, "验证码无效");
} }
//根据邀请码递归所有团队成员普通用户+1 //递归向上修改团队用户信息表
return null; teamgg(beInvitedCode);
} return R.ok("直推表普通用户数量+1成功!",0);
}
//私有构造方法-传入被邀请码
private R teamgg(String beInvitedCode) {
//用户的被邀请码,查询到推荐人用户,根据推荐人用户的邀请码查询/修改
User user=usersMapper.getByBeInvitedCode(beInvitedCode);
//根据用户的推荐人邀请码比对推荐人的本人邀请码,查询推荐人的用户ID=userid
String userid = String.valueOf(usersMapper.inviteCodeBeInvitedCode(Integer.valueOf(beInvitedCode)));
//根据用户推荐人的userid,查询数据库,看推荐人用户是否存在
Integer c = teamUserInfoMapper.czByUserId(userid);
if (null != c && 0 != c) {
TeamUserInfo teamUserInfo = new TeamUserInfo();
int normalUserNum1 = teamUserInfo.getNormalUserNum();
//更新团队表用户中的普通用户字段+1
teamUserInfo.setNormalUserNum(normalUserNum1 + 1);
//更新团队表用户数据
teamUserInfoMapper.updateById(teamUserInfo);
} else {
return R.error(0, "验证码无效");
}
beInvitedCode=user.getBeInvitedCode();
//递归向上修改团队用户信息表
teamgg(beInvitedCode);
return R.ok("团队表普通用户数量+1成功!",0);
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</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>
\ No newline at end of file
package cn.wisenergy.web.admin.controller.app; package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.Constants; import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.RedisUtils; import cn.wisenergy.common.utils.*;
import cn.wisenergy.common.utils.SmsUtils;
import cn.wisenergy.common.utils.StringUtil;
import cn.wisenergy.web.sms.*; import cn.wisenergy.web.sms.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api(tags = "发送手机验证码 codeType 0注册/登录验证 1修改密码 2订单通知信息")
@Slf4j
@RequestMapping("/api/sms") @RequestMapping("/api/sms")
@RestController @RestController
public class SmsController { public class SmsController {
...@@ -33,27 +35,45 @@ public class SmsController { ...@@ -33,27 +35,45 @@ public class SmsController {
@ApiOperation(value = "发送验证码", notes = "发送验证码", httpMethod = "POST", produces = "application/json; charset=UTF-8") @ApiOperation(value = "发送验证码", notes = "发送验证码", httpMethod = "POST", produces = "application/json; charset=UTF-8")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "phone", value = "用户手机号", required = true, dataType = "String"), @ApiImplicitParam(name = "phone", value = "用户手机号", required = true, dataType = "String"),
@ApiImplicitParam(name = "codeType", value = "验证码", dataType = "Integer")}) @ApiImplicitParam(name = "codeType", value = "验证码类型用途 0注册/登录验证 1修改密码 2订单通知信息", dataType = "Integer")})
@RequestMapping("/verifyCode") @RequestMapping("/verifyCode")
public Result verifyCode(String phone,Integer codeType) throws Exception { public Result verifyCode(String phone, Integer codeType) throws Exception {
// //判断phone和codeType是否符合输入类型
// if(!phone.matches(Constants.RegConstant.PHONE_REGSTR)){
// throw new BaseException(ResultEnum.PHONE_ERROR);
// }
// if(codeType!=Constants.Sms.CodeType.LOGIN_OR_REGISTER && codeType!=Constants.Sms.CodeType.PASS_UPDATE && codeType!=Constants.Sms.CodeType.ORDER_NOTICE){
// throw new BaseException(ResultEnum.CODETYPE_ERROR);
// }
// String key= StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.SMS_PRIFIX,phone,codeType+"");
// //判断是否超过60S
// String oldCode=redisUtils.getValue(key);
// if(!StringUtils.isBlank(oldCode)){
// throw new BaseException(ResultEnum.CODESEND_ERROR);
// }
// //生成随机数
// String code= MathUtils.random();
// //保存至Redis
// redisUtils.set(key,code,Constants.Duration.MINUTE_INT);
//
//
// boolean flag=smsUtils.sendMessage(phone,Constants.Sms.TemplateCode.LOGIN_DL_REGISTER,code);
// return flag? ResultUtils.returnSuccess():ResultUtils.returnFail();
//判断phone和codeType是否符合输入类型 //判断phone和codeType是否符合输入类型
if(!phone.matches(Constants.RegConstant.PHONE_REGSTR)){ if(!phone.matches(Constants.RegConstant.PHONE_REGSTR)){
throw new BaseException(ResultEnum.PHONE_ERROR); throw new BaseException(ResultEnum.PHONE_ERROR);
} }
if(!codeType.equals(Constants.Sms.CodeType.LOGIN_OR_REGISTER) && !codeType.equals(Constants.Sms.CodeType.PASS_UPDATE) && !codeType.equals(Constants.Sms.CodeType.ORDER_NOTICE)){ if(codeType!=Constants.Sms.CodeType.LOGIN_OR_REGISTER && codeType!=Constants.Sms.CodeType.PASS_UPDATE && codeType!=Constants.Sms.CodeType.ORDER_NOTICE){
throw new BaseException(ResultEnum.CODETYPE_ERROR); throw new BaseException(ResultEnum.CODETYPE_ERROR);
} }
String key= StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.SMS_PRIFIX,phone,codeType+""); String key= StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.SMS_PRIFIX,phone,codeType+"");
//判断是否超过60S
String Codekey=redisUtils.getValue(key);
if(!StringUtils.isBlank(Codekey)){
throw new BaseException(ResultEnum.CODESEND_ERROR);
}
//生成随机数 //生成随机数
String code= MathUtils.random(); String code= MathUtils.random();
//保存至Redis //保存至Redis
redisUtils.set(Codekey,code,Constants.Duration.MINUTE_INT); redisUtils.set(key,code,Constants.Duration.MINUTE_INT);
boolean flag=smsUtils.sendMessage(phone,Constants.Sms.TemplateCode.LOGIN_DL_REGISTER,code);
boolean flag=smsUtils.sendMessage(phone,Constants.Sms.TemplateCode.LOGIN_SF_REGISTER,code);
return flag? ResultUtils.returnSuccess():ResultUtils.returnFail(); return flag? ResultUtils.returnSuccess():ResultUtils.returnFail();
} }
} }
\ No newline at end of file
package cn.wisenergy.web.admin.controller.app; package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.Result;
import cn.wisenergy.common.utils.ResultUtils;
import cn.wisenergy.common.utils.ShareCodeUtil;
import cn.wisenergy.common.utils.SmsUtils; import cn.wisenergy.common.utils.SmsUtils;
import cn.wisenergy.web.sms.Result;
import cn.wisenergy.web.sms.ResultUtils;
import cn.wisenergy.web.sms.ShareCodeUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
......
...@@ -3,21 +3,15 @@ package cn.wisenergy.web.admin.controller.app; ...@@ -3,21 +3,15 @@ package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.constant.RedisConsts; import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.utils.R; import cn.wisenergy.common.utils.R;
import cn.wisenergy.common.utils.RedisUtils; import cn.wisenergy.common.utils.RedisUtils;
import cn.wisenergy.common.utils.StringUtil;
import cn.wisenergy.model.app.User; import cn.wisenergy.model.app.User;
import cn.wisenergy.model.app.UsersDto;
import cn.wisenergy.service.app.UserService; import cn.wisenergy.service.app.UserService;
import cn.wisenergy.web.common.BaseController; import cn.wisenergy.web.common.BaseController;
import cn.wisenergy.web.config.JwtConfig; import cn.wisenergy.web.config.JwtConfig;
import cn.wisenergy.web.shiro.JwtUtil; import cn.wisenergy.web.shiro.JwtUtil;
import cn.wisenergy.web.sms.*;
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.beanutils.BeanUtils;
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.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -53,7 +47,7 @@ public class UserController extends BaseController { ...@@ -53,7 +47,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 R<User> getByUserId(String userId) { public User getByUserId(String userId){
return userService.getById(userId); return userService.getById(userId);
} }
...@@ -68,10 +62,12 @@ public class UserController extends BaseController { ...@@ -68,10 +62,12 @@ public class UserController extends BaseController {
if (null == id) { if (null == id) {
return R.error("入参为空!"); return R.error("入参为空!");
} }
//用户信息 //用户信息
R<User> user = userService.getByUserId(id); User user = userService.getByUserId(id);
// 创建token // 创建token
String token = jwtUtil.generateToken(user.getData()); String token = jwtUtil.generateToken(user);
// 保存Redis // 保存Redis
redisTemplate.opsForValue().set(RedisConsts.JWT_ACCESS_TOKEN + token, token); redisTemplate.opsForValue().set(RedisConsts.JWT_ACCESS_TOKEN + token, token);
return R.ok(token); return R.ok(token);
......
package cn.wisenergy.web.admin.controller.app; package cn.wisenergy.web.admin.controller.app;
import cn.wisenergy.common.utils.Constants; import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.*;
import cn.wisenergy.web.sms.*; import cn.wisenergy.web.sms.*;
import cn.wisenergy.common.utils.RedisUtils;
import cn.wisenergy.common.utils.StringUtil;
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.service.app.UserService; import cn.wisenergy.service.app.UserService;
...@@ -20,15 +19,14 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -20,15 +19,14 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* *
* Created by m1991 on 2021/3/2 13:35 * Created by m1991 on 2021/3/2 13:35
*/ */
@Api(tags = "登录/注册") @Api(tags = "登录/注册")
@Slf4j @Slf4j
@RequestMapping("/api/user/login/sms") @RequestMapping("/api/user")
@RestController @RestController
public class loginController { public class loginController {
@Autowired @Autowired
...@@ -48,12 +46,12 @@ public class loginController { ...@@ -48,12 +46,12 @@ public class loginController {
* @throws Exception * @throws Exception
*/ */
@ApiOperation(value = "登录", notes = "登录", httpMethod = "POST", produces = "application/json; charset=UTF-8") @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST", produces = "application/json;charset=UTF-8")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "sms", value = "验证码", dataType = "String"), @ApiImplicitParam(name = "sms", value = "验证码", dataType = "String"),
@ApiImplicitParam(name = "userId", value = "用户手机号", required = true, dataType = "String")}) @ApiImplicitParam(name = "userId", value = "用户手机号", required = true, dataType = "String")})
@RequestMapping("/login/sms") @RequestMapping("/login")
public Result loginBySms(String userId,String sms)throws Exception{ public Result loginBySms(String userId, String sms)throws Exception{
User users=null; User users=null;
String key= StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.SMS_PRIFIX,userId,Constants.Sms.CodeType.LOGIN_OR_REGISTER+""); String key= StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.SMS_PRIFIX,userId,Constants.Sms.CodeType.LOGIN_OR_REGISTER+"");
String redisCode=redisUtils.getValue(key); String redisCode=redisUtils.getValue(key);
...@@ -85,7 +83,7 @@ public class loginController { ...@@ -85,7 +83,7 @@ public class loginController {
String tokenKey=StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.TOKEN_PRIFIX,token); String tokenKey=StringUtil.formatKeyWithPrefix(Constants.RedisKey.PROJECT_PRIFIX,Constants.RedisKey.TOKEN_PRIFIX,token);
UsersDto usersDto=new UsersDto(); UsersDto usersDto=new UsersDto();
BeanUtils.copyProperties(users,usersDto); BeanUtils.copyProperties(users,usersDto);
redisUtils.set(tokenKey, JSONObject.toJSONString(usersDto), Constants.Duration.HALF_HOUR_INT); redisUtils.set(tokenKey, JSONObject.toJSONString(usersDto),Constants.Duration.HALF_HOUR_INT);
return token; return token;
} }
......
...@@ -60,6 +60,7 @@ public class ShiroConfig { ...@@ -60,6 +60,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/swagger-ui.html", "anon"); // swagger接口-匿名访问 filterChainDefinitionMap.put("/swagger-ui.html", "anon"); // swagger接口-匿名访问
filterChainDefinitionMap.put("/swagger/**", "anon"); filterChainDefinitionMap.put("/swagger/**", "anon");
filterChainDefinitionMap.put("/user/**", "anon"); filterChainDefinitionMap.put("/user/**", "anon");
filterChainDefinitionMap.put("/api/user/**", "anon");
filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon"); filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon");
filterChainDefinitionMap.put("/swagger-resources/**", "anon"); filterChainDefinitionMap.put("/swagger-resources/**", "anon");
filterChainDefinitionMap.put("/v2/api-docs", "anon"); filterChainDefinitionMap.put("/v2/api-docs", "anon");
......
package cn.wisenergy.web.sms; package cn.wisenergy.web.sms;
import cn.wisenergy.common.enums.ResultEnum;
/** /**
* *
* 通用异常的处理 * 通用异常的处理
...@@ -27,6 +29,8 @@ public class BaseException extends Exception { ...@@ -27,6 +29,8 @@ public class BaseException extends Exception {
// 错误信息 // 错误信息
private String errorMessage; private String errorMessage;
public static long getSerialVersionUID() { public static long getSerialVersionUID() {
return serialVersionUID; return serialVersionUID;
} }
......
package cn.wisenergy.web.sms;
import java.util.zip.CRC32;
/**
*
* @author eaves.zhu
*/
public class DeviceIdUtil {
/**
* @author eaves.zhu
* @param deviceId
* @return int
* CRC32
*/
public static long getCRC32(String deviceId){
CRC32 crc32 = new CRC32();
crc32.update(deviceId.getBytes());
long tmp = crc32.getValue();
return tmp;
}
}
\ No newline at end of file
package cn.wisenergy.web.sms;
import java.math.BigDecimal;
/**
* @Description 数字相关工具类
* @Date 2019-08-22 17:08
* @Author est team
* Version 1.0
**/
public class MathUtils {
/**
* 返回一个4位随机数
* @return
*/
public static String random(){
int random = (int) ((Math.random() * 9 + 1) * 1000);
return random + "";
}
/**
* 格式化BigDecimal,返回保留相应的小数
* @param decimal
* @param num
* @return
*/
public static BigDecimal formatDecimal(BigDecimal decimal, int num){
BigDecimal result = decimal.setScale(num,BigDecimal.ROUND_HALF_UP);
return result;
}
/**
* 格式化BigDecimal,默认保留两位小数
* @param decimal
* @return
*/
public static BigDecimal formatDecimal(BigDecimal decimal){
BigDecimal result = formatDecimal(decimal, Constants.Common.DECIMAL_DIGITS);
return result;
}
}
package cn.wisenergy.web.sms;
/**
* @author zen.wang zenyes@gmail.com
*/
public class ShareCodeUtil {
/**
* 自定义进制(0,1没有加入,容易与o,l混淆)
*/
private static final char[] r = new char[]{'F', 'L', 'G', 'W', '5', 'X', 'C', '3', '9', 'Z', 'M', '6', '7', 'Y', 'R', 'T', '2', 'H', 'S', '8', 'D', 'V', 'E', 'J', '4', 'K', 'Q', 'P', 'U', 'A', 'N', 'B'};
/**
* 进制长度
*/
private static final int binLen = r.length;
private static final long startNumber = 100048576L;
// private static final long startNumber = 0L;
/**
* @param id ID
* @return 随机码
*/
public static String idToCode(long id, long costomStartNumber) {
if (costomStartNumber < 0) {
costomStartNumber = startNumber;
}
id += costomStartNumber;
char[] buf = new char[32];
int charPos = 32;
while ((id / binLen) > 0) {
int ind = (int) (id % binLen);
buf[--charPos] = r[ind];
id /= binLen;
}
buf[--charPos] = r[(int) (id % binLen)];
return new String(buf, charPos, (32 - charPos));
}
public static String idToCode(long idL) {
return idToCode(idL, -1L);
}
public static String idToCode(String id) {
long idL = Long.parseLong(id);
return idToCode(idL, -1L);
}
public static String idToCode(String id, long costomStartNumber) {
long idL = Long.parseLong(id);
return idToCode(idL, costomStartNumber);
}
public static long codeToId(String code) {
code = code.toUpperCase();
char[] chs = code.toCharArray();
long res = 0L;
for (int i = 0; i < chs.length; i++) {
int ind = 0;
for (int j = 0; j < binLen; j++) {
if (chs[i] == r[j]) {
ind = j;
break;
}
}
if (i > 0) {
res = res * binLen + ind;
} else {
res = ind;
}
}
res -= startNumber;
return res;
}
}
\ No newline at end of file
package cn.wisenergy.web.sms.interceptor; package cn.wisenergy.web.sms.interceptor;
import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.ResponseOutput;
import cn.wisenergy.common.utils.Result;
import cn.wisenergy.common.utils.ResultUtils;
import cn.wisenergy.web.sms.*; import cn.wisenergy.web.sms.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
package cn.wisenergy.web.sms.interceptor; package cn.wisenergy.web.sms.interceptor;
import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.common.utils.RedisUtils; import cn.wisenergy.common.utils.RedisUtils;
import cn.wisenergy.common.utils.ResponseOutput;
import cn.wisenergy.common.utils.StringUtil; import cn.wisenergy.common.utils.StringUtil;
import cn.wisenergy.web.sms.*; import cn.wisenergy.web.sms.*;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -28,7 +30,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter { ...@@ -28,7 +30,7 @@ public class LoginInterceptor extends HandlerInterceptorAdapter {
/** /**
* 直接放行的接口 * 直接放行的接口
*/ */
public static String[] EXCLUDE_URI = new String[]{"/pay/alipay/notify", "/pay/alipay/return", "/user/wechat/callback"}; public static String[] EXCLUDE_URI = new String[]{"/api/user/login", "/pay/alipay/notify", "/pay/alipay/return", "/user/wechat/callback"};
/** /**
* 需要登录才可以访问的接口 * 需要登录才可以访问的接口
......
package cn.wisenergy.web.sms.interceptor; package cn.wisenergy.web.sms.interceptor;
import cn.wisenergy.web.sms.ResponseOutput; import cn.wisenergy.common.enums.ResultEnum;
import cn.wisenergy.web.sms.ResultEnum; import cn.wisenergy.common.utils.ResponseOutput;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
This diff is collapsed.
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