Browse Source

submit:12.01需求

yangdamao 2 years ago
parent
commit
e7a882ccc5

+ 6 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -117,6 +117,12 @@ public class GoodsController extends BaseController {
         return toAjax(iGoodsService.updateSpecTemplate(bo) ? 1 : 0);
     }
 
+    @ApiOperation("取消商品默认规格模板")
+    @PostMapping("/cancel/spec")
+    public AjaxResult<Void> cancelSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
+        return toAjax(iGoodsService.cancelSpecTemplate(bo) ? 1 : 0);
+    }
+
     /**
      * 导出商品列表
      */

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -300,4 +300,15 @@ public class GoodsController extends BaseController {
         return getDataTable(list);
     }
 
+    /**
+     * 校验商品状态
+     */
+    @ApiOperation("校验商品状态")
+    @PostMapping("/check/goods/status")
+    public AjaxResult<Void>  checkGoodsStatus(@RequestBody CheckGoodsStatusBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return toAjax(iOrderGoodsService.checkGoodsStatus(bo) ? 1 : 0);
+    }
+
 }

+ 24 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/CheckGoodsStatusBo.java

@@ -0,0 +1,24 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2022年12月14日 10:47
+ */
+@Data
+public class CheckGoodsStatusBo implements Serializable {
+
+    @ApiModelProperty("商品IDs")
+    private List<Long> goodsIds;
+
+    @ApiModelProperty("是否添加购物车:1是 0否")
+    private Integer isCart;
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -99,4 +99,7 @@ public interface IGoodsService extends IService<Goods> {
 	boolean GoodsBatchUpdateStatusBo(GoodsBatchUpdateStatusBo bo);
 
 	boolean batchDelGoods(GoodsBatchDelBo bo);
+
+    boolean cancelSpecTemplate(GoodsSpecTempEditBo bo);
+
 }

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -831,6 +831,17 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
                 .in(Goods::getGoodsId,bo.getIds()));
     }
 
+    @Override
+    public boolean cancelSpecTemplate(GoodsSpecTempEditBo bo) {
+        Goods goods = getById(bo.getGoodsId());
+        if (ObjectUtils.isNull(goods)){
+            throw new CustomException("商品信息获取失败");
+        }
+        return update(new LambdaUpdateWrapper<Goods>()
+        .set(Goods::getSpecTemplateId,null)
+        .eq(Goods::getGoodsId,bo.getGoodsId()));
+    }
+
     /**
      * 获取商品规格模板列表
      * @author change

+ 2 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsSpecTemplateServiceImpl.java

@@ -87,12 +87,9 @@ public class GoodsSpecTemplateServiceImpl extends ServiceImpl<GoodsSpecTemplateM
                             .like(GoodsSpecAttributeRelation::getSpecAttributeIds, item.getSpecAttributeId()));
                     if (CollectionUtils.isNotEmpty(relations)){
                         List<SpecAttrPriceVo> collect = relations.stream().map(x -> {
-                            SpecAttrPriceVo priceVo = new SpecAttrPriceVo();
-                            priceVo.setSpecAttrIds(x.getSpecAttributeIds());
-                            priceVo.setSpecTemplateId(x.getSpecTemplateId());
-                            priceVo.setGoodsId(x.getGoodsId());
                             Goods goods = goodsService.getById(x.getGoodsId());
-                            priceVo.setStandPrice(goods.getStandPrice());
+                            SpecAttrPriceVo priceVo = BeanUtil.toBean(goods,SpecAttrPriceVo.class);
+                            priceVo.setSpecAttrIds(x.getSpecAttributeIds());
                             return priceVo;
                         }).collect(Collectors.toList());
                         voList.addAll(collect);

+ 113 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/SpecAttrPriceVo.java

@@ -1,5 +1,7 @@
 package com.zhongzheng.modules.goods.vo;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -25,4 +27,115 @@ public class SpecAttrPriceVo implements Serializable {
     @ApiModelProperty("商品价格")
     private BigDecimal standPrice;
 
+    /** 年份 */
+    private Long year;
+    /** 供应方(服务)1祥粤自营 2中正合作 */
+    private Long supplyId;
+    /** $column.columnComment */
+    private Integer goodsType;
+    /** 教育类型id */
+    private Long educationTypeId;
+    /** 业务层次id */
+    private Long businessId;
+    /** 所属院校 */
+    private Long schoolId;
+    /** 所属专业 */
+    private Long majorId;
+    /** 商品名称 */
+    private String goodsName;
+
+    /** 最低价格 */
+    private BigDecimal lowestPrice;
+    /** 状态 1有效 0无效 */
+    private Integer status;
+    /** 有效期开始 */
+    private Long validityStartTime;
+    /** 有效期结束 */
+    private Long validityEndTime;
+    /** 学习有效期开始 */
+    private Long studyStartTime;
+    /** 学习有效期结束 */
+    private Long studyEndTime;
+    /** 证书ID,多个,拼接 */
+    private String certificateIds;
+    /** 描述 */
+    private String introduce;
+    /** 适合对象 */
+    private String suitableObject;
+    /** 购买须知 */
+    private String buyNote;
+    /** PC详情 */
+    private String pcDetailHtml;
+    /** 手机详情 */
+    private String mobileDetailHtml;
+    /** 1上架 0未上架 */
+    private Integer goodsStatus;
+    /** 封面地址 */
+    private String coverUrl;
+    /** 学时 */
+    private BigDecimal classHours;
+    /** 标准价格详情json */
+    private String standPriceJson;
+    /** 编码 */
+    private String code;
+
+    private String supplyName;
+    /** 项目id */
+    private Integer projectId;
+
+    /** 试听设置 */
+    private String goodsAuditionConfig;
+    /** 拍照设置 */
+    private String goodsPhotographConfig;
+
+    /** 试卷拍照设置 */
+    private String goodsPhotoExamConfig;
+    /** 播放设置 */
+    private String goodsPlayConfig;
+    /** 试卷试做设置 */
+    private String goodsExamConfig;
+
+    private Long handoutsId;
+
+    /** 补考或前培开始时间 */
+    private Long makeStartTime;
+    /** 补考或前培结束时间 */
+    private Long makeEndTime;
+    /** 学习次数 */
+    private Long studyCount;
+
+    /** 前培和补考商品关联 */
+    private Long makeGoodsId;
+
+    /** 服务期类型 1年 2月 3日 4区间 */
+    private Integer serviceTimeType;
+    /** 服务期数值 */
+    private Long serviceTimeNum;
+
+    /** 每天最大节学习数量 */
+    private Long sectionMaxNum;
+
+    /** 考试次数 */
+    private Long examNumber;
+    /** 前培次数 */
+    private Long doNumber;
+    /** 讲师ID */
+    private Long teacherId;
+    /** 科目ID,拼接 */
+    private String subjectIds;
+    /** 证书类型ID */
+    private Long certificateTypeId;
+    /** 证书ID */
+    private Long certificateId;
+    /** 证书模板ID */
+    private Long certificateTpId;
+    /** 商品划线价格 */
+    private BigDecimal linePrice;
+    /** 是否显示:0否 1是 */
+    private Integer showStatus;
+    /** 显示排序字段 */
+    private Long showSort;
+
+
+
 }

+ 20 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/GradeChangeEjjjPeopleBo.java

@@ -0,0 +1,20 @@
+package com.zhongzheng.modules.grade.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2022年12月13日 18:23
+ */
+@Data
+public class GradeChangeEjjjPeopleBo implements Serializable {
+
+    @ApiModelProperty("官方班级")
+    private String officialName;
+
+    @ApiModelProperty("官方班级人数")
+    private Integer peopleNum;
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeService.java

@@ -89,4 +89,6 @@ public interface IClassGradeService extends IService<ClassGrade> {
 	boolean checkEjjjPeopleNumLimit(Long businessId,Long gradeId);
 
 	List<ClassGradeVo> queryGradeList(ClassGradeQueryBo bo);
+
+	boolean gradeChangeEjjjPeople(Long businessId,Long gradeId);
 }

+ 43 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -141,6 +141,9 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     @Value("${oldStudySys.searchGradeCount}")
     private String GRADE_COUNT_PATH;
 
+    @Value("${oldStudySys.pushGradeCount}")
+    private String GRADE_CHANGE_PATH;
+
     @Override
     public ClassGradeVo queryById(Long gradeId) {
         ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
@@ -786,6 +789,46 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
         return baseMapper.queryGradeList(bo);
     }
 
+    @Override
+    public boolean gradeChangeEjjjPeople(Long businessId, Long gradeId) {
+        CourseBusinessQueryBo businessQueryBo = new CourseBusinessQueryBo();
+        businessQueryBo.setId(businessId);
+        String fullName = iCourseBusinessService.queryFullName(businessQueryBo);
+        if(("继续教育二级建造师".equals(fullName))||("继续教育二级造价师".equals(fullName))){
+            //继教二建或者继教二造班级
+            ClassGradeVo gradeVo = queryById(gradeId);
+            if(Validator.isNotEmpty(gradeVo)&&Validator.isNotEmpty(gradeVo.getOfficialName())){
+                ClassGradeQueryBo queryBo = new ClassGradeQueryBo();
+                queryBo.setOfficialName(gradeVo.getOfficialName());
+                Integer peopleNum = queryOfficialGradeCount(queryBo);
+                List<GradeChangeEjjjPeopleBo> boList = new ArrayList<>();
+                GradeChangeEjjjPeopleBo bo = new GradeChangeEjjjPeopleBo();
+                bo.setOfficialName(gradeVo.getOfficialName());
+                bo.setPeopleNum(peopleNum);
+                boList.add(bo);
+                //通知旧系统
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(nowTime.toString()+"pubilc2022");
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("jsonstr", JSONArray.toJSONString(boList));
+                String respone = "";
+                try {
+                    respone = HttpUtils.postFormBody(GRADE_CHANGE_PATH, params);
+                    log.info("同步系统班级人数结果"+respone,"");
+                    if (!respone.contains("\"Status\":true")) {
+                        throw new CustomException("旧系统接口请求错误"+respone);
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("旧系统接口请求错误"+e.getMessage());
+                }
+            }
+
+        }
+        return true;
+    }
+
 
     /**
      * 实体类转化成视图对象

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -306,6 +306,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                     throw new CustomException("数据错误");
                 }
                 removeById(classGradeUser.getId());
+                //通知旧系统
+                Goods goods = iGoodsService.getById(bo.getGoodsId());
+                iClassGradeService.gradeChangeEjjjPeople(goods.getBusinessId(),oldGradeId);
 
                 OrderGoods orderGoods = new OrderGoods();
                 orderGoods.setOrderGoodsId(bo.getOrderGoodsId());
@@ -370,6 +373,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                     classGradeUser.setChangeGrade(1);
                     classGradeUser.setUpdateTime(DateUtils.getNowTime());
                     updateById(classGradeUser);
+                    //通知旧系统
+                    Goods goods = iGoodsService.getById(item.getGoodsId());
+                    iClassGradeService.gradeChangeEjjjPeople(goods.getBusinessId(),item.getOldGradeId());
                     //消耗学习次数
                     OrderGoods orderGoods = new OrderGoods();
                     orderGoods.setOrderGoodsId(item.getOrderGoodsId());

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zhongzheng.common.core.page.PageDomain;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.modules.course.vo.CourseLiveVo;
+import com.zhongzheng.modules.goods.bo.CheckGoodsStatusBo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.OrderGoods;
@@ -104,4 +105,6 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     List<CourseLiveVo> getLiveList(Long userId);
 
     List<OrderGoodsVo> listUserVideoLive(GoodsQueryBo bo);
+
+    Boolean checkGoodsStatus(CheckGoodsStatusBo bo);
 }

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
@@ -14,6 +15,8 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.base.domain.ShoppingCart;
+import com.zhongzheng.modules.base.service.IShoppingCartService;
 import com.zhongzheng.modules.course.mapper.CourseMapper;
 import com.zhongzheng.modules.course.service.ICourseChapterSectionService;
 import com.zhongzheng.modules.course.service.ICourseMenuService;
@@ -26,8 +29,10 @@ import com.zhongzheng.modules.exam.service.IExamApplyGoodsService;
 import com.zhongzheng.modules.exam.service.IExamApplyUserService;
 import com.zhongzheng.modules.exam.service.IExamBeforeService;
 import com.zhongzheng.modules.exam.vo.ExamApplyGoodsVo;
+import com.zhongzheng.modules.goods.bo.CheckGoodsStatusBo;
 import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
+import com.zhongzheng.modules.goods.domain.Goods;
 import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
@@ -138,6 +143,9 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
     @Autowired
     private IExamApplyUserService iExamApplyUserService;
 
+    @Autowired
+    private IShoppingCartService iShoppingCartService;
+
     @Override
     public OrderGoodsVo queryById(Long orderGoodsId) {
         OrderGoods db = this.baseMapper.selectById(orderGoodsId);
@@ -604,6 +612,43 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return list;
     }
 
+    @Override
+    public Boolean checkGoodsStatus(CheckGoodsStatusBo bo) {
+        if (CollectionUtils.isEmpty(bo.getGoodsIds())){
+            return false;
+        }
+        bo.getGoodsIds().forEach(item ->{
+            Goods goods = iGoodsService.getById(item);
+            if (ObjectUtils.isNull(goods)){
+                throw new CustomException("商品信息获取失败!");
+            }
+            if (goods.getGoodsStatus() == 0){
+                throw new CustomException("存在未上架商品,请检查!");
+            }
+            Long nowTime = DateUtils.getNowTime();
+            if (nowTime < goods.getValidityStartTime() || nowTime > goods.getValidityEndTime()){
+                throw new CustomException("存在过期商品,请检查!");
+            }
+            if (bo.getIsCart() == 1){
+                //购物车校验
+                if(checkUnique(item,bo.getUserId())){
+                    throw new CustomException("存在购物车已有商品,请检查!");
+                }
+            }
+
+        });
+        return true;
+    }
+
+    private boolean checkUnique(Long GoodsId,Long UserId) {
+        ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
+                .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));
+        if (Validator.isNotNull(info)) {
+            return true;
+        }
+        return false;
+    }
+
     @Override
     public List<CourseLiveVo> getLiveList(Long userId) {
         List<CourseLiveVo> liveVos = orderGoodsMapper.getLiveList(userId);

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -1789,6 +1789,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         classGradeUser.setCreateTime(DateUtils.getNowTime());
         classGradeUser.setUpdateTime(DateUtils.getNowTime());
         iClassGradeUserService.save(classGradeUser);
+        //通知外部系统
+        OrderGoods orderGoods = iOrderGoodsService.getById(orderGoodsId);
+        Goods goods = iGoodsService.getById(orderGoods.getGoodsId());
+        iClassGradeService.gradeChangeEjjjPeople(goods.getBusinessId(),gradeId);
         return true;
     }
 }