Sfoglia il codice sorgente

add(backend) [标签 用户 1.0]

wangxiao 4 anni fa
parent
commit
d2663839a8

+ 21 - 7
operation-backend/src/main/java/com/idiot/operationbackend/controller/FansController.java

@@ -16,6 +16,9 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -59,19 +62,30 @@ public class FansController {
 
 
 
-    @PostMapping("/addRemark/{fansId}")
+    @PostMapping("/addRemark")
     @ApiOperation(value = "粉丝添加/修改备注")
-    public ResponseEntity<JsonResult<Boolean>> addRemark(@RequestParam String remark,@RequestParam String fansId) {
+    public ResponseEntity<JsonResult<Boolean>> addRemark(@RequestParam String remark,
+                                                         @RequestParam String openId,
+                                                         @RequestParam String accountId) {
         if (StringUtils.isEmpty(remark)){
             throw new CustomException(500,"备注不能为空!");
         }
-        AccountFans fans = fansService.getById(fansId);
-        if (Objects.isNull(fans)){
-            throw new CustomException(500,"选择用户不能为空!");
-        }
-        boolean ifUp = weChatService.updateRemark(fans.getAccountId(),fans.getOpenId(),remark);
+
+        boolean ifUp = weChatService.updateRemark(accountId,openId,remark);
         return ResponseEntity.ok(JsonResult.success(ifUp));
     }
 
 
+    @PostMapping("/markTag")
+    public ResponseEntity<JsonResult<Boolean>> addTag(@RequestParam String accountId,
+                                                      @RequestParam String openIds,
+                                                      @RequestParam Integer wxId) {
+
+        List<String> open = new ArrayList<String>(Arrays.asList(openIds.split(",")));
+
+        return ResponseEntity.ok(JsonResult.success(false));
+    }
+
+
+
 }

+ 22 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/facade/AccountTagService.java

@@ -71,4 +71,26 @@ public interface AccountTagService extends IService<AccountTag> {
      * @return boolean
      */
     boolean addTag(String label,String accountId,int wxId);
+
+    /**
+     *  更新标签用户数
+     * @author wangxiao
+     * @date 21:04 2020/9/17
+     * @param accountId
+     * @param wxId
+     * @param size
+     * @return boolean
+     */
+    boolean updateTagSize(String accountId,int wxId,int size);
+
+
+    /**
+     *  获取标签
+     * @author wangxiao
+     * @date 21:09 2020/9/17
+     * @param accountId
+     * @param wxId
+     * @return com.idiot.operationbackend.entity.AccountTag
+     */
+    AccountTag getAccountTag(String accountId,int wxId);
 }

+ 12 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/facade/WeChatService.java

@@ -251,6 +251,18 @@ public interface WeChatService {
    */
   boolean createTag (String accountId,String tagLabel);
 
+
+  /**
+   *  用户打标签
+   * @author wangxiao
+   * @date 20:36 2020/9/17
+   * @param accountId
+   * @param openIds
+   * @param wxId
+   * @return boolean
+   */
+  boolean addUserTag(String accountId,List<String> openIds,int wxId);
+
   /**
    * 不支持的消息
    * @author wangxiao

+ 18 - 0
operation-backend/src/main/java/com/idiot/operationbackend/service/impl/AccountTagServiceImpl.java

@@ -78,4 +78,22 @@ public class AccountTagServiceImpl  extends ServiceImpl<AccountTagMapper,Account
     public boolean addTag(String label, String accountId, int wxId) {
         return save(new AccountTag(wxId,accountId,label));
     }
+
+    @Override
+    public AccountTag getAccountTag(String accountId, int wxId) {
+        return getOne(Wrappers.<AccountTag>lambdaQuery()
+                .eq(AccountTag::getAccountId,accountId)
+                .eq(AccountTag::getWxId,wxId),false);
+    }
+
+    @Override
+    public boolean updateTagSize(String accountId, int wxId, int size) {
+
+        AccountTag accountTag = getAccountTag(accountId,wxId);
+        if (null == accountTag){
+            return false;
+        }
+        accountTag.setFansCount(accountTag.getFansCount()+size);
+        return updateById(accountTag);
+    }
 }

+ 25 - 1
operation-backend/src/main/java/com/idiot/operationbackend/service/impl/WeChatServiceImpl.java

@@ -480,7 +480,7 @@ public class WeChatServiceImpl implements WeChatService, InitializingBean {
         ResponseEntity<String> respStr = restTemplate.exchange(requestUrl,HttpMethod.POST,entity,String.class);
         String jsonStr = respStr.getBody();
         logger.info("微信设置备注,accountId:{}----end,时间:{},微信返回{}",accountId,LocalDateTime.now().toString(),jsonStr);
-        if (0 ==JSONObject.parseObject(jsonStr).getInteger("errcode")) {
+        if (0 ==JSONObject.parseObject(jsonStr).getIntValue("errcode")) {
             return fansService.updateFansRemark(accountId,openId,remark);
         }
         return false;
@@ -510,4 +510,28 @@ public class WeChatServiceImpl implements WeChatService, InitializingBean {
         }
         return false;
     }
+
+
+    @Override
+    public boolean addUserTag(String accountId, List<String> openIds, int wxId) {
+        String requestUrl = "https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=%s";
+        String accessToken = getAuthorizerAccessToken(accountId);
+        requestUrl =  String.format(requestUrl,accessToken);
+
+        MultiValueMap<String,Object> params = new LinkedMultiValueMap<>(2);
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        params.add("openid_list",openIds);
+        params.add("tagid",wxId);
+        int size = openIds.size();
+        HttpEntity<MultiValueMap<String, Object>>  entity = new HttpEntity<> (params,headers);
+        logger.info("微信用户打标签,accountId:{},opedId size:{}----start,时间:{}",accountId,size, LocalDateTime.now().toString());
+        ResponseEntity<String> respStr = restTemplate.exchange(requestUrl,HttpMethod.POST,entity,String.class);
+        String jsonStr = respStr.getBody();
+        logger.info("微信用户打标签,accountId:{},opedId size:{}----end,时间:{},微信返回:{}",accountId,size, LocalDateTime.now().toString(),jsonStr);
+        if (0 ==JSONObject.parseObject(jsonStr).getIntValue("errcode")) {
+            return tagService.updateTagSize(accountId,wxId,size);
+        }
+        return false;
+    }
 }