Prechádzať zdrojové kódy

修复资源异常问题、加入货到付款逻辑、isaddkf优化绑定关系表校验逻辑

yjwang 3 týždňov pred
rodič
commit
9dceb0b1fd

+ 29 - 0
fs-admin/src/main/java/com/fs/course/controller/FsVideoResourceController.java

@@ -13,6 +13,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.course.config.CourseConfig;
+import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.domain.FsVideoResource;
 import com.fs.course.service.IFsUserCourseVideoService;
 import com.fs.course.service.IFsUserVideoService;
@@ -127,6 +128,34 @@ public class FsVideoResourceController extends BaseController {
     @PutMapping
     public AjaxResult edit(@RequestBody FsVideoResource fsVideoResource)
     {
+        //查询视频资源是否存在
+        FsVideoResource videoResource = fsVideoResourceService.getById(fsVideoResource.getId());
+        if(videoResource == null){
+            return AjaxResult.error("操作失败,视频资源不存在!");
+        }
+
+        //通过fileKey判断是否同一个视频资源
+        if(StringUtils.isNotEmpty(fsVideoResource.getFileKey()) && !videoResource.getFileKey().equals(fsVideoResource.getFileKey())){
+            //通过更新前的fileKey获取已经绑定的视频课程
+            FsUserCourseVideo video = new FsUserCourseVideo();
+            video.setFileKey(videoResource.getFileKey());
+            List<FsUserCourseVideo> courseVideo= fsUserCourseVideoService.selectFsUserCourseVideoList(video);
+            if(!courseVideo.isEmpty()){
+                //更新对应数据课节数据
+                courseVideo.forEach(c->{
+                    c.setLineOne(fsVideoResource.getLine1());//线路1
+                    c.setLineTwo(fsVideoResource.getLine2());//线路2
+                    c.setFileKey(fsVideoResource.getFileKey());//文件标识
+                    c.setFileName(fsVideoResource.getFileName());//视频名称
+                    c.setFileSize(fsVideoResource.getFileSize());//文件大小
+                    c.setVideoUrl(fsVideoResource.getVideoUrl());//视频原地址
+                    c.setThumbnail(fsVideoResource.getThumbnail());//视频课节封面
+                    c.setDuration(fsVideoResource.getDuration().longValue());//视频时长
+                    fsUserCourseVideoService.updateFsUserCourseVideo(c);//更新数据
+                });
+            }
+        }
+
         fsVideoResourceService.updateById(fsVideoResource);
         return AjaxResult.success();
     }

+ 6 - 1
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2223,7 +2223,12 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 
         // 添加逻辑:如果存在fs_user表数据,但是又不存在fs_user_company_user表,则表示是以前企微看课的,需要手动绑定
         if(Objects.isNull(userCompanyUser)) {
-            if(fsUser.getCompanyUserId() == null && fsUser.getIsAddQw() == 1){
+            //获取外部联系人信息
+            QwExternalContact qwExternalContact = null;
+            if(fsUser.getQwExtId() != null){
+                qwExternalContact = qwExternalContactMapper.selectOne(new QueryWrapper<QwExternalContact>().eq("id", fsUser.getQwExtId()));
+            }
+            if(fsUser.getCompanyUserId() == null && fsUser.getIsAddQw() == 1 && (qwExternalContact != null && qwExternalContact.getCompanyUserId().equals(param.getCompanyUserId()))){
                 userCompanyUser = userCompanyUserService.bindRelationship(fsUser.getUserId(), courseProject, param.getCompanyId(), param.getCompanyUserId(), 1);
             }else {
                 Company company = companyService.selectCompanyById(param.getCompanyId());

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreCartScrmMapper.java

@@ -145,7 +145,7 @@ public interface FsStoreCartScrmMapper
             "</choose>" +
             "</if>" +
             "</script>"})
-    List<FsStoreCartScrmQueryVO> selectFsStoreCartMultiStoreListByIds(@Param("ids") String ids, @Param("storeId")Long storeId);
+    List<FsStoreCartQueryVO> selectFsStoreCartMultiStoreListByIds(@Param("ids") String ids, @Param("storeId")Long storeId);
 
     @Select(
 //            "select s.*" +

+ 17 - 17
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java

@@ -353,23 +353,23 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
         order.setRefundReasonTime(new Date());
         orderService.updateFsStoreOrder(order);
 
-        //判断发货类型
-        if(orderStatus == 2 || orderStatus == 3) {
-            List<FsStoreOrderItemVO> scrmList = fsStoreOrderItemMapper.selectMyFsStoreOrderItemListByOrderId(order.getId());
-            if (!scrmList.isEmpty()) {
-                List<Long> orderItemIds = scrmList.stream().map(FsStoreOrderItemVO::getItemId).collect(Collectors.toList());
-                //获取溯源码,进行回退
-                List<FsStoreVerifyCodeScrm> verifyCodes = verifyCodeScrmMapper.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()).in(FsStoreVerifyCodeScrm::getOrderItemId, orderItemIds).eq(FsStoreVerifyCodeScrm::getIsDel, "0"));
-                if (!verifyCodes.isEmpty()) {
-                    verifyCodes.forEach(v -> {
-                        v.setIsRecycle(0L);
-                    });
-                    //批量更新数据
-                    verifyCodeScrmService.updateBatchById(verifyCodes);
-                }
-
-            }
-        }
+//        //判断发货类型
+//        if(orderStatus == 2 || orderStatus == 3) {
+//            List<FsStoreOrderItemVO> scrmList = fsStoreOrderItemMapper.selectMyFsStoreOrderItemListByOrderId(order.getId());
+//            if (!scrmList.isEmpty()) {
+//                List<Long> orderItemIds = scrmList.stream().map(FsStoreOrderItemVO::getItemId).collect(Collectors.toList());
+//                //获取溯源码,进行回退
+//                List<FsStoreVerifyCodeScrm> verifyCodes = verifyCodeScrmMapper.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()).in(FsStoreVerifyCodeScrm::getOrderItemId, orderItemIds).eq(FsStoreVerifyCodeScrm::getIsDel, "0"));
+//                if (!verifyCodes.isEmpty()) {
+//                    verifyCodes.forEach(v -> {
+//                        v.setIsRecycle(0L);
+//                    });
+//                    //批量更新数据
+//                    verifyCodeScrmService.updateBatchById(verifyCodes);
+//                }
+//
+//            }
+//        }
 
         //生成售后订单
         FsStoreAfterSalesScrm storeAfterSales = new FsStoreAfterSalesScrm();

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

@@ -1923,41 +1923,41 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             if (order != null && !order.getPaid().equals(0)) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return "";
-            } else if (type.equals(2)) {
-                //货到付款
-                order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
-                if (!order.getStatus().equals(OrderInfoEnum.STATUS_0.getValue())) {
-                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                    return "";
-                }
             }
-            //写入公司佣金 当有归属公司时只进行公司分佣
-            if (order.getCompanyId() != null && order.getCompanyId() > 0) {
-                companyService.addCompanyTuiMoney(order);
-                //没有归属公司对个人分佣
-            } else if (order.getIsPackage() != 1 && order.getTuiUserId() != null && order.getTuiUserId() > 0) {
-                //处理佣金 套餐不分佣金
-                FsStoreOrderItemScrm orderItemMap = new FsStoreOrderItemScrm();
-                orderItemMap.setOrderId(order.getId());
-                List<FsStoreOrderItemScrm> items = storeOrderItemService.selectFsStoreOrderItemList(orderItemMap);
-                userService.addTuiMoney(order, items);
-            }
-            //增加用户购买次数
-            userService.incPayCount(order.getUserId());
-            //增加状态
-            orderStatusService.create(order.getId(), OrderLogEnum.PAY_ORDER_SUCCESS.getValue(),
-                    OrderLogEnum.PAY_ORDER_SUCCESS.getDesc());
-            FsStoreOrderScrm storeOrder = new FsStoreOrderScrm();
-            storeOrder.setId(order.getId());
-            storeOrder.setPaid(OrderInfoEnum.PAY_STATUS_1.getValue());
-            storeOrder.setStatus(OrderInfoEnum.STATUS_1.getValue());
-            storeOrder.setPayTime(new Date());
-            fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
-            // 添加订单审核
-            if (storeOrder.getCompanyId() != null) {
-                addOrderAudit(order);
+        }else if (type.equals(2)) {
+            //货到付款
+            order = fsStoreOrderMapper.selectFsStoreOrderById(orderId);
+            if (!order.getStatus().equals(OrderInfoEnum.STATUS_0.getValue())) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return "";
             }
         }
+        //写入公司佣金 当有归属公司时只进行公司分佣
+        if (order.getCompanyId() != null && order.getCompanyId() > 0) {
+            companyService.addCompanyTuiMoney(order);
+            //没有归属公司对个人分佣
+        } else if (order.getIsPackage() != 1 && order.getTuiUserId() != null && order.getTuiUserId() > 0) {
+            //处理佣金 套餐不分佣金
+            FsStoreOrderItemScrm orderItemMap = new FsStoreOrderItemScrm();
+            orderItemMap.setOrderId(order.getId());
+            List<FsStoreOrderItemScrm> items = storeOrderItemService.selectFsStoreOrderItemList(orderItemMap);
+            userService.addTuiMoney(order, items);
+        }
+        //增加用户购买次数
+        userService.incPayCount(order.getUserId());
+        //增加状态
+        orderStatusService.create(order.getId(), OrderLogEnum.PAY_ORDER_SUCCESS.getValue(),
+                OrderLogEnum.PAY_ORDER_SUCCESS.getDesc());
+        FsStoreOrderScrm storeOrder = new FsStoreOrderScrm();
+        storeOrder.setId(order.getId());
+        storeOrder.setPaid(OrderInfoEnum.PAY_STATUS_1.getValue());
+        storeOrder.setStatus(OrderInfoEnum.STATUS_1.getValue());
+        storeOrder.setPayTime(new Date());
+        fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
+        // 添加订单审核
+        if (storeOrder.getCompanyId() != null) {
+            addOrderAudit(order);
+        }
 
         return "SUCCESS";
 
@@ -5046,14 +5046,14 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 //        List<FsStoreCartQueryVO>  carts=cartMapper.selectFsStoreCartListByIds(cartParam.getCartIds());
             //分组展示购物车信息
             List<FsStoreCartQueryGroupStoreVO> carts = new ArrayList<>();
-            List<FsStoreCartScrmQueryVO> redisCarts = new ArrayList<>();
+            List<FsStoreCartQueryVO> redisCarts = new ArrayList<>();
             //查询店铺id
             FsStoreScrm fsStore = fsStoreMapper.selectFsStoreByStoreId(cartGroupStoreParam.getStoreId());
 //            List<FsStore> store = cartMapper.selectFsStoreListByIds(cartParam.getCartIds());
 //            for (FsStore fsStore : store) {
             FsStoreCartQueryGroupStoreVO vo = new FsStoreCartQueryGroupStoreVO();
             ////todo 目前存在商品属性没有storeid的脏数据 暂且会查询为null的
-            List<FsStoreCartScrmQueryVO> cartQueryVo = null;
+            List<FsStoreCartQueryVO> cartQueryVo = null;
             if (fsStore == null) {
                 vo.setStoreName("null");
                 cartQueryVo = cartMapper.selectFsStoreCartMultiStoreListByIds(cartParam.getCartIds(), -1L);

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreCartQueryGroupStoreVO.java

@@ -9,7 +9,7 @@ import java.util.List;
 @Data
 public class FsStoreCartQueryGroupStoreVO {
     private String storeName;
-    private List<FsStoreCartScrmQueryVO> list;
+    private List<FsStoreCartQueryVO> list;
     private BigDecimal totalMoney; //原价
     private BigDecimal payMoney; //实收
     private String createOrderKey;

+ 1 - 0
fs-service/src/main/resources/mapper/course/FsUserCourseVideoMapper.xml

@@ -61,6 +61,7 @@
             <if test="projectId != null "> and project_id = #{projectId}</if>
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="isDel != null "> and is_del = #{isDel}</if>
+            <if test="fileKey != null "> and file_key = #{fileKey}</if>
         </where>
     </select>
 

+ 27 - 14
fs-user-app/src/main/java/com/fs/app/controller/Hospital580Controller.java

@@ -1,6 +1,7 @@
 package com.fs.app.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
 import com.fs.app.annotation.Login;
 import com.fs.app.facade.Hospital580FacadeService;
 import com.fs.common.core.domain.PageResponse;
@@ -23,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
 
@@ -73,29 +76,35 @@ public class Hospital580Controller extends AppBaseController {
     @ApiOperation(value = "销售制单分享-缓存对应订单客户开方信息")
     @Login
     @PostMapping("/cacheSquareInformation")
-    public R cacheOpenInformation(@RequestBody CacheOpenInformationVo vo){
+    public R cacheOpenInformation(@RequestBody Map<String, Object> vo){
         TwelveDigitSnowflake snowflake = snowflakeFactory.getSnowflake();
         String key = String.valueOf(snowflake.nextId());
         //缓存开放信息-6小时
-        String redisKey = buildCacheKey(key,"square",vo.getUserId());
-        redisCache.setCacheObject(redisKey , JSON.toJSONString(vo), 6, TimeUnit.HOURS);
-        return R.ok().put("dataKey",key);
+        String redisKey = buildCacheKey(key, "square",Long.parseLong(vo.get("userId").toString()));
+        redisCache.setCacheObject(redisKey, JSON.toJSONString(vo), 6, TimeUnit.HOURS);
+        return R.ok().put("dataKey", key);
     }
 
     @ApiOperation(value = "销售制单分享-获取缓存对应订单客户开方信息")
     @Login
     @PostMapping("/selectSquareInformation")
-    public R selectOpenInformation(@RequestBody CacheOpenInformationVo vo) {
-        log.debug("获取缓存开放信息: orderKey={}, companyUserId={}",
-                vo.getDataKey(), vo.getUserId());
+    public R selectOpenInformation(@RequestBody Map<String, Object> vo) {
+        String dataKey = String.valueOf(vo.get("dataKey")) ;
+        String userId = String.valueOf(vo.get("userId"));
 
-        String redisKey = buildCacheKey(vo.getDataKey(),"square", vo.getUserId());
-        CacheOpenInformationVo informationVo = JSON.parseObject(redisCache.getCacheObject(redisKey), CacheOpenInformationVo.class);
-        if (informationVo == null) {
+        log.debug("获取缓存开放信息: orderKey={}, companyUserId={}", dataKey, userId);
+
+        String redisKey = buildCacheKey(dataKey, "square", Long.valueOf(userId));
+        String cacheData = redisCache.getCacheObject(redisKey);
+
+        if (cacheData == null) {
             log.warn("缓存未找到: key={}", redisKey);
             return R.error("未找到对应的开放信息");
         }
-        return R.ok().put("data",informationVo);
+
+        // 返回原始的 Map 数据
+        Map<String, Object> information = JSON.parseObject(cacheData, new TypeReference<Map<String, Object>>(){});
+        return R.ok().put("data", information);
     }
 
     @Login
@@ -112,7 +121,11 @@ public class Hospital580Controller extends AppBaseController {
         }
 
         String redisKey = buildCacheKey("orderId",vo.getOrderCode(), vo.getUserId());
-        redisCache.setCacheObject(redisKey , vo.getDataKey(), 6, TimeUnit.HOURS);
+        Map<String,Object> map=new HashMap<>();
+        map.put("dataKey",vo.getDataKey());
+        map.put("orderCode",vo.getOrderCode());
+        map.put("companyUserId",vo.getCompanyUserId());
+        redisCache.setCacheObject(redisKey , map, 6, TimeUnit.HOURS);
         return R.ok();
     }
 
@@ -124,8 +137,8 @@ public class Hospital580Controller extends AppBaseController {
             return R.error("订单信息不能为空");
         }
         String redisKey = buildCacheKey("orderId",vo.getOrderCode(), vo.getUserId());
-        String dataKey=redisCache.getCacheObject(redisKey);
-        return R.ok().put("dataKey",dataKey);
+        Map<String,Object> map=redisCache.getCacheObject(redisKey);
+        return R.ok().put("dataKey",map);
     }