diff --git a/sql/data.sql b/sql/data.sql index a8b7120..1fc6a19 100644 --- a/sql/data.sql +++ b/sql/data.sql @@ -2,16 +2,19 @@ DELETE FROM FXKH_TXL.ORGANIZATION; SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION ON; insert into "FXKH_TXL"."ORGANIZATION"("ID", "NAME") VALUES - ('1','湖北省防汛抗旱指挥部成员' ), - ('2','国家防汛抗旱总指挥部办公室(应急部防汛抗旱司)' ), - ('3','长江委水旱灾害防御局' ), - ('4','湖北省省直机关有关单位和部队联系处(室)' ), - ('5','湖北省应急管理厅机关' ), - ('6','湖北省水利厅' ), - ('7','市、州、县防指(防办)' ), - ('8','有关单位' ), - ('9','省应急管理厅机关常用电话' ); + ('1','国家防汛抗旱总指挥部办公室' ), + ('2','长江防汛抗旱总指挥部办公室' ), + ('3','省防办' ), + ('4','省防指成员单位' ), + ('5','市、州、县防指(防办)' ), + ('6','湖北省大型水库安全管理责任人' ), + ('7','湖北省3级及以上河道堤防防汛行政责任人名单' ), + ('8','湖北省蓄滞洪区防汛行政责任人名单' ), + ('9','湖北省湖堤堤防防汛行政责任人名单' ), + ('10','湖北省重点排涝泵站责任人名单' ), + ('11','湖北省大中型涵闸防汛责任人名单' ); SET IDENTITY_INSERT FXKH_TXL.ORGANIZATION Off; +COMMIT; insert into "FXKH_TXL"."USERS"("USERNAME", "PASSWORD", "SALT", "ROLE", "AB_ID") 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 '行政区划'; + 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)); comment on column "FXKH_TXL"."ADDRESS_BOOK"."IS_PASS" is '是否放行, 放行:true,拦截:false'; diff --git a/src/main/java/com/whdc/config/CustomRedisCacheManager.java b/src/main/java/com/whdc/config/CustomRedisCacheManager.java deleted file mode 100644 index c02fa31..0000000 --- a/src/main/java/com/whdc/config/CustomRedisCacheManager.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.whdc.config; - -import org.jetbrains.annotations.NotNull; -import org.springframework.data.redis.cache.RedisCache; -import org.springframework.data.redis.cache.RedisCacheConfiguration; -import org.springframework.data.redis.cache.RedisCacheManager; -import org.springframework.data.redis.cache.RedisCacheWriter; -import org.springframework.util.StringUtils; - -import java.time.Duration; - -/** - * Description: - * Created by XuSan on 2024/6/3. - * - * @author XuSan - * @version 1.0 - */ -public class CustomRedisCacheManager extends RedisCacheManager { - - - public CustomRedisCacheManager(RedisCacheWriter cacheWriter, RedisCacheConfiguration defaultCacheConfiguration) { - super(cacheWriter, defaultCacheConfiguration); - } - - /** - * 针对@Cacheable设置缓存过期时间 - * - * @param name - * @param cacheConfig - * @return - */ - @NotNull - @Override - protected RedisCache createRedisCache(String name, RedisCacheConfiguration cacheConfig) { - String[] array = StringUtils.delimitedListToStringArray(name, "#"); - name = array[0]; - // 解析TTL - if (array.length > 1) { - long ttl = Long.parseLong(array[1]); - cacheConfig = cacheConfig.entryTtl(Duration.ofSeconds(ttl)); // 注意单位我此处用的是秒,而非毫秒 - } - return super.createRedisCache(name, cacheConfig); - } -} diff --git a/src/main/java/com/whdc/controller/AddressBookController.java b/src/main/java/com/whdc/controller/AddressBookController.java index f8db911..b42476f 100644 --- a/src/main/java/com/whdc/controller/AddressBookController.java +++ b/src/main/java/com/whdc/controller/AddressBookController.java @@ -2,6 +2,7 @@ package com.whdc.controller; import cn.dev33.satoken.stp.StpUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.whdc.exception.MyException; import com.whdc.model.dto.AddressBootDto; @@ -30,17 +31,19 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.DigestUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import static com.whdc.model.MyConstant.REDIS_KEY; +import static com.whdc.service.impl.AdinfoServiceImpl.TREE_ALL; /** * @author xusan @@ -293,7 +296,7 @@ public class AddressBookController { organization = model.getAdcd().replaceFirst("000000", ""); } Integer sort = model.getSort(); - if (0 != sort){ + if (0 != sort) { boolean update = abUdRService.lambdaUpdate() .set(AbUdR::getSort, sort) .set(AbUdR::getDictId, organization) @@ -403,7 +406,6 @@ public class AddressBookController { } - @ApiOperation(value = "设置白名单") @PostMapping(value = "setWhitelists") public ResultJson setWhitelists(@RequestBody @Validated(Update.class) AddressBook model) { @@ -435,7 +437,7 @@ public class AddressBookController { .set(AddressBook::getIsPass, model.getIsPass()) .eq(AddressBook::getId, model.getId()) .update(); - if (!update){ + if (!update) { throw new MyException("操作数据库失败"); } return ResultJson.ok(update); @@ -456,7 +458,7 @@ public class AddressBookController { } User delUser = userService.lambdaQuery() - .eq(User::getAbId,model.getId()) + .eq(User::getAbId, model.getId()) .one(); switch (Objects.requireNonNull(Role.getByName(user.getRole()))) { @@ -472,8 +474,6 @@ public class AddressBookController { } - - // List list = versionsService.lambdaQuery() // .eq(Versions::getAbId, model.getId()) // .list(); @@ -544,13 +544,15 @@ public class AddressBookController { adnm = ""; } - List tree = adinfoService.tree(null, null); + List tree = adinfoService.tree(TREE_ALL, TREE_ALL); if (CollectionUtils.isEmpty(tree)) { throw new MyException("当前行政区划不存在"); } - List addressBooks = service.lambdaQuery().isNotNull(AddressBook::getAdcd) +// List addressBooks = service.lambdaQuery().isNotNull(AddressBook::getAdcd) +// .list(); + List addressBooks = service.lambdaQuery().likeLeft(AddressBook::getAdcd, "000000000") .list(); if (CollectionUtils.isEmpty(addressBooks)) { @@ -565,21 +567,21 @@ public class AddressBookController { String finalAdnm = adnm; for (int i = 0; i < tree.size(); i++) { AdcdTree t = tree.get(i); - String adcd = t.getAdcd(); +// String adcd = t.getAdcd(); String cityAdnm = t.getAdnm(); - List books = abMap.get(adcd); - if (CollectionUtils.isEmpty(books)) { - continue; - } - books.forEach(b -> { - if (StringUtils.isNotBlank(finalAdnm)) { - if (cityAdnm.equals(finalAdnm)) { - data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); - } - } else { - data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); - } - }); +// List books = abMap.get(adcd); +// if (CollectionUtils.isEmpty(books)) { +// continue; +// } +// books.forEach(b -> { +// if (StringUtils.isNotBlank(finalAdnm)) { +// if (cityAdnm.equals(finalAdnm)) { +// data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); +// } +// } else { +// data.add(new ExcelABVo(cityAdnm, cityAdnm, b.getName(), b.getPosition(), b.getPhone())); +// } +// }); List children = t.getChildren(); if (CollectionUtils.isNotEmpty(children)) { @@ -604,7 +606,6 @@ public class AddressBookController { } } - ; if (CollectionUtils.isEmpty(data)) { throw new MyException("当前行政区划责任人为空"); @@ -615,4 +616,129 @@ public class AddressBookController { response); } + @ApiOperation(value = "解析文件数据") + @PostMapping(value = "getExcelData") + public ResultJson> getExcelData(MultipartFile file) { + + List appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class); + return ResultJson.ok(appends); + } + @ApiOperation(value = "行政区划联系人导入") + @PostMapping(value = "uploadExcel") + public ResultJson uploadExcel(MultipartFile file) { + + List appends = ExcelCommon.importExcel(file, 0, 1, ExcelABVo.class); + + if (CollectionUtils.isEmpty(appends)) { + throw new MyException("文件为空"); + } + + Set set = appends.stream().map(vo -> vo.getName() + "_" + vo.getPhone()).collect(Collectors.toSet()); + if (set.size() != appends.size()){ + throw new MyException("联系人重复"); + } + + List tree = adinfoService.tree(TREE_ALL, TREE_ALL); + + List abs = Lists.newArrayList(); + + appends.forEach(vo -> { + String phone = vo.getPhone(); + String name = vo.getName(); + String position = vo.getPosition(); + String city = vo.getCity(); + String county = vo.getCounty(); + AddressBook e = new AddressBook(); + e.setName(name) + .setPhone(phone) + .setAdcd(getAdcd(tree, city, county)) + .setPosition(position); + abs.add(e); + }); + + // 原数据删除 + removeAdcd(); + + + if (!service.saveBatch(abs)) { + throw new MyException("表格数据新增失败"); + } + List users = Lists.newArrayList(); + List abUdRs = Lists.newArrayList(); + + AtomicReference sort = new AtomicReference<>(0); + // 新增关联数据 + abs.forEach(a -> { + String phone = a.getPhone(); + if (StringUtils.isNotBlank(phone)){ + User user = new User(); + String salt = UUID.randomUUID().toString().replaceAll("-", ""); + user + .setUsername(phone) + .setAbId(a.getId()) + .setRole("1") + .setSalt(salt) + .setPassword(DigestUtils.md5DigestAsHex((salt + "Fxkh@123456").getBytes())); + users.add(user); + } + + AbUdR au = new AbUdR(); + Integer i = sort.get() + 1; + au.setType("1") + .setAdId(a.getId()) + .setDictId(a.getAdcd().replaceFirst("000000", "")) + .setSort(i); + abUdRs.add(au); + sort.set(i); + }); + + if (!userService.saveBatch(users)) { + throw new MyException("用户数据新增失败"); + } + + if (!abUdRService.saveBatch(abUdRs)) { + throw new MyException("关联数据新增失败"); + } + return ResultJson.ok("数据新增成功"); + } + + private String getAdcd(List tree, String city, String county) { + for (AdcdTree a : tree) { + if (a.getAdnm().equals(city)) { + List children = a.getChildren(); + if (a.getAdnm().equals(county)) { + county = "市本级"; + } + for (AdcdTree b : children) { + if (b.getAdnm().equals(county)) { + return b.getAdcd(); + } + } + } + } + throw new MyException("当前市行政区划匹配失败"); + } + + + private void removeAdcd() { + List addressBooks = service.lambdaQuery().likeLeft(AddressBook::getAdcd, "000000000") + .list(); + boolean r1 = service.removeBatchByIds(addressBooks); + if (!r1) { + throw new MyException("通讯录数据删除失败"); + } + List abIds = addressBooks.stream().map(AddressBook::getId).collect(Collectors.toList()); + LambdaQueryWrapper aurQueryWrapper = new LambdaQueryWrapper<>(); + aurQueryWrapper.in(AbUdR::getAdId, abIds); + boolean remove1 = abUdRService.remove(aurQueryWrapper); + if (!remove1) { + throw new MyException("关联数据删除失败"); + } + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + userQueryWrapper.in(User::getAbId, abIds); + boolean remove2 = userService.remove(userQueryWrapper); + if (!remove2) { + throw new MyException("用户账号删除失败"); + } + } } diff --git a/src/main/java/com/whdc/controller/AdinfoController.java b/src/main/java/com/whdc/controller/AdinfoController.java index b855b61..24ac7fd 100644 --- a/src/main/java/com/whdc/controller/AdinfoController.java +++ b/src/main/java/com/whdc/controller/AdinfoController.java @@ -21,6 +21,8 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import static com.whdc.service.impl.AdinfoServiceImpl.TREE_ALL; + /** * @author xusan * @date 2024-05-11 @@ -60,7 +62,7 @@ public class AdinfoController { String adcdOradnm) { - List list = service.tree(null, null); + List list = service.tree(TREE_ALL, TREE_ALL); // 查询全部标识 if ("all".equals(adcdOradnm)) { return ResultJson.ok(list); diff --git a/src/main/java/com/whdc/controller/UserController.java b/src/main/java/com/whdc/controller/UserController.java index 2a593e8..4e92346 100644 --- a/src/main/java/com/whdc/controller/UserController.java +++ b/src/main/java/com/whdc/controller/UserController.java @@ -79,6 +79,26 @@ public class UserController { } } + + @ApiOperation(value = "wxOpenid登录", notes = "登录后,从 tokenInfo 中获取 token 相关信息。headers[tokenName] = tokenValue ") + @GetMapping("wxLogin/{openid}") + public ResultJson 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 = "查询登录状态") @PostMapping("isLogin") public ResultJson isLogin() { @@ -165,16 +185,16 @@ public class UserController { } -// @ApiOperation(value = "修改密码") -// @PostMapping(value = "updatePw") + @ApiOperation(value = "修改密码") + @PostMapping(value = "updatePw") public ResultJson updatePwd(@RequestBody UserDto dto) { return service.updatePwd(dto); } -// @ApiOperation(value = "忘记密码") -// @GetMapping(value = "forgotPassword/{username}") + @ApiOperation(value = "忘记密码") + @GetMapping(value = "forgotPassword/{username}") public ResultJson updatePwd(@PathVariable("username") String username) { User one = service.lambdaQuery().eq(User::getUsername, username) .one(); @@ -192,16 +212,16 @@ public class UserController { } -// @ApiOperation(value = "发送验证码") -// @GetMapping(value = "pushCode/{phone}") + @ApiOperation(value = "发送验证码") + @GetMapping(value = "pushCode/{phone}") public ResultJson pushCode(@PathVariable("phone") String phone) { return ResultJson.ok(service.pushCode(phone)); } -// @ApiOperation(value = "手机验证码登录") -// @GetMapping(value = "loginByCode/{phone}/{code}") + @ApiOperation(value = "手机验证码登录") + @GetMapping(value = "loginByCode/{phone}/{code}") public ResultJson loginByCode(@PathVariable("phone") String phone,@PathVariable("code") String code) throws InvocationTargetException, IllegalAccessException { LoginVo loginVo = service.loginByCode(phone, code.toUpperCase()); diff --git a/src/main/java/com/whdc/controller/WarningController.java b/src/main/java/com/whdc/controller/WarningController.java index 48d55a0..399a714 100644 --- a/src/main/java/com/whdc/controller/WarningController.java +++ b/src/main/java/com/whdc/controller/WarningController.java @@ -32,6 +32,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.whdc.model.MyConstant.REDIS_KEY; +import static com.whdc.service.impl.AdinfoServiceImpl.TREE_ALL; /** * Description: @@ -241,6 +242,13 @@ public class WarningController { vo.setAdnm(publishUnit.replace("气象台", "")); String adnm = publishUnit.replace("气象台", ""); + if ("恩施州".equals(adnm)){ + adnm = "恩施土家族苗族自治州"; + } + if ("武汉经济技术开发区".equals(adnm)){ + adnm = "经济技术开发区(汉南区)"; + } + String adcd = adinfoService.getAdcdByAdnm(adnm); if (StringUtils.isNotBlank(adcd)){ vo.setAddressBooks(addressBookService.getListByAdnm(adcd)); @@ -390,7 +398,7 @@ public class WarningController { // 进行行政区划匹配 if (CollectionUtils.isNotEmpty(voList)) { - List tree = adinfoService.tree(null, null); + List tree = adinfoService.tree(TREE_ALL, TREE_ALL); Map> areaMap = voList.stream() .collect(Collectors .groupingBy(WarningHistoryListVo::getEffectArea, Collectors.toList())); diff --git a/src/main/java/com/whdc/mapper/AddressBookMapper.java b/src/main/java/com/whdc/mapper/AddressBookMapper.java index 3142aef..0d0905f 100644 --- a/src/main/java/com/whdc/mapper/AddressBookMapper.java +++ b/src/main/java/com/whdc/mapper/AddressBookMapper.java @@ -22,4 +22,6 @@ public interface AddressBookMapper extends BaseMapper { List getListByAdnm(@Param("adcd") String adcd); AddressBookVo getVoById(@Param("id") Integer id); + AddressBookVo getVoByOpenid(@Param("id") String id); + } \ No newline at end of file diff --git a/src/main/java/com/whdc/model/entity/AddressBook.java b/src/main/java/com/whdc/model/entity/AddressBook.java index 76b0cb9..53366b1 100644 --- a/src/main/java/com/whdc/model/entity/AddressBook.java +++ b/src/main/java/com/whdc/model/entity/AddressBook.java @@ -106,4 +106,8 @@ public class AddressBook extends Model implements Serializable { @ApiModelProperty(value = "是否放行, 放行:true,拦截:false") private Boolean isPass; + @TableField("OPENID") + @ApiModelProperty(value = "openid") + private String openid; + } \ No newline at end of file diff --git a/src/main/java/com/whdc/model/vo/LoginVo.java b/src/main/java/com/whdc/model/vo/LoginVo.java index 48e5f7e..7a5d7a4 100644 --- a/src/main/java/com/whdc/model/vo/LoginVo.java +++ b/src/main/java/com/whdc/model/vo/LoginVo.java @@ -30,6 +30,9 @@ public class LoginVo implements Serializable { @ApiModelProperty(value = "姓名") private String name; + @ApiModelProperty(value = "vx openid") + private String openid; + @ApiModelProperty(value = "token 信息") private AuthToken tokenInfo; diff --git a/src/main/java/com/whdc/service/IUserService.java b/src/main/java/com/whdc/service/IUserService.java index 0023771..20d9df7 100644 --- a/src/main/java/com/whdc/service/IUserService.java +++ b/src/main/java/com/whdc/service/IUserService.java @@ -30,6 +30,8 @@ public interface IUserService extends IService { LoginVo wxLogin(VxLoginDto obj); + LoginVo wxLogin(String openid); + boolean register(User entity); User getRole(Integer id); diff --git a/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java b/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java index e0817d3..abb7969 100644 --- a/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/AdinfoServiceImpl.java @@ -32,6 +32,7 @@ import static com.whdc.model.MyConstant.REDIS_KEY; public class AdinfoServiceImpl extends ServiceImpl implements IAdinfoService { public static final String ADINFO_REDIS_KEY = REDIS_KEY + "adinfo"; + public static final String TREE_ALL = REDIS_KEY + "tree_all"; @Override public IPage page(Adinfo dto) { @@ -57,9 +58,15 @@ public class AdinfoServiceImpl extends ServiceImpl impleme * @param adcd * @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 tree(String adcd, String adnm) { + if (TREE_ALL.equals(adcd)){ + adcd = null; + } + if (TREE_ALL.equals(adnm)){ + adnm = null; + } List list = treeList(adcd, adnm); if (CollectionUtils.isNotEmpty(list)){ diff --git a/src/main/java/com/whdc/service/impl/OrganizationServiceImpl.java b/src/main/java/com/whdc/service/impl/OrganizationServiceImpl.java index 0d05a69..d632719 100644 --- a/src/main/java/com/whdc/service/impl/OrganizationServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/OrganizationServiceImpl.java @@ -6,11 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.whdc.mapper.OrganizationMapper; import com.whdc.model.entity.Organization; import com.whdc.model.entity.UnitDict; -import com.whdc.model.vo.AdcdTree; import com.whdc.service.IAdinfoService; import com.whdc.service.IOrganizationService; import com.whdc.service.IUnitDictService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +18,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.whdc.service.impl.AdinfoServiceImpl.TREE_ALL; + /** *

* 服务实现类 @@ -48,17 +50,21 @@ public class OrganizationServiceImpl extends ServiceImpl findByUserId(String userId,String adcd) { + if (StringUtils.isBlank(adcd)){ + adcd = TREE_ALL; + } List organizations = baseMapper.findByUserId(userId); List list = unitDictService.findByUserId(userId); Map> collect = list.stream().collect(Collectors.groupingBy(UnitDict::getOId)); + String finalAdcd = adcd; organizations.forEach(organization -> { List unitDicts = collect.get(organization.getId()); organization.setUnitDicts(unitDicts); String name = organization.getName(); if (name.contains("市") && name.contains("县")){ - organization.setAdinfoList(adinfoService.tree(adcd, adcd)); + organization.setAdinfoList(adinfoService.tree(finalAdcd, finalAdcd)); } }); diff --git a/src/main/java/com/whdc/service/impl/UserServiceImpl.java b/src/main/java/com/whdc/service/impl/UserServiceImpl.java index 253fa54..235c159 100644 --- a/src/main/java/com/whdc/service/impl/UserServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/UserServiceImpl.java @@ -159,17 +159,81 @@ public class UserServiceImpl extends ServiceImpl implements IU User sysUser = findByLoginName(phone); if (sysUser == null) { - throw new MyException("用户名或密码错误"); + throw new MyException("当前手机号未注册"); } + + LoginVo out = new LoginVo(); BeanUtils.copyProperties(sysUser, out); AddressBookVo book = addressBookMapper.getVoById(sysUser.getAbId()); if (Objects.nonNull(book)) { + + if (StringUtils.isNotBlank(book.getOpenid())){ + + System.out.println("openid1:"+sysUser.getAbId()); + System.out.println("openid2:"+openid); + System.out.println("openid3:"+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 (!book.getIsPass()){ + throw new MyException("当前账号无法登录,请联系上级管理员!"); + } + + + String adcd = book.getAdcd(); if (StringUtils.isNotBlank(adcd)) { @@ -182,6 +246,8 @@ public class UserServiceImpl extends ServiceImpl implements IU if (StringUtils.isNotBlank(book.getAdnm())) { out.setOname(book.getAdnm()); } + }else{ + throw new MyException("该用户未绑定通讯录"); } return out; @@ -278,6 +344,11 @@ public class UserServiceImpl extends ServiceImpl implements IU throw new MyException("当前账号暂未注册"); } + + if (!addressBook.getIsPass()){ + throw new MyException("当前账号无法登录,请联系上级管理员!"); + } + LoginVo out = new LoginVo(); BeanUtils.copyProperties(sysUser, out); String adcd = addressBook.getAdcd(); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 188abe1..3e87f50 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,12 +10,12 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: dm.jdbc.driver.DmDriver - url: jdbc:dm://local.gunshiiot.com:5236?schema=FXKH_TXL - username: SYSDBA - password: SYSDBA001 -# url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL -# username: SHZH -# password: Shzh_890 +# url: jdbc:dm://10.0.41.113:5236?schema=FXKH_TXL +# username: SYSDBA +# password: SYSDBA001 + url: jdbc:dm://10.42.6.247:5236?schema=FXKH_TXL + username: SHZH + password: Shzh_890 druid: initialSize: 5 minIdle: 5 @@ -39,11 +39,11 @@ spring: # Redis redis: database: 5 -# host: 10.42.6.75 - host: 127.0.0.1 + host: 10.42.6.75 +# host: 127.0.0.1 port: 6379 - password: -# password: Whdc_890 +# password: + password: Whdc_890 servlet: multipart: diff --git a/src/main/resources/mapper/AddressBookMapper.xml b/src/main/resources/mapper/AddressBookMapper.xml index 66b1e03..9286bdf 100644 --- a/src/main/resources/mapper/AddressBookMapper.xml +++ b/src/main/resources/mapper/AddressBookMapper.xml @@ -5,7 +5,7 @@ SELECT - AB.*,IF(O.NAME IS NULL,UD.NAME,O.NAME) ONAME,A.ADNM + AB.*,IF(UD.NAME IS NOT NULL,UD.NAME,O.NAME) ONAME,A.ADNM FROM ADDRESS_BOOK AB LEFT JOIN ORGANIZATION O ON AB.ORGANIZATION = O.ID @@ -78,4 +78,17 @@ + + + + \ No newline at end of file