Просмотр исходного кода

修复Date时区问题,增加企业客服封禁记录

LeoN 5 лет назад
Родитель
Сommit
383df6c221

+ 6 - 0
src/main/java/com/mokamrp/privates/controller/WorkContactRoomController.java

@@ -37,6 +37,12 @@ public class WorkContactRoomController extends BaseController<WorkContactRoom> {
         return AjaxResult.success(resMap);
     }
 
+    /**
+     * 查询客服所在群
+     * @author leon
+     * @param pageHandle
+     * @return
+     */
     @PostMapping("/getRoomByEmployeeId")
     public Object getRoomByEmployeeId(@RequestBody PostBasePageHandle pageHandle){
         Map<String,Object> res = workContactRoomService.getRoomByEmployeeId(pageHandle);

+ 21 - 2
src/main/java/com/mokamrp/privates/controller/WorkEmployeeController.java

@@ -98,10 +98,8 @@ public class WorkEmployeeController extends BaseController<WorkEmployee> {
         Map<String, Object> resMap = workEmployeeService.getPageList(handle);//所有
 
         return AjaxResult.success(resMap);
-
     }
 
-
     /**
      * 设置客服标签
      *
@@ -117,6 +115,27 @@ public class WorkEmployeeController extends BaseController<WorkEmployee> {
         return AjaxResult.success(Constants.SUCCESS);
     }
 
+    /**
+     * 设置封禁时间和状态
+     * @param setForbbidenHandle
+     * @return
+     */
+    @PostMapping("/setForbidden")
+    public Object setForbidden(@RequestBody SetForbbidenHandle setForbbidenHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        boolean res = workEmployeeService.setForbbiden(setForbbidenHandle);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 导出客服列表
+     * @param authUser
+     * @param handle
+     * @param bindingResult
+     * @return
+     */
     @RequestMapping("/export")
     @ResponseBody
     public Object export(

+ 24 - 0
src/main/java/com/mokamrp/privates/entity/SetForbbidenHandle.java

@@ -0,0 +1,24 @@
+package com.mokamrp.privates.entity;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 设置封禁状态请求实体
+ * @author leon
+ */
+@Data
+public class SetForbbidenHandle {
+    @NotNull(message = "id 不可为空")
+    private Integer id;
+
+    private Date forbbidenStartAt;
+
+    private Date forbbidenEndAt;
+
+    @NotNull(message = "forbbidenStatus 不可为空")
+    private Integer forbbidenStatus;
+}

+ 7 - 7
src/main/java/com/mokamrp/privates/mapper/WorkEmployeeMapper.xml

@@ -28,12 +28,12 @@
         <result column="log_user_id" property="logUserId"/>
         <result column="contact_auth" property="contactAuth"/>
         <result column="private_switch_status" property="privateSwitchStatus"/>
-        <result column="private_forbidden_status" property="privateForbiddenStatus"/>
+        <result column="private_forbbiden_status" property="privateForbbidenStatus"/>
         <result column="private_tag_id" property="privateTagId"/>
         <result column="private_phone_code" property="privatePhoneCode"/>
         <result column="private_user_id" property="privateUserId"/>
-        <result column="prohibit_start_at" property="prohibitStartAt"/>
-        <result column="prohibit_end_at" property="prohibitEndAt"/>
+        <result column="forbbiden_start_at" property="forbbidenStartAt"/>
+        <result column="forbbiden_end_at" property="forbbidenEndAt"/>
         <result column="created_at" property="createdAt"/>
         <result column="updated_at" property="updatedAt"/>
         <result column="deleted_at" property="deletedAt"/>
@@ -44,7 +44,7 @@
         id, wx_user_id, corp_id, name, mobile, position, gender, email, avatar, thumb_avatar,
         telephone, alias, extattr, status, qr_code, external_profile, external_position, address,
         open_user_id, wx_main_department_id, main_department_id, log_user_id, contact_auth,
-        private_switch_status, private_forbidden_status, private_tag_id, private_phone_code, private_user_id,prohibit_start_at,prohibit_end_at,created_at, updated_at, deleted_at
+        private_switch_status, private_forbbiden_status, private_tag_id, private_phone_code, private_user_id,forbbiden_start_at,forbbiden_end_at,created_at, updated_at, deleted_at
     </sql>
 
     <select id="getVoList" resultType="com.mokamrp.privates.mapper.vo.WorkEmployeeVo">
@@ -60,7 +60,7 @@
         A.private_switch_status,
         A.private_tag_id,
         A.private_phone_code,
-        A.private_forbidden_status,
+        A.private_forbbiden_status,
         A.private_user_id,
         A.cust_cnt,
         A.group_cnt,
@@ -69,8 +69,8 @@
         C.`name` AS companyName,
         D.group_id,
         E.tag_name,
-        A.prohibit_start_at,
-        A.prohibit_end_at
+        A.forbbiden_start_at,
+        A.forbbiden_end_at
         FROM
         mc_work_employee AS A
         LEFT JOIN private_group_corp AS D ON A.corp_id = D.corp_id

+ 5 - 5
src/main/java/com/mokamrp/privates/mapper/pojo/WorkEmployee.java

@@ -112,7 +112,7 @@ public class WorkEmployee extends Model<WorkEmployee> {
 
     private Integer privateSwitchStatus;
 
-    private Integer privateForbiddenStatus; //.1正常 2封禁中 3永封 4解封待确认
+    private Integer privateForbbidenStatus; //.1正常 2封禁中 3永封 4解封待确认
 
     /**
      * 小前台标签ID
@@ -132,11 +132,11 @@ public class WorkEmployee extends Model<WorkEmployee> {
     /**
      * 封禁开始时间
      */
-    private Date prohibitStartAt;
+    private Date forbbidenStartAt;
     /**
      * 封禁结束时间
      */
-    private Date prohibitEndAt;
+    private Date forbbidenEndAt;
 
     private Date createdAt;
     private Date updatedAt;
@@ -382,8 +382,8 @@ public class WorkEmployee extends Model<WorkEmployee> {
                 ", mainDepartmentId=" + mainDepartmentId +
                 ", logUserId=" + logUserId +
                 ", contactAuth=" + contactAuth +
-                ", prohibitStartAt=" + prohibitStartAt +
-                ", prohibitEndAt=" + prohibitEndAt +
+                ", forbbidenStartAt=" + forbbidenStartAt +
+                ", forbbidenEndAt=" + forbbidenEndAt +
                 ", createdAt=" + createdAt +
                 ", updatedAt=" + updatedAt +
                 ", deletedAt=" + deletedAt +

+ 3 - 0
src/main/java/com/mokamrp/privates/service/WorkEmployeeService.java

@@ -2,6 +2,7 @@ package com.mokamrp.privates.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.PostWorkEmployee;
+import com.mokamrp.privates.entity.SetForbbidenHandle;
 import com.mokamrp.privates.entity.WorkEmployeeHandle;
 import com.mokamrp.privates.mapper.pojo.Downfile;
 import com.mokamrp.privates.mapper.pojo.WorkEmployee;
@@ -24,6 +25,8 @@ public interface WorkEmployeeService extends IService<WorkEmployee> {
 
     public Boolean updateForbiddenStatus();
 
+    public boolean setForbbiden(SetForbbidenHandle setForbbidenHandle);
+
     public void export(Downfile downFile, PostWorkEmployee handle);
 
     public boolean setTag(Integer tagId,List<Integer> employeeIds);

+ 47 - 7
src/main/java/com/mokamrp/privates/service/impl/WorkEmployeeServiceImpl.java

@@ -8,11 +8,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mokamrp.privates.config.OSSConfiguration;
 import com.mokamrp.privates.entity.PostWorkEmployee;
+import com.mokamrp.privates.entity.SetForbbidenHandle;
 import com.mokamrp.privates.entity.WorkEmployeeHandle;
 import com.mokamrp.privates.mapper.*;
 import com.mokamrp.privates.mapper.pojo.*;
 import com.mokamrp.privates.mapper.vo.WorkEmployeeVo;
 import com.mokamrp.privates.service.UserCorpService;
+import com.mokamrp.privates.service.WorkEmployeeForbbidenRecordService;
 import com.mokamrp.privates.service.WorkEmployeeService;
 import com.mokamrp.privates.utils.OssFile;
 import com.mokamrp.privates.utils.StringUtils;
@@ -21,6 +23,9 @@ import org.springframework.stereotype.Service;
 
 import java.io.ByteArrayInputStream;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -58,6 +63,9 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
     private OSSConfiguration ossConfiguration;
 
     @Autowired
+    private WorkEmployeeForbbidenRecordService workEmployeeForbbidenRecordService;
+
+    @Autowired
     private OSS ossClient;
 
     public Object selectWorkEmployeeList(String authUserId, WorkEmployeeHandle workEmployee) {
@@ -82,21 +90,21 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
         List<WorkEmployee> workEmployeeList = this.list();
         long nowTime = new Date().getTime();
         for (WorkEmployee workEmployee : workEmployeeList) {
-            if (workEmployee.getPrivateForbiddenStatus() != 2) {
+            if (workEmployee.getPrivateForbbidenStatus() != 2) {
                 continue;
             }
-            if (workEmployee.getProhibitStartAt() == null || workEmployee.getProhibitEndAt() == null) {
+            if (workEmployee.getForbbidenStartAt() == null || workEmployee.getForbbidenEndAt() == null) {
                 continue;
             }
-            long prohibitStartTime = workEmployee.getProhibitStartAt().getTime();
-            long prohibitEndTime = workEmployee.getProhibitEndAt().getTime();
-            if (nowTime >= prohibitStartTime && nowTime <= prohibitEndTime) {
+            long forbbidenStartTime = workEmployee.getForbbidenStartAt().getTime();
+            long forbbidenEndTime = workEmployee.getForbbidenEndAt().getTime();
+            if (nowTime >= forbbidenStartTime && nowTime <= forbbidenEndTime) {
                 //.封禁中
             } else {
                 //.正常状态
-                if (workEmployee.getPrivateForbiddenStatus() == 2) {
+                if (workEmployee.getPrivateForbbidenStatus() == 2) {
                     WorkEmployee workEmployeeSave = new WorkEmployee();
-                    workEmployeeSave.setPrivateForbiddenStatus(4);
+                    workEmployeeSave.setPrivateForbbidenStatus(4);
                     this.update(workEmployeeSave, new UpdateWrapper<WorkEmployee>().in("id", workEmployee.getId()));
                 }
             }
@@ -318,4 +326,36 @@ public class WorkEmployeeServiceImpl extends ServiceImpl<WorkEmployeeMapper, Wor
         return true;
     }
 
+    /**
+     * 设置封禁状态/时间
+     * @param setForbbidenHandle
+     * @return
+     */
+    public boolean setForbbiden(SetForbbidenHandle setForbbidenHandle){
+        Date nowDate = new Date();
+        Date forbbidenStartAt = setForbbidenHandle.getForbbidenStartAt();
+        Date forbbidenEndAt = setForbbidenHandle.getForbbidenEndAt();
+        Integer id = setForbbidenHandle.getId();
+        Integer forbbidenStatus = setForbbidenHandle.getForbbidenStatus();
+        //.更新封禁信息
+        WorkEmployee workEmployee = new WorkEmployee();
+        workEmployee.setPrivateForbbidenStatus(setForbbidenHandle.getForbbidenStatus());
+        if (forbbidenStatus == 2){
+            workEmployee.setForbbidenStartAt(forbbidenStartAt);
+            workEmployee.setForbbidenEndAt(forbbidenEndAt);
+        }
+        this.update(workEmployee,new UpdateWrapper<WorkEmployee>().eq("id",id));
+        //.记录封禁历史
+        if (forbbidenStatus == 2){
+            WorkEmployeeForbbidenRecord workEmployeeForbbidenRecord = new WorkEmployeeForbbidenRecord();
+            workEmployeeForbbidenRecord.setEmployeeId(id);
+            workEmployeeForbbidenRecord.setForbbidenStartAt(forbbidenStartAt);
+            workEmployeeForbbidenRecord.setForbbidenEndAt(forbbidenEndAt);
+            workEmployeeForbbidenRecord.setCreateAt(nowDate);
+            workEmployeeForbbidenRecord.setUpdateAt(nowDate);
+            workEmployeeForbbidenRecordService.save(workEmployeeForbbidenRecord);
+        }
+        return true;
+    }
+
 }

+ 1 - 1
src/main/resources/application-local.properties

@@ -1,7 +1,7 @@
 server.port=8085
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat
+spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=GMT%2b8
 spring.datasource.username=typer
 spring.datasource.password=jch9sh_shl
 spring.datasource.max-idle=10

+ 1 - 1
src/main/resources/application-prod.properties

@@ -1,7 +1,7 @@
 server.port=8085
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://rm-uf6s9smcl373jjenc35930.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=GMT%2b0
+spring.datasource.url=jdbc:mysql://rm-uf6s9smcl373jjenc35930.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=GMT%2b8
 spring.datasource.username=mochat
 spring.datasource.password=MoChat666$%MOchaT
 spring.datasource.max-idle=10

+ 1 - 1
src/main/resources/application-test.properties

@@ -1,7 +1,7 @@
 server.port=8085
 
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat
+spring.datasource.url=jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat?serverTimezone=GMT%2b8
 spring.datasource.username=typer
 spring.datasource.password=jch9sh_shl
 spring.datasource.max-idle=10

+ 1 - 0
src/main/resources/application.properties

@@ -1,5 +1,6 @@
 spring.application.name=moka-private
 server.port=8085
+spring.jackson.time-zone= GMT+8
 
 server.servlet.context-path=/private
 spring.profiles.active=${profileActive}

+ 5 - 5
src/test/java/com/mokamrp/AutoMP.java

@@ -15,9 +15,9 @@ public class AutoMP {
 	/**
 	 * 代码生成    示例代码
 	 */
-
 	@Test
-	public void  testGenerator() {
+	public void testGenerator() {
+
 		//1. 全局配置
 		String outPutDir = "D://project/moka-private/src/main/java";
 		GlobalConfig config = new GlobalConfig();
@@ -35,7 +35,7 @@ public class AutoMP {
 		DataSourceConfig  dsConfig  = new DataSourceConfig();
 		dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
 				.setDriverName("com.mysql.cj.jdbc.Driver")
-				.setUrl("jdbc:mysql://rm-uf618jc32u2o80g558o.mysql.rds.aliyuncs.com:3306/mochat")
+				.setUrl("jdbc:mysql://rm-uf618jc32u2o80g55oo.mysql.rds.aliyuncs.com:3306/mochat")
 				.setUsername("typer")
 				.setPassword("jch9sh_shl");
 		 
@@ -46,8 +46,8 @@ public class AutoMP {
 				.setSuperControllerClass("BaseController")
 				.setColumnNaming(NamingStrategy.underline_to_camel)
 				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
-				.setTablePrefix("mc_") //表名前缀
-				.setInclude("mc_work_employee");  // 生成的表
+				.setTablePrefix("private_") //表名前缀
+				.setInclude("private_work_employee_forbbiden_record");  // 生成的表
 		
 		//4. 包名策略配置 
 		PackageConfig pkConfig = new PackageConfig();