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

处理商城订单被转换到销售订单、CID电话限制按公司维度、CID加入删除字段

yjwang 1 месяц назад
Родитель
Сommit
a274658ae1

+ 4 - 1
fs-admin/src/main/java/com/fs/company/controller/CompanyVoiceRoboticController.java

@@ -137,7 +137,10 @@ public class CompanyVoiceRoboticController extends BaseController
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids)
     {
-        return toAjax(companyVoiceRoboticService.deleteCompanyVoiceRoboticByIds(ids));
+        for (Long id : ids) {
+            companyVoiceRoboticService.updateDelFlag(id, 1);
+        }
+        return AjaxResult.success();
     }
     /**
      * 删除机器人外呼任务

+ 4 - 1
fs-company/src/main/java/com/fs/company/controller/company/CompanyVoiceRoboticController.java

@@ -167,7 +167,10 @@ public class CompanyVoiceRoboticController extends BaseController
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids)
     {
-        return toAjax(companyVoiceRoboticService.deleteCompanyVoiceRoboticByIds(ids));
+        for (Long id : ids) {
+            companyVoiceRoboticService.updateDelFlag(id, 1);
+        }
+        return AjaxResult.success();
     }
     /**
      * 删除机器人外呼任务

+ 3 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyVoiceRobotic.java

@@ -135,4 +135,7 @@ public class CompanyVoiceRobotic {
     private String sceneTypeName;
     private LocalTime availableStartTime;
     private LocalTime availableEndTime;
+
+    /** 删除标志 0正常 1删除 */
+    private Integer delFlag;
 }

+ 9 - 1
fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceRoboticCallLogCallphoneMapper.java

@@ -74,9 +74,10 @@ public interface CompanyVoiceRoboticCallLogCallphoneMapper extends BaseMapper<Co
     /**
      * 根据业务ID查询当天的通话次数
      * @param businessId 业务ID (bes.id)
+     * @param companyId 公司ID
      * @return 当天通话次数,如果没有记录返回0
      */
-    int countTodayCallsByBusinessId(@Param("businessId") Long businessId);
+    int countTodayCallsByBusinessId(@Param("businessId") Long businessId,@Param("companyId") Long companyId);
 
     List<CompanyVoiceRoboticCallLogCallphone> selectCompanyVoiceRoboticCallPhoneLogGroupList(CompanyVoiceRoboticCallLogCallphone companyVoiceRoboticCallLogCallphone);
 
@@ -84,4 +85,11 @@ public interface CompanyVoiceRoboticCallLogCallphoneMapper extends BaseMapper<Co
 
 
     List<CompanyVoiceRoboticCallLogCallPhoneVO> listByRoboticId(CompanyVoiceRoboticCallLogCallphone companyVoiceRoboticCallLogCallphone);
+
+    /**
+     * 根据业务ID查询公司ID
+     * @param businessId 业务ID (bes.id)
+     * @return 公司ID
+     */
+    Long selectCompanyIdByBusinessId(@Param("businessId") Long businessId);
 }

+ 9 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceRoboticMapper.java

@@ -64,6 +64,15 @@ public interface CompanyVoiceRoboticMapper extends BaseMapper<CompanyVoiceRoboti
      */
     public int deleteCompanyVoiceRoboticByIds(Long[] ids);
 
+    /**
+     * 更新删除标志(逻辑删除)
+     * 
+     * @param id 机器人外呼任务ID
+     * @param delFlag 删除标志 0正常 1删除
+     * @return 结果
+     */
+    public int updateDelFlag(@Param("id") Long id, @Param("delFlag") Integer delFlag);
+
     List<CompanyVoiceRoboticQwUserListVo> qwUserList();
     List<CompanyVoiceRoboticQwUserListVo> qwUserListCompany(CompanyVoiceRobotic companyVoiceRobotic);
 

+ 9 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyVoiceRoboticService.java

@@ -72,6 +72,15 @@ public interface ICompanyVoiceRoboticService extends IService<CompanyVoiceRoboti
      */
     public int deleteCompanyVoiceRoboticById(Long id);
 
+    /**
+     * 更新删除标志(逻辑删除)
+     * 
+     * @param id 机器人外呼任务ID
+     * @param delFlag 删除标志 0正常 1删除
+     * @return 结果
+     */
+    public int updateDelFlag(Long id, Integer delFlag);
+
     List<CompanyVoiceRoboticQwUserListVo> qwUserList();
     List<CompanyVoiceRoboticQwUserListVo> qwUserListCompany(CompanyVoiceRobotic companyVoiceRobotic);
 

+ 15 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java

@@ -763,6 +763,18 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         return companyVoiceRoboticMapper.deleteCompanyVoiceRoboticById(id);
     }
 
+    /**
+     * 更新删除标志(逻辑删除)
+     *
+     * @param id 机器人外呼任务ID
+     * @param delFlag 删除标志 0正常 1删除
+     * @return 结果
+     */
+    @Override
+    public int updateDelFlag(Long id, Integer delFlag) {
+        return companyVoiceRoboticMapper.updateDelFlag(id, delFlag);
+    }
+
     @Override
     public List<CompanyVoiceRoboticQwUserListVo> qwUserList() {
         return companyVoiceRoboticMapper.qwUserList();
@@ -1127,6 +1139,9 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         if (robotic.getCompanyAiWorkflowId() == null) {
             throw new RuntimeException("任务未配置工作流: " + id);
         }
+        if(robotic.getDelFlag() == 1){
+            throw new RuntimeException("启动失败,当前任务已删除: " + id);
+        }
         robotic.setTaskStatus(1);
         updateById(robotic);
         // 根据任务加微方式决定是否直接分配微信 平均时 直接分配用户 场景任务不做分配

+ 28 - 19
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -879,7 +879,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     public R createOrder(long userId, FsStoreOrderCreateParam param) {
 
         FsUserCompanyUser fsUserCompanyUser = fsUserCompanyUserMapper.selectFsUserCompanyUserByUserId(userId);
-        if (ObjectUtil.isNotEmpty(fsUserCompanyUser)){
+        if (ObjectUtil.isNotEmpty(fsUserCompanyUser) && param.getVideoId()!=null){
             param.setCompanyId(fsUserCompanyUser.getCompanyId());
             param.setCompanyUserId(fsUserCompanyUser.getCompanyUserId());
         }
@@ -924,8 +924,13 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             //组合数据
             FsStoreOrderScrm storeOrder = new FsStoreOrderScrm();
             storeOrder.setStoreHouseCode("CK01");
-            storeOrder.setCompanyId(param.getCompanyId());
-            storeOrder.setCompanyUserId(param.getCompanyUserId());
+            if(param.getCompanyId()!=null){
+                storeOrder.setCompanyId(param.getCompanyId());
+            }
+
+            if(param.getCompanyUserId()!=null){
+                storeOrder.setCompanyUserId(param.getCompanyUserId());
+            }
 
             if ("北京卓美".equals(companyName) && param.getVideoId()!=null){
                 storeOrder.setVideoId(param.getVideoId());
@@ -935,24 +940,28 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             }
             String json = configService.selectConfigByKey("store.config");
             StoreConfig config= JSONUtil.toBean(json, StoreConfig.class);
-            //绑定销售
-            FsUserScrm fsuser= userService.selectFsUserById(userId);
-            if(ObjectUtil.isEmpty(config.getOrderAttribution())
-                    ||!config.getOrderAttribution().equals(1)){
-                if(param.getCompanyUserId()!=null){
-                    if (ObjectUtil.isNotEmpty(fsuser.getCompanyUserId())&&!fsuser.getCompanyUserId().equals(param.getCompanyUserId())){
-                        CompanyUser companyUser=companyUserService.selectCompanyUserById(fsuser.getCompanyUserId());
-                        return R.error(String.format("请联系%s销售进行购买商品!",companyUser.getNickName()));
+
+            //卓美商城正常下单
+            if("北京卓美".equals(companyName) && param.getVideoId()!=null || !"北京卓美".equals(companyName)){
+                //绑定销售
+                FsUserScrm fsuser= userService.selectFsUserById(userId);
+                if(ObjectUtil.isEmpty(config.getOrderAttribution())
+                        ||!config.getOrderAttribution().equals(1)){
+                    if(param.getCompanyUserId()!=null){
+                        if (ObjectUtil.isNotEmpty(fsuser.getCompanyUserId())&&!fsuser.getCompanyUserId().equals(param.getCompanyUserId())){
+                            CompanyUser companyUser=companyUserService.selectCompanyUserById(fsuser.getCompanyUserId());
+                            return R.error(String.format("请联系%s销售进行购买商品!",companyUser.getNickName()));
+                        }else {
+                            fsuser.setCompanyUserId(param.getCompanyUserId());
+                            userService.updateFsUser(fsuser);
+                        }
+                        CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
+                        if(companyUser!=null){
+                            storeOrder.setDeptId(companyUser.getDeptId());
+                        }
                     }else {
-                        fsuser.setCompanyUserId(param.getCompanyUserId());
-                        userService.updateFsUser(fsuser);
-                    }
-                    CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
-                    if(companyUser!=null){
-                        storeOrder.setDeptId(companyUser.getDeptId());
+                        storeOrder.setCompanyUserId(fsuser.getCompanyUserId());
                     }
-                }else {
-                    storeOrder.setCompanyUserId(fsuser.getCompanyUserId());
                 }
             }
 

+ 7 - 0
fs-service/src/main/resources/mapper/company/CompanyVoiceRoboticCallLogCallphoneMapper.xml

@@ -192,10 +192,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE bes.id = #{businessId}
         AND es.is_generate = 0
         )
+        AND callphone.company_id = #{companyId}
         AND callphone.create_time >= CURDATE()
         AND callphone.create_time &lt; CURDATE() + INTERVAL 1 DAY
     </select>
 
+
+
     <select id="selectCompanyVoiceRoboticCallPhoneLogGroupList" resultType="com.fs.company.domain.CompanyVoiceRoboticCallLogCallphone" parameterType="com.fs.company.domain.CompanyVoiceRoboticCallLogCallphone">
         select
         robotic_id,
@@ -244,5 +247,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+    <select id="selectCompanyIdByBusinessId" resultType="Long">
+        SELECT company_id FROM company_voice_robotic vr INNER JOIN company_voice_robotic_business rb ON vr.id = rb.robotic_id WHERE rb.id = 20 LIMIT 1
+    </select>
+
 
 </mapper>

+ 15 - 7
fs-service/src/main/resources/mapper/company/CompanyVoiceRoboticMapper.xml

@@ -25,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="endTime2"    column="end_time2"    />
         <result property="createTime"    column="create_time"    />
         <result property="companyAiWorkflowId"    column="company_ai_workflow_id"    />
+        <result property="delFlag"    column="del_flag"    />
     </resultMap>
 
     <sql id="selectCompanyVoiceRoboticVo">
@@ -34,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectCompanyVoiceRoboticList" parameterType="CompanyVoiceRobotic" resultMap="CompanyVoiceRoboticResult">
         <include refid="selectCompanyVoiceRoboticVo"/>
         <where>  
+            del_flag = 0
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
             <if test="taskName != null  and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
             <if test="taskId != null "> and task_id = #{taskId}</if>
@@ -61,6 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         inner join company_user u on a.create_user = u.user_id
         inner join company_dept d on u.dept_id = d.dept_id
         <where>
+            a.del_flag = 0
             <if test="taskType != null "> and a.task_type = #{taskType} </if>
             <if test="companyId != null"> and a.company_id = #{companyId} </if>
             <if test="name != null  and name != ''"> and a.name like concat('%', #{name}, '%')</if>
@@ -91,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <select id="selectCompanyVoiceRoboticById" parameterType="Long" resultMap="CompanyVoiceRoboticResult">
         <include refid="selectCompanyVoiceRoboticVo"/>
-        where id = #{id}
+        where id = #{id} and del_flag = 0
     </select>
     <select id="qwUserList" resultType="com.fs.company.vo.CompanyVoiceRoboticQwUserListVo">
         select a.id, a.wx_nick_name, a.wx_no, b.nick_name as companyUserName  from company_wx_account a
@@ -182,16 +185,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </update>
 
-    <delete id="deleteCompanyVoiceRoboticById" parameterType="Long">
-        delete from company_voice_robotic where id = #{id}
-    </delete>
+    <update id="deleteCompanyVoiceRoboticById" parameterType="Long">
+        update company_voice_robotic set del_flag = 1 where id = #{id}
+    </update>
 
-    <delete id="deleteCompanyVoiceRoboticByIds" parameterType="String">
-        delete from company_voice_robotic where id in 
+    <update id="deleteCompanyVoiceRoboticByIds" parameterType="String">
+        update company_voice_robotic set del_flag = 1 where id in 
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
-    </delete>
+    </update>
+
+    <update id="updateDelFlag">
+        update company_voice_robotic set del_flag = #{delFlag} where id = #{id}
+    </update>
 
     <update id="finishRobotic" parameterType="java.lang.Long">
         update company_voice_robotic set task_status = 3 where id = #{id} and task_flow = run_task_flow
@@ -219,6 +226,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select * from company_voice_robotic where company_id = #{companyId}
                                               and scene_type = #{sceneType}
                                               and task_status = 1
+                                              and del_flag = 0
                                               order by create_time desc
     </select>
 </mapper>