wx手机号登录修改, wxopenid登录新增,通讯录数据查询修改
parent
1329a6e096
commit
e3577b1cd9
25
sql/data.sql
25
sql/data.sql
|
|
@ -2,16 +2,19 @@
|
||||||
DELETE FROM FXKH_TXL.ORGANIZATION;
|
DELETE FROM FXKH_TXL.ORGANIZATION;
|
||||||
SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION ON;
|
SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION ON;
|
||||||
insert into "FXKH_TXL"."ORGANIZATION"("ID", "NAME") VALUES
|
insert into "FXKH_TXL"."ORGANIZATION"("ID", "NAME") VALUES
|
||||||
('1','湖北省防汛抗旱指挥部成员' ),
|
('1','国家防汛抗旱总指挥部办公室' ),
|
||||||
('2','国家防汛抗旱总指挥部办公室(应急部防汛抗旱司)' ),
|
('2','长江防汛抗旱总指挥部办公室' ),
|
||||||
('3','长江委水旱灾害防御局' ),
|
('3','省防办' ),
|
||||||
('4','湖北省省直机关有关单位和部队联系处(室)' ),
|
('4','省防指成员单位' ),
|
||||||
('5','湖北省应急管理厅机关' ),
|
('5','市、州、县防指(防办)' ),
|
||||||
('6','湖北省水利厅' ),
|
('6','湖北省大型水库安全管理责任人' ),
|
||||||
('7','市、州、县防指(防办)' ),
|
('7','湖北省3级及以上河道堤防防汛行政责任人名单' ),
|
||||||
('8','有关单位' ),
|
('8','湖北省蓄滞洪区防汛行政责任人名单' ),
|
||||||
('9','省应急管理厅机关常用电话' );
|
('9','湖北省湖堤堤防防汛行政责任人名单' ),
|
||||||
|
('10','湖北省重点排涝泵站责任人名单' ),
|
||||||
|
('11','湖北省大中型涵闸防汛责任人名单' );
|
||||||
SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION Off;
|
SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION Off;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
insert into "FXKH_TXL"."USERS"("USERNAME", "PASSWORD", "SALT", "ROLE", "AB_ID")
|
insert into "FXKH_TXL"."USERS"("USERNAME", "PASSWORD", "SALT", "ROLE", "AB_ID")
|
||||||
VALUES ('superadmin','0d36b3ff219df5a7f7d2d3961588f50c','3517548df1ac46198dbfec4f1176ec93','99',0)
|
VALUES ('superadmin','0d36b3ff219df5a7f7d2d3961588f50c','3517548df1ac46198dbfec4f1176ec93','99',0)
|
||||||
|
|
@ -28,6 +31,10 @@ insert into "FXKH_TXL"."ADDRESS_BOOK"("NAME", "PHONE", "ORGANIZATION", "POSITION
|
||||||
|
|
||||||
comment on column "FXKH_TXL"."AB_INFO"."ADCD" is '行政区划';
|
comment on column "FXKH_TXL"."AB_INFO"."ADCD" is '行政区划';
|
||||||
|
|
||||||
|
alter table "FXKH_TXL"."ADDRESS_BOOK" add column("OPENID" VARCHAR(50));
|
||||||
|
|
||||||
|
comment on column "FXKH_TXL"."ADDRESS_BOOK"."OPENID" is 'openid';
|
||||||
|
|
||||||
alter table "FXKH_TXL"."ADDRESS_BOOK" add column("IS_PASS" TINYINT default (FALSE));
|
alter table "FXKH_TXL"."ADDRESS_BOOK" add column("IS_PASS" TINYINT default (FALSE));
|
||||||
|
|
||||||
comment on column "FXKH_TXL"."ADDRESS_BOOK"."IS_PASS" is '是否放行, 放行:true,拦截:false';
|
comment on column "FXKH_TXL"."ADDRESS_BOOK"."IS_PASS" is '是否放行, 放行:true,拦截:false';
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -615,4 +616,21 @@ public class AddressBookController {
|
||||||
response);
|
response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "行政区划联系人导入")
|
||||||
|
@GetMapping(value = "uploadExcel")
|
||||||
|
public void uploadExcel(MultipartFile file) {
|
||||||
|
|
||||||
|
List<ExcelABVo> appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class);
|
||||||
|
|
||||||
|
if (CollectionUtils.isEmpty(appends)) {
|
||||||
|
throw new MyException("文件为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<AdcdTree> tree = adinfoService.tree(null, null);
|
||||||
|
|
||||||
|
appends.forEach(vo ->{
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,26 @@ public class UserController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "wx登录", notes = "登录后,从 tokenInfo 中获取 token 相关信息。headers[tokenName] = tokenValue ")
|
||||||
|
@GetMapping("wxLogin/{openid}")
|
||||||
|
public ResultJson<LoginVo> getWxLogin(@PathVariable("openid") String openid) throws InvocationTargetException, IllegalAccessException {
|
||||||
|
LoginVo loginVo = service.wxLogin(openid);
|
||||||
|
|
||||||
|
if (loginVo == null || loginVo.getId() == null) {
|
||||||
|
return ResultJson.error("登录失败");
|
||||||
|
} else {
|
||||||
|
StpUtil.login(loginVo.getId()); // 使用 user id 登录
|
||||||
|
// 获取 Token 相关参数
|
||||||
|
loginVo.setTokenInfo(new AuthToken(StpUtil.getTokenInfo()));
|
||||||
|
|
||||||
|
// 更新最后登录时间
|
||||||
|
service.updateLastDate(loginVo.getId());
|
||||||
|
|
||||||
|
return ResultJson.ok(loginVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "查询登录状态")
|
@ApiOperation(value = "查询登录状态")
|
||||||
@PostMapping("isLogin")
|
@PostMapping("isLogin")
|
||||||
public ResultJson<AuthToken> isLogin() {
|
public ResultJson<AuthToken> isLogin() {
|
||||||
|
|
|
||||||
|
|
@ -22,4 +22,6 @@ public interface AddressBookMapper extends BaseMapper<AddressBook> {
|
||||||
List<AddressBook> getListByAdnm(@Param("adcd") String adcd);
|
List<AddressBook> getListByAdnm(@Param("adcd") String adcd);
|
||||||
AddressBookVo getVoById(@Param("id") Integer id);
|
AddressBookVo getVoById(@Param("id") Integer id);
|
||||||
|
|
||||||
|
AddressBookVo getVoByOpenid(@Param("id") String id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -106,4 +106,8 @@ public class AddressBook extends Model<AddressBook> implements Serializable {
|
||||||
@ApiModelProperty(value = "是否放行, 放行:true,拦截:false")
|
@ApiModelProperty(value = "是否放行, 放行:true,拦截:false")
|
||||||
private Boolean isPass;
|
private Boolean isPass;
|
||||||
|
|
||||||
|
@TableField("OPENID")
|
||||||
|
@ApiModelProperty(value = "openid")
|
||||||
|
private String openid;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -30,6 +30,9 @@ public class LoginVo implements Serializable {
|
||||||
@ApiModelProperty(value = "姓名")
|
@ApiModelProperty(value = "姓名")
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "vx openid")
|
||||||
|
private String openid;
|
||||||
|
|
||||||
@ApiModelProperty(value = "token 信息")
|
@ApiModelProperty(value = "token 信息")
|
||||||
private AuthToken tokenInfo;
|
private AuthToken tokenInfo;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@ public interface IUserService extends IService<User> {
|
||||||
|
|
||||||
LoginVo wxLogin(VxLoginDto obj);
|
LoginVo wxLogin(VxLoginDto obj);
|
||||||
|
|
||||||
|
LoginVo wxLogin(String openid);
|
||||||
|
|
||||||
boolean register(User entity);
|
boolean register(User entity);
|
||||||
|
|
||||||
User getRole(Integer id);
|
User getRole(Integer id);
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ public class AdinfoServiceImpl extends ServiceImpl<AdinfoMapper, Adinfo> impleme
|
||||||
* @param adcd
|
* @param adcd
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
// @Cacheable(cacheNames = {REDIS_KEY}, key = "getMethodName()", condition = "#adcd", unless = "false", cacheResolver = "redisExpireCacheResolver")
|
@Cacheable(cacheNames = {ADINFO_REDIS_KEY}, key = "getMethodName()", condition = "#adcd + #adnm", unless = "false")
|
||||||
public List<AdcdTree> tree(String adcd, String adnm) {
|
public List<AdcdTree> tree(String adcd, String adnm) {
|
||||||
|
|
||||||
List<Adinfo> list = treeList(adcd, adnm);
|
List<Adinfo> list = treeList(adcd, adnm);
|
||||||
|
|
|
||||||
|
|
@ -159,17 +159,90 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
User sysUser = findByLoginName(phone);
|
User sysUser = findByLoginName(phone);
|
||||||
|
|
||||||
if (sysUser == null) {
|
if (sysUser == null) {
|
||||||
throw new MyException("用户名或密码错误");
|
throw new MyException("当前手机号未注册");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LoginVo out = new LoginVo();
|
LoginVo out = new LoginVo();
|
||||||
BeanUtils.copyProperties(sysUser, out);
|
BeanUtils.copyProperties(sysUser, out);
|
||||||
|
|
||||||
AddressBookVo book = addressBookMapper.getVoById(sysUser.getAbId());
|
AddressBookVo book = addressBookMapper.getVoById(sysUser.getAbId());
|
||||||
if (Objects.nonNull(book)) {
|
if (Objects.nonNull(book)) {
|
||||||
if (!book.getIsPass()){
|
|
||||||
throw new MyException("当前账号无法登录,请联系上级管理员!");
|
if (StringUtils.isNotBlank(book.getOpenid())){
|
||||||
|
|
||||||
|
if(!openid.equals(book.getOpenid())){
|
||||||
|
throw new MyException("当前手机号已绑定其他账号,请先解绑!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
book.setOpenid(openid);
|
||||||
|
if (!book.updateById()) {
|
||||||
|
throw new MyException("openid保存失败");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!book.getIsPass()){
|
||||||
|
// throw new MyException("当前账号无法登录,请联系上级管理员!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String adcd = book.getAdcd();
|
||||||
|
if (StringUtils.isNotBlank(adcd)) {
|
||||||
|
|
||||||
|
out.setAdlevel(2);
|
||||||
|
out.setAdcd(adcd.substring(0, 4));
|
||||||
|
|
||||||
|
}
|
||||||
|
out.setOpenid(openid);
|
||||||
|
out.setName(book.getName());
|
||||||
|
out.setOname(book.getOname());
|
||||||
|
if (StringUtils.isNotBlank(book.getAdnm())) {
|
||||||
|
out.setOname(book.getAdnm());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
throw new MyException("该用户未绑定通讯录");
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LoginVo wxLogin(String openid) {
|
||||||
|
|
||||||
|
LoginVo out = new LoginVo();
|
||||||
|
|
||||||
|
AddressBookVo book = addressBookMapper.getVoByOpenid(openid);
|
||||||
|
if (Objects.nonNull(book)) {
|
||||||
|
|
||||||
|
User sysUser = findByLoginName(book.getPhone());
|
||||||
|
|
||||||
|
if (sysUser == null) {
|
||||||
|
throw new MyException("当前手机号未注册");
|
||||||
|
}
|
||||||
|
BeanUtils.copyProperties(sysUser, out);
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(book.getOpenid())){
|
||||||
|
|
||||||
|
if(!openid.equals(book.getOpenid())){
|
||||||
|
throw new MyException("当前手机号已绑定其他账号,请先解绑!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
book.setOpenid(openid);
|
||||||
|
if (!book.updateById()) {
|
||||||
|
throw new MyException("openid保存失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!book.getIsPass()){
|
||||||
|
// throw new MyException("当前账号无法登录,请联系上级管理员!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String adcd = book.getAdcd();
|
String adcd = book.getAdcd();
|
||||||
if (StringUtils.isNotBlank(adcd)) {
|
if (StringUtils.isNotBlank(adcd)) {
|
||||||
|
|
||||||
|
|
@ -182,6 +255,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
||||||
if (StringUtils.isNotBlank(book.getAdnm())) {
|
if (StringUtils.isNotBlank(book.getAdnm())) {
|
||||||
out.setOname(book.getAdnm());
|
out.setOname(book.getAdnm());
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
throw new MyException("该用户未绑定通讯录");
|
||||||
}
|
}
|
||||||
return out;
|
return out;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ spring:
|
||||||
datasource:
|
datasource:
|
||||||
type: com.alibaba.druid.pool.DruidDataSource
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
driver-class-name: dm.jdbc.driver.DmDriver
|
driver-class-name: dm.jdbc.driver.DmDriver
|
||||||
# url: jdbc:dm://local.gunshiiot.com:5236?schema=FXKH_TXL
|
# url: jdbc:dm://10.0.41.113:5236?schema=FXKH_TXL
|
||||||
# username: SYSDBA
|
# username: SYSDBA
|
||||||
# password: SYSDBA001
|
# password: SYSDBA001
|
||||||
url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL
|
url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL
|
||||||
|
|
|
||||||
|
|
@ -78,4 +78,17 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="getVoByOpenid" resultType="com.whdc.model.vo.AddressBookVo">
|
||||||
|
SELECT
|
||||||
|
AB.*,IF(O.NAME IS NULL,UD.NAME,O.NAME) ONAME,A.ADNM
|
||||||
|
FROM
|
||||||
|
ADDRESS_BOOK AB
|
||||||
|
LEFT JOIN ORGANIZATION O ON AB.ORGANIZATION = O.ID
|
||||||
|
LEFT JOIN UNIT_DICT UD ON AB.ORGANIZATION = UD.ID
|
||||||
|
LEFT JOIN ADINFO A ON AB.ADCD = A.ADCD
|
||||||
|
WHERE AB.OPENID = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue