wx手机号登录修改, wxopenid登录新增,通讯录数据查询修改

master
徐杰盟 2024-06-04 14:18:15 +08:00
parent 1329a6e096
commit e3577b1cd9
11 changed files with 158 additions and 14 deletions

View File

@ -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';

View File

@ -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 ->{
});
}
} }

View File

@ -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() {

View File

@ -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);
} }

View File

@ -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;
} }

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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>