diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/IcsCustomerStaffMapper.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/IcsCustomerStaffMapper.java index 0387a76..159f79b 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/IcsCustomerStaffMapper.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/IcsCustomerStaffMapper.java @@ -79,6 +79,10 @@ public interface IcsCustomerStaffMapper extends BaseMapper { IcsCustomerStaff selectUserByMobileAndParkId(@Param("mobile") String phoneNumber, @Param("parkId") String parkId); + /** + * 清空绑定信息 + */ + int clearGzhOpenid(@Param("openid") String openid); /** * 绑定用户的微信公众号openid * @param mobile 手机号 @@ -86,4 +90,13 @@ public interface IcsCustomerStaffMapper extends BaseMapper { * @return */ int updateGzhOpenid(@Param("mobile") String mobile,@Param("openid") String openid); + + /** + * 根据公众号的openid获取用户 + * @param openid + * @return + */ + List getUserByGzhOpenid(String openid); + + } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IIcsCustomerStaffService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IIcsCustomerStaffService.java index 380c6fe..4a19c86 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IIcsCustomerStaffService.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IIcsCustomerStaffService.java @@ -102,5 +102,14 @@ public interface IIcsCustomerStaffService extends IService { */ int updateGzhOpenid(String mobile, String openid); -// IcsCustomerStaff selectUserByMobileAndParkId(String phoneNumber, String parkId); + /** + * 解绑 + */ + int clearGzhOpenid(String openid); + + /** + * 根据公众号的openid获取用户 + */ + List getUserByGzhOpenid(String openid); + } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IcsCustomerStaffServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IcsCustomerStaffServiceImpl.java index 15f9001..af79ed5 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IcsCustomerStaffServiceImpl.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/IcsCustomerStaffServiceImpl.java @@ -181,7 +181,6 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl userList,Long customerId) { + public String importCustomerStaff(List userList, Long customerId) { if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("导入用户数据不能为空!"); @@ -214,13 +213,13 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl 0) { - StaffCustomer staffCustomer =new StaffCustomer(); + StaffCustomer staffCustomer = new StaffCustomer(); staffCustomer.setStaffId(user.getId()); staffCustomer.setIcsCustomerId(customerId); StaffCustomer staffCustomer1 = staffCustomerService.selectStaffIdAndCustomerId(customerId, user.getId()); if (staffCustomer1 == null) { Customer customer = customerService.selectCustomerById(customerId); - if (customer != null){ + if (customer != null) { staffCustomer.setParkId(customer.getParkId()); staffCustomer.setTenantId(customer.getTenantId()); } @@ -228,7 +227,7 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl" + successNum + "、账号 " + user.getName() + " 导入成功"); @@ -243,7 +242,7 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl" + successNum + "、账号 " + user.getName() + " 已更新"); - }else { + } else { failureNum++; failureMsg.append("
" + successNum + "、账号 " + user.getName() + "已经存在"); } @@ -296,21 +295,21 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl selectUserListByType(String phone) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(phone != null,"mobile",phone); + wrapper.like(phone != null, "mobile", phone); return icsCustomerStaffMapper.selectList(wrapper); } //根据企业查询对应的设备 - public void queryDeviceByCustomerId(Long customerId,Long userId){ + public void queryDeviceByCustomerId(Long customerId, Long userId) { ArrayList ids = new ArrayList<>(); Customer customer = customerService.selectCustomerById(customerId); @@ -355,4 +354,14 @@ public class IcsCustomerStaffServiceImpl extends ServiceImpl getUserByGzhOpenid(String openid) { + return icsCustomerStaffMapper.getUserByGzhOpenid(openid); + } } diff --git a/shoot-hand/ics-admin/src/main/resources/mapper/admin/IcsCustomerStaffMapper.xml b/shoot-hand/ics-admin/src/main/resources/mapper/admin/IcsCustomerStaffMapper.xml index b98d33a..08fceda 100644 --- a/shoot-hand/ics-admin/src/main/resources/mapper/admin/IcsCustomerStaffMapper.xml +++ b/shoot-hand/ics-admin/src/main/resources/mapper/admin/IcsCustomerStaffMapper.xml @@ -223,10 +223,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + '1' + ]]> + '1' + update ics_customer_staff set gzh_openid = #{openid} where mobile = #{mobile} and delete_flag=0 and gzh_openid is null and data_type is not null and data_type<>'1' ]]> + + diff --git a/shoot-hand/ics-common/ics-common-redis/src/main/java/com/ics/common/redis/util/RedisUtils.java b/shoot-hand/ics-common/ics-common-redis/src/main/java/com/ics/common/redis/util/RedisUtils.java index fd37fc8..91c5f3d 100644 --- a/shoot-hand/ics-common/ics-common-redis/src/main/java/com/ics/common/redis/util/RedisUtils.java +++ b/shoot-hand/ics-common/ics-common-redis/src/main/java/com/ics/common/redis/util/RedisUtils.java @@ -28,7 +28,7 @@ public class RedisUtils { /** * 默认过期时长,单位:秒 */ - public final static long DEFAULT_EXPIRE = 60 * 60 * 24; + public final static long DEFAULT_EXPIRE = 60 * 60 * 12; /** * 不设置过期时长 diff --git a/shoot-hand/ics-system/src/main/java/com/ics/system/controller/LoginController.java b/shoot-hand/ics-system/src/main/java/com/ics/system/controller/LoginController.java index 4021bf3..6500b9a 100644 --- a/shoot-hand/ics-system/src/main/java/com/ics/system/controller/LoginController.java +++ b/shoot-hand/ics-system/src/main/java/com/ics/system/controller/LoginController.java @@ -91,11 +91,11 @@ public class LoginController { // 签发token Long userId = user.getId(); - Token token = tokenStore.createNewToken(userId.toString(), menuService.selectPermsStrArray(userId), roleService.selectRoleStrArray(userId), TokenUtil.DEFAULT_EXPIRE_REFRESH_TOKEN); + Token token = tokenStore.createNewToken(userId.toString(), menuService.selectPermsStrArray(userId), roleService.selectRoleStrArray(userId), RedisUtils.DEFAULT_EXPIRE); Map map = Maps.newHashMap(); map.put("userId", userId); map.put("token", token.getAccessToken()); - map.put("expire", TokenUtil.DEFAULT_EXPIRE_REFRESH_TOKEN); + map.put("expire", RedisUtils.DEFAULT_EXPIRE); // 登记在线信息 PublishFactory.recordUserOnlineInfo(user, token.getAccessToken()); diff --git a/shoot-hand/ics-system/src/main/java/com/ics/system/service/impl/AccessTokenServiceImpl.java b/shoot-hand/ics-system/src/main/java/com/ics/system/service/impl/AccessTokenServiceImpl.java index bab5e7b..32ef8a4 100644 --- a/shoot-hand/ics-system/src/main/java/com/ics/system/service/impl/AccessTokenServiceImpl.java +++ b/shoot-hand/ics-system/src/main/java/com/ics/system/service/impl/AccessTokenServiceImpl.java @@ -61,7 +61,7 @@ public class AccessTokenServiceImpl implements IAccessTokenService { // 签发token Long userId = user.getId(); - Token token = tokenStore.createNewToken(userId.toString(), new String[]{"member:center:view"}, new String[]{"appUser"}, TokenUtil.DEFAULT_EXPIRE_REFRESH_TOKEN); + Token token = tokenStore.createNewToken(userId.toString(), new String[]{"member:center:view"}, new String[]{"appUser"}, RedisUtils.DEFAULT_EXPIRE); Map map = Maps.newHashMap(); map.put("userId", userId); map.put("token", token.getAccessToken()); @@ -79,7 +79,7 @@ public class AccessTokenServiceImpl implements IAccessTokenService { public Map createStaffToken(IcsCustomerStaff icsCustomerStaff) { // 签发token Long userId = icsCustomerStaff.getId(); - Token token = tokenStore.createNewToken(userId.toString(), new String[]{"member:center:view"}, new String[]{"appUser"}, TokenUtil.DEFAULT_EXPIRE_REFRESH_TOKEN); + Token token = tokenStore.createNewToken(userId.toString(), new String[]{"member:center:view"}, new String[]{"appUser"}, RedisUtils.DEFAULT_EXPIRE); Map map = Maps.newHashMap(); map.put("userId", userId); map.put("token", token.getAccessToken()); diff --git a/shoot-hand/ics-web/src/main/java/com/ics/controller/mobile/WxBindController.java b/shoot-hand/ics-web/src/main/java/com/ics/controller/mobile/WxBindController.java index 7640dfb..a4e1cf5 100644 --- a/shoot-hand/ics-web/src/main/java/com/ics/controller/mobile/WxBindController.java +++ b/shoot-hand/ics-web/src/main/java/com/ics/controller/mobile/WxBindController.java @@ -2,6 +2,7 @@ package com.ics.controller.mobile; import com.alibaba.fastjson.JSONObject; import com.ics.admin.service.IIcsCustomerStaffService; +import com.ics.common.core.domain.IcsCustomerStaff; import com.ics.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -17,6 +18,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URLEncoder; +import java.util.List; /** * 微信公众号openid 绑定手机号 @@ -39,7 +41,9 @@ public class WxBindController { @Value("${webchatGZH.access}") private String access; - private static String html; + private static String removehtml; + + private static String bindhtml; @Autowired private IIcsCustomerStaffService customerStaffService; @@ -72,9 +76,21 @@ public class WxBindController { String url = String.format(OAUTH2_TOKEN, appid, secret, code); JSONObject result = SmallWxOkHttp.sendGet(url, null); String openid = result.getString("openid"); - String page = readHtml(); + List list = customerStaffService.getUserByGzhOpenid(openid); + if (list.size() > 0) {//已经绑定的用户 + String mobile = list.get(0).getMobile(); + if (StringUtils.isNotBlank(mobile) && mobile.length() == 11) { + mobile = mobile.substring(0, 3) + "****" + mobile.substring(7); + } else { + mobile = "****"; + } + if (StringUtils.isBlank(removehtml)) removehtml = readHtml("removeBind.html"); + String removeUrl = access + "/wxbind/removeBind";//绑定按钮的提交地址 + return String.format(removehtml, mobile, removeUrl, openid); + } + if (StringUtils.isBlank(bindhtml)) bindhtml = readHtml("phoneBind.html"); String submitUrl = access + "/wxbind/bind";//绑定按钮的提交地址 - return String.format(page, submitUrl, openid); + return String.format(bindhtml, submitUrl, openid); } /** @@ -93,13 +109,21 @@ public class WxBindController { return String.format(resultHtml, row > 0 ? "绑定成功" : "绑定失败"); } + @Ignore + @ResponseBody + @PostMapping(value = "/removeBind", produces = "text/html;charset=utf-8") + public String removeBind(String openid) { + String resultHtml = "

%s

"; + int row = customerStaffService.clearGzhOpenid(openid); + return String.format(resultHtml, row > 0 ? "解绑成功" : "解绑失败"); + } + /** * 获取绑定页面 */ - private static String readHtml() { - if (StringUtils.isNotBlank(html)) return html; + private static String readHtml(String fileName) { StringBuilder sb = new StringBuilder(); - ClassPathResource resource = new ClassPathResource("phoneBind.html"); + ClassPathResource resource = new ClassPathResource(fileName); try (BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream()))) { String line; while ((line = br.readLine()) != null) { @@ -108,8 +132,7 @@ public class WxBindController { } catch (IOException e) { e.printStackTrace(); } - html = sb.toString(); - return html; + return sb.toString(); } } diff --git a/shoot-hand/ics-web/src/main/java/com/ics/service/impl/RepairRemindPushServiceImpl.java b/shoot-hand/ics-web/src/main/java/com/ics/service/impl/RepairRemindPushServiceImpl.java index fde276f..6145d97 100644 --- a/shoot-hand/ics-web/src/main/java/com/ics/service/impl/RepairRemindPushServiceImpl.java +++ b/shoot-hand/ics-web/src/main/java/com/ics/service/impl/RepairRemindPushServiceImpl.java @@ -114,7 +114,7 @@ public class RepairRemindPushServiceImpl implements RepairRemindPushService { data.put("thing37", msg); param.put("data", data); JSONObject result = send(url, JSON.toJSONString(param)); - System.out.println(result.toString()); + //System.out.println(result.toString()); if (result == null || result.getInteger("errcode") == null || result.getInteger("errcode") != 0) { failed.add(repairRemind.getId()); } else { diff --git a/shoot-hand/ics-web/src/main/resources/removeBind.html b/shoot-hand/ics-web/src/main/resources/removeBind.html new file mode 100644 index 0000000..b340307 --- /dev/null +++ b/shoot-hand/ics-web/src/main/resources/removeBind.html @@ -0,0 +1,79 @@ + + + + + + + 工作人员解绑 + + + + +
+ +
+ + +