瀏覽代碼

同步企微聊天相关代码

Long 3 周之前
父節點
當前提交
6906a538a4

+ 14 - 22
fs-admin/src/main/java/com/fs/store/controller/FsCityController.java

@@ -1,33 +1,25 @@
 package com.fs.store.controller;
 
-import java.util.List;
-
-import com.fs.common.core.domain.R;
-import com.fs.store.utils.CityTreeUtil;
-import com.fs.store.vo.CityVO;
-import com.google.common.collect.Lists;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.store.domain.FsCity;
 import com.fs.store.service.IFsCityService;
-import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.common.core.page.TableDataInfo;
+import com.fs.store.utils.CityTreeUtil;
+import com.fs.store.vo.CityVO;
+import com.google.common.collect.Lists;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.Cacheable;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 
 /**
  * 城市Controller
@@ -127,9 +119,9 @@ public class FsCityController extends BaseController
         List<CityVO> cityVOS = Lists.newArrayList();
         for (FsCity city : list){
             CityVO cityVO = new CityVO();
-            cityVO.setValue(city.getCityId());
-            cityVO.setLabel(city.getName());
-            cityVO.setPid(city.getParentId());
+            cityVO.setValue(Long.parseLong(city.getCityId()));
+            cityVO.setLabel(city.getCityName());
+            cityVO.setPid(Long.parseLong(city.getParentId()));
             cityVOS.add(cityVO);
         }
         return R.ok().put("data", CityTreeUtil.list2TreeConverter(cityVOS, 0));

+ 4 - 17
fs-company-app/src/main/java/com/fs/app/controller/CommonController.java

@@ -1,7 +1,6 @@
 package com.fs.app.controller;
 
 
-import cn.hutool.json.JSONUtil;
 import cn.jiguang.common.resp.APIConnectionException;
 import cn.jiguang.common.resp.APIRequestException;
 import com.fs.app.annotation.Login;
@@ -12,21 +11,14 @@ import com.fs.common.config.FSConfig;
 import com.fs.common.config.FSSysConfig;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
-import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.exception.file.OssException;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.file.FileUploadUtils;
-import com.fs.company.domain.CompanySmsLogs;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanySmsLogsService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.company.service.ICompanyVoiceLogsService;
 import com.fs.core.config.ServerConfig;
-import com.fs.crm.domain.CrmCustomer;
-import com.fs.crm.domain.CrmCustomerContacts;
-import com.fs.crm.domain.CrmCustomerHisOrder;
-import com.fs.crm.dto.CrmCustomerHisOrderDTO;
-import com.fs.crm.dto.CrmCustomerHisOrderItemDTO;
 import com.fs.crm.service.*;
 import com.fs.jpush.service.JpushService;
 import com.fs.store.domain.FsAppVersion;
@@ -36,9 +28,9 @@ import com.fs.store.service.IFsCityService;
 import com.fs.store.service.IPrescribeService;
 import com.fs.system.oss.CloudStorageService;
 import com.fs.system.oss.OSSFactory;
-import com.fs.system.vo.DictVO;
 import com.fs.system.service.ISysConfigService;
 import com.fs.system.service.ISysDictDataService;
+import com.fs.system.vo.DictVO;
 import com.fs.voice.service.IVoiceService;
 import com.google.common.collect.Lists;
 import io.swagger.annotations.Api;
@@ -47,16 +39,11 @@ import io.swagger.annotations.ApiParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.Cacheable;
 
 import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.sql.*;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -132,9 +119,9 @@ public class CommonController extends AppBaseController {
 		List<CityVO> cityVOS = Lists.newArrayList();
 		for (FsCity city : list){
 			CityVO cityVO = new CityVO();
-			cityVO.setValue(city.getCityId());
-			cityVO.setLabel(city.getName());
-			cityVO.setPid(city.getParentId());
+			cityVO.setValue(Long.parseLong(city.getCityId()));
+			cityVO.setLabel(city.getCityName());
+			cityVO.setPid(Long.parseLong(city.getParentId()));
 			cityVOS.add(cityVO);
 		}
 		return R.ok().put("data", CityTreeUtil.list2TreeConverter(cityVOS, 0));

+ 15 - 10
fs-company/src/main/java/com/fs/qw/vo/QwUserVO.java

@@ -41,31 +41,36 @@ public class QwUserVO {
     private String userName;
     private String welcomeText;
     /**
-    * 活码id
-    */
+     * 活码id
+     */
     private String configId;
     /**
-    * 联系我
-    */
+     * 联系我
+     */
     private String contactWay;
     /**
-    * AI客服角色名
-    */
+     * AI客服角色名
+     */
     private String fastGptRoleName;
 
     /**
-    * 登录状态
-    */
+     * 登录状态
+     */
     private Integer loginStatus;
     private Integer toolStatus;
     /**
-    * 云主机地址
-    */
+     * 云主机地址
+     */
     private String loginCodeUrl;
     /**
      * 插件版本号
      */
     private String version;
 
+    private String vid;
+    private String uid;
 
+    private Integer ipadStatus;
+    private Long serverId;
+    private Integer serverStatus;
 }

+ 1 - 0
fs-service-system/src/main/java/com/fs/company/vo/CompanyUserQwListVO.java

@@ -115,4 +115,5 @@ public class CompanyUserQwListVO extends BaseEntity {
 
 
     private Integer qwStatus;
+    private String addressId;
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -130,7 +130,7 @@ public interface QwUserMapper extends BaseMapper<QwUser>
             "LEFT JOIN company_user cu ON cu.user_id=qu.company_user_id " +
             "RIGHT JOIN qw_dept qd on qu.department=qd.dept_id and qd.corp_id=qu.corp_id " +
             "left join fastgpt_role fr on fr.role_id=qu.fastGpt_role_id " +
-            "where qu.is_del=0 and qu.company_user_id is not null "+
+            "where  qu.company_user_id is not null "+
             "            <if test=\"qwUserId != null  and qwUserId != ''\"> and qu.qw_user_id = #{qwUserId}</if>\n" +
             "            <if test=\"appKey != null  and appKey != ''\"> and qu.app_key = #{appKey}</if>\n" +
             "            <if test=\"nickName != null  and nickName != ''\"> and cu.nick_name like concat( #{nickName}, '%') </if>\n" +

+ 51 - 0
fs-service-system/src/main/java/com/fs/qw/result/QwFsServerIPResult.java

@@ -0,0 +1,51 @@
+package com.fs.qw.result;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.Map;
+
+@Data
+public class QwFsServerIPResult {
+    private Integer total;
+    private Row[] rows;
+    private Integer code;
+    private String msg;
+
+    @Data
+    public static class Row {
+        private Object searchValue;
+        private String createBy;
+        private Date createTime;
+        private String updateBy;
+        private Date updateTime;
+        private String remark;
+        private Map<String, Object> params;
+        private Long id;
+        private String ipAddress;
+        private String serverType;
+        private String memorySize;
+        private String bindAccount;
+        private String bindName;
+        private Long bindCompanyId;
+        private String bindCompanyName;
+        private Long bindDepartmentId;
+        private String bindDepartmentName;
+        private String bindCropId;
+        private String bindCropName;
+        private String serverAccount;
+        private String serverPassword;
+        private Date installTime;
+        private Date expirationTime;
+        private Integer status;
+        private Integer bindStatus;
+        private Integer isDel;
+        private String appKey;
+        private String value;
+        private String label;
+        private String city;
+        private String cityValue;
+        private String company;
+        private Date bindTime;
+    }
+}

+ 3 - 2
fs-service-system/src/main/java/com/fs/qw/service/impl/QwMsgServiceImpl.java

@@ -256,8 +256,6 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
     public List<QwUser> qwUserList(Long userId) {
         LambdaQueryWrapper<QwUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(QwUser::getCompanyUserId, userId);
-        lambdaQueryWrapper.eq(QwUser::getLoginStatus,1);
-        lambdaQueryWrapper.eq(QwUser::getToolStatus,1);
         List<QwUser> qwUsers = qwUserMapper.selectList(lambdaQueryWrapper);
         return qwUsers;
     }
@@ -289,6 +287,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
     @Override
     public List<QwContactListVO> selectQwConversationByUserId(Long userId) {
         LambdaQueryWrapper<QwSession> sessionWrapper = new LambdaQueryWrapper<>();
+        sessionWrapper.select(QwSession.class, q -> !q.getColumn().equals("remark"));
         sessionWrapper.eq(QwSession::getQwUserId, userId);
         sessionWrapper.orderByDesc(QwSession::getUpdateTime);
         List<QwSession> qwSessions = qwSessionMapper.selectList(sessionWrapper);
@@ -304,6 +303,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
             listVO.setDisplayName(qwSession.getNickName());
 //            listVO.setIndex(qwSession.getNickName().substring(0, 1));
             LambdaQueryWrapper<QwMsg> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.select(QwMsg.class, q -> !q.getColumn().equals("remark"));
             lambdaQueryWrapper.eq(QwMsg::getSessionId, qwSession.getSessionId());
             lambdaQueryWrapper.orderByDesc(QwMsg::getMsgId);
             lambdaQueryWrapper.last("limit 1");
@@ -325,6 +325,7 @@ public class QwMsgServiceImpl extends ServiceImpl<QwMsgMapper, QwMsg> implements
     @Override
     public List<QwMsg> selectQwMsgBySession(QwSessionParam param) {
         LambdaQueryWrapper<QwMsg> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.select(QwMsg.class, q -> !q.getColumn().equals("remark"));
         lambdaQueryWrapper.eq(QwMsg::getSessionId, param.getConversationId());
         lambdaQueryWrapper.orderByDesc(QwMsg::getMsgId);
         List<QwMsg> records = qwMsgMapper.selectList(lambdaQueryWrapper);

+ 28 - 2
fs-service-system/src/main/java/com/fs/qw/service/impl/QwUserServiceImpl.java

@@ -21,6 +21,7 @@ import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.mapper.QwWorkTaskMapper;
 import com.fs.qw.param.*;
 import com.fs.qw.result.QwFsServerBindResult;
+import com.fs.qw.result.QwFsServerIPResult;
 import com.fs.qw.service.*;
 import com.fs.qw.utils.RSASignatureUtils;
 import com.fs.qw.utils.RSAUtils;
@@ -684,7 +685,32 @@ public class QwUserServiceImpl implements IQwUserService
 
     @Override
     public List<QwUserVO> selectQwUserListStaffVO(QwUserListParam qwUser) {
-        return qwUserMapper.selectQwUserListStaffVO(qwUser);
+        List<QwUserVO> qwUserVOS = qwUserMapper.selectQwUserListStaffVO(qwUser);
+        qwUserVOS.forEach(item->{
+
+            if (!StringUtil.strIsNullOrEmpty(item.getLoginCodeUrl())) {
+                QwFsServerBindParam param=new QwFsServerBindParam();
+                param.setIpAddress(item.getLoginCodeUrl());
+
+                String body = HttpRequest.post("http://watch.ylrzcloud.com/prod-api/server/externalList")
+                        .body(JSON.toJSONString(param), "application/json;charset=UTF-8")
+                        .execute().body();
+
+                QwFsServerIPResult result = JSON.parseObject(body, QwFsServerIPResult.class);
+                if (result.getCode() == 200 && result.getRows().length > 0) {
+                    String serverType = result.getRows()[0].getServerType();
+                    if (StringUtil.strIsNullOrEmpty(serverType)) {
+                        item.setLoginCodeUrl(item.getLoginCodeUrl()+"【老版本】");
+                    }else {
+                        item.setLoginCodeUrl(item.getLoginCodeUrl()+"【新版本】");
+                    }
+
+                }
+
+            }
+        });
+
+        return qwUserVOS;
     }
 
     /**
@@ -982,7 +1008,7 @@ public class QwUserServiceImpl implements IQwUserService
             return R.ok("登录成功");
         }
         WxWorkSetCallbackUrlDTO wxWorkSetCallbackUrlDTO = new WxWorkSetCallbackUrlDTO();
-        wxWorkSetCallbackUrlDTO.setUrl("http://1.14.207.209:8008/msg/callback/"+serverId);
+        wxWorkSetCallbackUrlDTO.setUrl("http://c38da856.natappfree.cc/msg/callback/"+serverId);
         wxWorkSetCallbackUrlDTO.setUuid(data.getUuid());
         wxWorkService.SetCallbackUrl(wxWorkSetCallbackUrlDTO,serverId);
 

+ 85 - 71
fs-service-system/src/main/java/com/fs/store/domain/FsCity.java

@@ -7,40 +7,48 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
  * 城市对象 fs_city
- * 
+ *
  * @author fs
- * @date 2022-03-15
+ * @date 2023-06-02
  */
 public class FsCity extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /** ID */
     private Long id;
 
-    /** 城市id */
-    @Excel(name = "城市id")
-    private Long cityId;
+    /** 地址编码 */
+    @Excel(name = "地址编码")
+    private String cityId;
 
-    /** 省市级别 */
-    @Excel(name = "省市级别")
-    private Long level;
+    /** 地区名称 */
+    @Excel(name = "地区名称")
+    private String cityName;
 
-    /** 父级id */
-    @Excel(name = "父级id")
-    private Long parentId;
+    /** 地区全称 */
+    @Excel(name = "地区全称")
+    private String citySname;
 
-    /** 区号 */
-    @Excel(name = "区号")
-    private String areaCode;
+    /** 上级编码 */
+    @Excel(name = "上级编码")
+    private String parentId;
 
-    /** 名称 */
-    @Excel(name = "名称")
-    private String name;
+    /** 首字母 */
+    @Excel(name = "首字母")
+    private String spell;
 
-    /** 合并名称 */
-    @Excel(name = "合并名称")
-    private String mergerName;
+    /** 类型:1是省会,2直辖市,3港澳台,4其它 */
+    @Excel(name = "类型:1是省会,2直辖市,3港澳台,4其它")
+    private Integer cityType;
+
+    /** 同级下排序 */
+    @Excel(name = "同级下排序")
+    private Integer sort;
+
+    /** 0全国、1省、2市区、3郊县、4街道、5居委会 */
+    @Excel(name = "0全国、1省、2市区、3郊县、4街道、5居委会")
+    private Integer level;
 
     /** 经度 */
     @Excel(name = "经度")
@@ -50,114 +58,120 @@ public class FsCity extends BaseEntity
     @Excel(name = "纬度")
     private String lat;
 
-    /** 是否展示 */
-    @Excel(name = "是否展示")
-    private Integer isShow;
-
-    public void setId(Long id) 
+    public void setId(Long id)
     {
         this.id = id;
     }
 
-    public Long getId() 
+    public Long getId()
     {
         return id;
     }
-    public void setCityId(Long cityId) 
+    public void setCityId(String cityId)
     {
         this.cityId = cityId;
     }
 
-    public Long getCityId() 
+    public String getCityId()
     {
         return cityId;
     }
-    public void setLevel(Long level) 
+    public void setCityName(String cityName)
     {
-        this.level = level;
+        this.cityName = cityName;
     }
 
-    public Long getLevel() 
+    public String getCityName()
     {
-        return level;
+        return cityName;
+    }
+    public void setCitySname(String citySname)
+    {
+        this.citySname = citySname;
+    }
+
+    public String getCitySname()
+    {
+        return citySname;
     }
-    public void setParentId(Long parentId) 
+    public void setParentId(String parentId)
     {
         this.parentId = parentId;
     }
 
-    public Long getParentId() 
+    public String getParentId()
     {
         return parentId;
     }
-    public void setAreaCode(String areaCode) 
+    public void setSpell(String spell)
     {
-        this.areaCode = areaCode;
+        this.spell = spell;
     }
 
-    public String getAreaCode() 
+    public String getSpell()
     {
-        return areaCode;
+        return spell;
     }
-    public void setName(String name) 
+    public void setCityType(Integer cityType)
     {
-        this.name = name;
+        this.cityType = cityType;
     }
 
-    public String getName() 
+    public Integer getCityType()
     {
-        return name;
+        return cityType;
     }
-    public void setMergerName(String mergerName) 
+    public void setSort(Integer sort)
     {
-        this.mergerName = mergerName;
+        this.sort = sort;
     }
 
-    public String getMergerName() 
+    public Integer getSort()
     {
-        return mergerName;
+        return sort;
     }
-    public void setLng(String lng) 
+    public void setLevel(Integer level)
     {
-        this.lng = lng;
+        this.level = level;
     }
 
-    public String getLng() 
+    public Integer getLevel()
     {
-        return lng;
+        return level;
     }
-    public void setLat(String lat) 
+    public void setLng(String lng)
     {
-        this.lat = lat;
+        this.lng = lng;
     }
 
-    public String getLat() 
+    public String getLng()
     {
-        return lat;
+        return lng;
     }
-    public void setIsShow(Integer isShow) 
+    public void setLat(String lat)
     {
-        this.isShow = isShow;
+        this.lat = lat;
     }
 
-    public Integer getIsShow() 
+    public String getLat()
     {
-        return isShow;
+        return lat;
     }
 
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("cityId", getCityId())
-            .append("level", getLevel())
-            .append("parentId", getParentId())
-            .append("areaCode", getAreaCode())
-            .append("name", getName())
-            .append("mergerName", getMergerName())
-            .append("lng", getLng())
-            .append("lat", getLat())
-            .append("isShow", getIsShow())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("cityId", getCityId())
+                .append("cityName", getCityName())
+                .append("citySname", getCitySname())
+                .append("parentId", getParentId())
+                .append("spell", getSpell())
+                .append("cityType", getCityType())
+                .append("sort", getSort())
+                .append("level", getLevel())
+                .append("lng", getLng())
+                .append("lat", getLat())
+                .toString();
     }
 }

+ 4 - 4
fs-service-system/src/main/java/com/fs/store/mapper/FsCityMapper.java

@@ -1,11 +1,11 @@
 package com.fs.store.mapper;
 
-import java.util.List;
-
 import com.fs.his.vo.CitysAreaVO;
 import com.fs.store.domain.FsCity;
 import org.apache.ibatis.annotations.Select;
 
+import java.util.List;
+
 /**
  * 城市Mapper接口
  *
@@ -61,9 +61,9 @@ public interface FsCityMapper
      * @return 结果
      */
     public int deleteFsCityByIds(Long[] ids);
-    @Select("select * from fs_city where is_show=1")
+    @Select("select * from fs_city")
     List<FsCity> selectFsCitys();
 
-    @Select("SELECT city_id,name as city_name FROM fs_city where parent_id=0 ")
+    @Select("SELECT city_id,city_name as city_name FROM fs_city where parent_id=0 ")
     List<CitysAreaVO> getCitysArea();
 }