helixiao 2 år sedan
förälder
incheckning
3fe3d83747

+ 28 - 0
sql/Online.sql

@@ -232,3 +232,31 @@ CREATE TABLE `pingan_sh_uploafile`  (
 
 --add by helixiao 20240827
 ALTER TABLE `sys_partner` ADD COLUMN `type` tinyint NOT NULL DEFAULT '1' COMMENT '合伙人等级';
+
+
+--add by helixiao 20240902
+DROP TABLE IF EXISTS `sys_geography_position`;
+CREATE TABLE `sys_geography_position` (
+                                          `id` varchar(50) NOT NULL COMMENT '员工编号',
+                                          `user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '员工姓名',
+                                          `longitude` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '经度',
+                                          `latitude` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '纬度',
+                                          `address` varchar(255) DEFAULT NULL COMMENT '地址',
+                                          `status` tinyint NOT NULL DEFAULT '1' COMMENT '在线状态(0:离线; 1:在线)',
+                                          `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+                                          `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
+                                          PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='APP用户地理位置表';
+
+DROP TABLE IF EXISTS `sys_geography_position_record`;
+CREATE TABLE `sys_geography_position_record` (
+                                                 `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
+                                                 `user_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '员工编号',
+                                                 `user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '员工姓名',
+                                                 `longitude` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '经度',
+                                                 `latitude` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '纬度',
+                                                 `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '地址',
+                                                 `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+                                                 `create_by` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人',
+                                                 PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='APP用户地理位置记录表';

+ 1 - 1
src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java

@@ -239,7 +239,7 @@ public class SysLoginController {
         String token = StpUtil.createLoginSession(user.getId());
         StpUtil.getSessionByLoginId(user.getId()).set(SaSession.USER, user);
         // 保存登录信息
-        sysUserService.saveLoginIpAddr(loginBean.getSystemType());
+        sysUserService.saveLoginIpAddr(loginBean.getSystemType(),user);
         return HttpResult.ok("登录成功", token);
 
     }

+ 3 - 2
src/main/java/com/ydtech/modules/admin/controller/SysPcAddressController.java

@@ -10,6 +10,7 @@ import com.ydtech.modules.admin.model.po.SysPcAddressHistory;
 import com.ydtech.modules.admin.service.SysGeographyPositionService;
 import com.ydtech.modules.admin.service.SysPcAddressHistoryService;
 import com.ydtech.modules.admin.service.SysPcAddressService;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,8 +22,8 @@ import java.util.List;
 @RestController
 @RequestMapping("/sys/ipAddr")
 @RequiredArgsConstructor
-@Api(tags = "地址")
-public class SysPcAddressController {
+@Api(tags = "PC登录地址")
+public class SysPcAddressController{
 
     private final SysPcAddressService sysPcAddressService;
 

+ 4 - 4
src/main/java/com/ydtech/modules/admin/controller/SysTelemarketingController.java

@@ -33,17 +33,17 @@ public class SysTelemarketingController {
         return HttpResult.ok(basePageResult);
     }
 
-    @PostMapping
+    @PostMapping("/add")
     @ApiOperation("电销数据添加")
     public HttpResult<Object> add(@RequestBody SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo) {
         sysTelemarketingWechatDataService.add(sysTelemarketingWechatDataSaveVo);
         return HttpResult.ok("添加成功");
     }
 
-    @PutMapping("{telemarketingId}")
+    @PostMapping("/revise")
     @ApiOperation("电销数据修改")
-    public HttpResult<Object> revise(@RequestBody SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo, @PathVariable String telemarketingId) {
-        sysTelemarketingWechatDataService.revise(telemarketingId, sysTelemarketingWechatDataSaveVo);
+    public HttpResult<Object> revise(@RequestBody SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo) {
+        sysTelemarketingWechatDataService.revise( sysTelemarketingWechatDataSaveVo);
         return HttpResult.ok("修改成功");
     }
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysTelemarketingWechatData.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -27,6 +28,11 @@ public class SysTelemarketingWechatData implements Serializable {
      */
     @TableField(value = "user_id")
     private String userId;
+    /**
+     * 用户名称
+     */
+    @TableField(value = "user_name")
+    private String userName;
 
     /**
      * 添加企业微信数量
@@ -38,6 +44,7 @@ public class SysTelemarketingWechatData implements Serializable {
      * 创建时间
      */
     @TableField(value = "create_time")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
     private Date createTime;
 
     /**

+ 4 - 1
src/main/java/com/ydtech/modules/admin/model/vo/SysTelemarketingWechatDataSaveVo.java

@@ -17,11 +17,14 @@ public class SysTelemarketingWechatDataSaveVo implements Serializable {
 
     private static final long serialVersionUID = 2698136338943221933L;
 
+    @ApiModelProperty("电销id")
+    private Integer id;
+
     @ApiModelProperty("添加企业微信数量")
     private Integer number;
 
     @ApiModelProperty("创建时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    private Date createTime;
+    private String createTime;
 
 }

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/SysPcAddressService.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysPcAddress;
 
 import java.util.List;
@@ -15,7 +16,7 @@ public interface SysPcAddressService extends IService<SysPcAddress> {
     /**
      * pc保存地址
      */
-    void saveSysPcAddress();
+    void saveSysPcAddress(SysUser user);
 
     /**
      * 获取所有人的地址

+ 3 - 5
src/main/java/com/ydtech/modules/admin/service/SysTelemarketingWechatDataService.java

@@ -23,13 +23,12 @@ public interface SysTelemarketingWechatDataService extends BaseIService<SysTelem
      *
      * @param date 添加日期
      */
-    default void checkData(Date date, String userId) {
+    default void checkData(String date, String userId) {
         List<SysTelemarketingWechatData> list = lambdaQuery()
                 .eq(SysTelemarketingWechatData::getCreateTime, date)
                 .eq(SysTelemarketingWechatData::getUserId, userId)
                 .list();
-        String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(date);
-        AssertionUtils.isSucceed(!list.isEmpty(), "日期为:" + dateStr + "添加了日期");
+        AssertionUtils.isSucceed(list.size()==0, "日期为:" + date + "已添加过微信数量");
 
     }
 
@@ -49,8 +48,7 @@ public interface SysTelemarketingWechatDataService extends BaseIService<SysTelem
     void add(SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo);
 
     /**
-     * @param telemarketingId 电销id
      * @param sysTelemarketingWechatDataSaveVo 微信数据实体
      */
-    void revise(String telemarketingId, SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo);
+    void revise( SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo);
 }

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -248,7 +248,7 @@ public interface SysUserService extends BaseIService<SysUser> {
      *
      * @param systemType 系统类型啊
      */
-    void saveLoginIpAddr(String systemType);
+    void saveLoginIpAddr(String systemType,SysUser user);
 
 
 }

+ 5 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java

@@ -38,14 +38,17 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void saveSysPcAddress() {
-        SysUser user = BaseController.getUser();
+    public void saveSysPcAddress(SysUser user) {
         SysPcAddress sysPcAddress = getById(user.getId());
+        if (sysPcAddress == null) {
+            sysPcAddress=new SysPcAddress();
+        }
         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
         String ipAddr = IPUtil.getIpAddr(request);
         IPInfo ipInfo = IPInfoUtils.getIpInfo(ipAddr);
         sysPcAddress.setUserId(user.getId());
         sysPcAddress.setUserName(user.getName());
+        sysPcAddress.setIp(ipAddr);
         sysPcAddress.setLatitude(String.valueOf(ipInfo.getLat()));
         sysPcAddress.setLongitude(String.valueOf(ipInfo.getLng()));
         sysPcAddress.setAddress(ipInfo.getAddress());

+ 20 - 5
src/main/java/com/ydtech/modules/admin/service/impl/SysTelemarketingWechatDataServiceImpl.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.service.impl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.admin.dao.SysTelemarketingWechatDataMapper;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.po.SysTelemarketingWechatData;
 import com.ydtech.modules.admin.model.vo.SysTelemarketingWechatDataSaveVo;
 import com.ydtech.modules.admin.model.vo.SysTelemarketingWechatDataVo;
@@ -10,9 +11,12 @@ import com.ydtech.modules.admin.service.SysTelemarketingWechatDataService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
+import com.ydtech.utils.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
@@ -30,6 +34,8 @@ public class SysTelemarketingWechatDataServiceImpl extends ServiceImpl<SysTelema
         String userId = BaseController.getUserId();
         Page<SysTelemarketingWechatData> sysTelemarketingWechatDataPage = lambdaQuery()
                 .eq(SysTelemarketingWechatData::getUserId, userId)
+                .between(StringUtils.isNotEmpty(sysTelemarketingWechatDataVo.getStartTime()) && StringUtils.isNotEmpty(sysTelemarketingWechatDataVo.getStartTime()),
+                        SysTelemarketingWechatData::getCreateTime,sysTelemarketingWechatDataVo.getStartTime(),sysTelemarketingWechatDataVo.getEndTime())
                 .page(page);
 
         return new BasePageResult<>(
@@ -42,18 +48,27 @@ public class SysTelemarketingWechatDataServiceImpl extends ServiceImpl<SysTelema
 
     @Override
     public void add(SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo) {
-        String userId = BaseController.getUserId();
-        checkData(sysTelemarketingWechatDataSaveVo.getCreateTime(), userId);
+        SysUser user = BaseController.getUser();
+        checkData(sysTelemarketingWechatDataSaveVo.getCreateTime(), user.getId());
         SysTelemarketingWechatData sysTelemarketingWechatData = new SysTelemarketingWechatData();
         BeanUtils.copyProperties(sysTelemarketingWechatDataSaveVo, sysTelemarketingWechatData);
-        sysTelemarketingWechatData.setUserId(userId);
+        sysTelemarketingWechatData.setUserId(user.getId());
+        sysTelemarketingWechatData.setUserName(user.getName());
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Date parse = null;
+        try {
+            parse = simpleDateFormat.parse(sysTelemarketingWechatDataSaveVo.getCreateTime());
+            sysTelemarketingWechatData.setCreateTime(parse);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
         boolean save = save(sysTelemarketingWechatData);
         AssertionUtils.isSucceed(save, "添加失败");
     }
 
     @Override
-    public void revise(String telemarketingId, SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo) {
-        SysTelemarketingWechatData sysTelemarketingWechatData = getByIdExist(telemarketingId, "查询不到此数据");
+    public void revise(SysTelemarketingWechatDataSaveVo sysTelemarketingWechatDataSaveVo) {
+        SysTelemarketingWechatData sysTelemarketingWechatData = getByIdExist(sysTelemarketingWechatDataSaveVo.getId(), "查询不到此数据");
         BeanUtils.copyProperties(sysTelemarketingWechatDataSaveVo, sysTelemarketingWechatData);
         sysTelemarketingWechatData.setUpdateTime(new Date());
         boolean b = updateById(sysTelemarketingWechatData);

+ 2 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1611,10 +1611,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public void saveLoginIpAddr(String systemType) {
+    public void saveLoginIpAddr(String systemType,SysUser user) {
         if (SystemType.ST_1.getCode().equals(systemType)) {
             try {
-                sysPcAddressService.saveSysPcAddress();
+                sysPcAddressService.saveSysPcAddress(user);
             }catch (Exception e){}
         }