Prechádzať zdrojové kódy

Merge branch '84-integrate' into 'develop'

develop-20230222



See merge request !35

linwenhua 2 rokov pred
rodič
commit
8f0e047290

+ 12 - 0
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/keycloak/KeycloakServiceImpl.java

@@ -457,4 +457,16 @@ public class KeycloakServiceImpl implements KeycloakService {
             return PageResponse.of(userRepresentations ,0 ,0,0);
         }
     }
+
+    @Override
+    public List<String> queryWechatByRole(String role) {
+        List<String> openIds = Lists.newArrayList();
+         realmResource.roles().get(role).getRoleUserMembers().forEach(user->{
+             Map<String, List<String>> attributes = user.getAttributes();
+             if (attributes != null && attributes.get("wechat") != null) {
+                 openIds.addAll(attributes.get("wechat"));
+             }
+        });
+        return openIds;
+    }
 }

+ 4 - 3
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/tenant/TenantCommonAttributeServiceImpl.java

@@ -10,14 +10,13 @@ import com.inspur.customer.infrastructure.mapper.tenant.TenantCommonAttributeMap
 import com.inspur.customer.infrastructure.object.tenant.TenantCommonAttributeDO;
 import com.inspur.customer.object.tenant.TenantAttributeCO;
 import com.inspur.device.client.core.manage.SmsbDeviceService;
-import com.inspur.device.object.core.manage.SmsbDeviceDto;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.BeanUtils;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
 
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
 import java.util.Objects;
 
 /**
@@ -34,6 +33,7 @@ public class TenantCommonAttributeServiceImpl extends ServiceImpl<TenantCommonAt
     private SmsbDeviceService smsbDeviceService;
 
     @Override
+    @CacheEvict(value = "msr:customer:tenantCommonAttribute")
     public Response saveOrUpdate(TenantAttributeCO attributeCO) {
         TenantCommonAttributeDO tenantAttribute = queryOne(attributeCO.getTenant() ,attributeCO.getAttributeKey());
         if(Objects.nonNull(tenantAttribute)){
@@ -57,6 +57,7 @@ public class TenantCommonAttributeServiceImpl extends ServiceImpl<TenantCommonAt
     }
 
     @Override
+    @Cacheable(value = "msr:customer:tenantCommonAttribute")
     public Response queryTenantAttribute(TenantAttributeCO attributeCO) {
         TenantCommonAttributeDO tenantAttribute = queryOne(attributeCO.getTenant() ,attributeCO.getAttributeKey());
         return SingleResponse.of(tenantAttribute);

+ 1 - 13
smsb-customer-manager-app/src/main/java/com/inspur/customer/service/wechat/WechatAppletUserServiceImpl.java

@@ -28,19 +28,7 @@ public class WechatAppletUserServiceImpl extends ServiceImpl<WechatAppletUserMap
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void change(WechatAppletUserDto dto) {
-        WechatAppletUser wechatAppletUser = super.getOne(Wrappers.lambdaQuery(WechatAppletUser.class).eq(WechatAppletUser::getOpenid, dto.getOpenid()));
-        if (wechatAppletUser != null) {
-            super.update(Wrappers.lambdaUpdate(WechatAppletUser.class)
-                .set(WechatAppletUser::getOpenid, dto.getOpenid())
-                .set(Objects.nonNull(dto.getPhoneNumber()), WechatAppletUser::getPhoneNumber, dto.getPhoneNumber())
-                .set(Objects.nonNull(dto.getNickName()), WechatAppletUser::getNickName, dto.getNickName())
-                .set(Objects.nonNull(dto.getAvatarUrl()), WechatAppletUser::getAvatarUrl, dto.getAvatarUrl())
-                .set(Objects.nonNull(dto.getGender()), WechatAppletUser::getGender, dto.getGender())
-                .set(Objects.nonNull(dto.getUnionid()), WechatAppletUser::getUnionid, dto.getUnionid())
-                .eq(WechatAppletUser::getOpenid, dto.getOpenid()));
-        } else {
-            super.save(BeanCopyUtils.copy(dto, WechatAppletUser.class));
-        }
+        super.baseMapper.change(BeanCopyUtils.copy(dto, WechatAppletUser.class));
     }
 
     @Override

+ 7 - 0
smsb-customer-manager-client/src/main/java/com/inspur/customer/client/keycloak/KeycloakService.java

@@ -223,4 +223,11 @@ public interface KeycloakService {
      */
     PageResponse<UserRepresentation> getUserListByIds(SmsbDepartmentCmd departmentCmd , List<String> userId);
 
+    /**
+     * 通过角色获取用户微信的openId
+     *
+     * @param role
+     * @return openId的集合
+     */
+    List<String> queryWechatByRole(String role);
 }

+ 0 - 2
smsb-customer-manager-client/src/main/java/com/inspur/customer/object/wechat/WechatAppletUserDto.java

@@ -20,8 +20,6 @@ import java.io.Serializable;
 @NoArgsConstructor
 public class WechatAppletUserDto implements Serializable {
     private static final long serialVersionUID = -4789099819647373586L;
-    private Long id;
-
     @NotEmpty(message = "openid不能为空")
     private String openid;
     

+ 2 - 0
smsb-customer-manager-infrastructure/src/main/java/com/inspur/customer/infrastructure/mapper/wechat/WechatAppletUserMapper.java

@@ -3,6 +3,7 @@ package com.inspur.customer.infrastructure.mapper.wechat;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.inspur.customer.infrastructure.object.wechat.WechatAppletUser;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author zengweijie
@@ -11,4 +12,5 @@ import org.apache.ibatis.annotations.Mapper;
  **/
 @Mapper
 public interface WechatAppletUserMapper extends BaseMapper<WechatAppletUser> {
+    void change(@Param("user") WechatAppletUser wechatAppletUser);
 }

+ 1 - 4
smsb-customer-manager-infrastructure/src/main/java/com/inspur/customer/infrastructure/object/wechat/WechatAppletUser.java

@@ -17,10 +17,7 @@ import java.io.Serializable;
 @TableName("wechat_applet_user")
 public class WechatAppletUser implements Serializable {
     private static final long serialVersionUID = 2228544833202173914L;
-
-    @TableId(type = IdType.ASSIGN_ID)
-    private Long id;
-
+    @TableId(type = IdType.INPUT)
     private String openid;
 
     private String unionid;

+ 53 - 1
smsb-customer-manager-infrastructure/src/main/resources/mapper/wechat/WechatAppletUserMapper.xml

@@ -1,5 +1,57 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.inspur.customer.infrastructure.mapper.wechat.WechatAppletUserMapper">
-
+    <insert id="change">
+        INSERT INTO `wechat_applet_user`(`openid`
+        <if test="user.unionid != null">
+            , `unionid`
+        </if>
+        <if test="user.nickName != null">
+            , `nick_name`
+        </if>
+        <if test="user.avatarUrl != null">
+            , `avatar_url`
+        </if>
+        <if test="user.gender != null">
+            , `gender`
+        </if>
+        <if test="user.phoneNumber != null">
+            , `phone_number`
+        </if>
+        )
+        VALUES
+        (#{user.openid}
+        <if test="user.unionid != null">
+            , #{user.unionid}
+        </if>
+        <if test="user.nickName != null">
+            , #{user.nickName}
+        </if>
+        <if test="user.avatarUrl != null">
+            , #{user.avatarUrl}
+        </if>
+        <if test="user.gender != null">
+            , #{user.gender}
+        </if>
+        <if test="user.phoneNumber != null">
+            , #{user.phoneNumber}
+        </if>
+        )
+        ON DUPLICATE KEY UPDATE `openid` = VALUES (`openid`)
+        <if test="user.unionid != null">
+            , `unionid` = VALUES (`unionid`)
+        </if>
+        <if test="user.nickName != null">
+            , `nick_name` = VALUES (`nick_name`)
+        </if>
+        <if test="user.avatarUrl != null">
+            , `avatar_url` = VALUES (`avatar_url`)
+        </if>
+        <if test="user.gender != null">
+            , `gender` = VALUES (`gender`)
+        </if>
+        <if test="user.phoneNumber != null">
+            , `phone_number` = VALUES (`phone_number`)
+        </if>
+    </insert>
 </mapper>