Browse Source

Merge branch 'organ_goods' of http://git.dayaedu.com/yonge/mec

zouxuan 4 years ago
parent
commit
2444ef1f86

+ 18 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -21,7 +21,7 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
      * @param subjectId
      * @return
      */
-    List<Goods> findGoodsBySubId(@Param("subjectId") Integer subjectId, @Param("type") String type);
+    List<Goods> findGoodsBySubId(@Param("subjectId") Integer subjectId, @Param("type") String type,@Param("organId")Integer organId);
 
     /**
      * 根据商品分类查找商品数量
@@ -115,8 +115,18 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
      */
     List<Goods> findBySns(@Param("sns") List<String> sns);
 
+    /**
+     * 获取内部库存预警商品
+     * @param innerRepertoryWarnNum
+     * @return
+     */
     String getInnerRepertoryWarnName(@Param("innerRepertoryWarnNum") String innerRepertoryWarnNum);
 
+    /**
+     * 获取外部库存预警商品
+     * @param outerRepertoryWarnNum
+     * @return
+     */
     String getOuterRepertoryWarnName(@Param("outerRepertoryWarnNum") String outerRepertoryWarnNum);
 
     /**
@@ -135,9 +145,14 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
      *
      * @return
      */
-    List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscount(@Param("subjectId") Integer subjectId, @Param("type") String type, @Param("courseViewType") Integer courseViewType);
+    List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscount(@Param("subjectId") Integer subjectId,
+                                                                      @Param("type") String type,
+                                                                      @Param("courseViewType") Integer courseViewType,
+                                                                      @Param("organId") Integer organId);
 
-    List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscountWithSubjects(@Param("subjectIds") String subjectIds, @Param("type") String type);
+    List<MusicGroupGoodsAndDiscountDto> getMusicGroupGoodsAndDiscountWithSubjects(@Param("subjectIds") String subjectIds,
+                                                                                  @Param("type") String type,
+                                                                                  @Param("organId") Integer organId);
 
     /**
      * 是否存在已上架的商品编号

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BasicUserDto.java

@@ -6,6 +6,8 @@ import java.util.Objects;
 
 public class BasicUserDto {
 
+    private Integer organId;
+
     private Integer userId;
 
     private String name;
@@ -32,6 +34,14 @@ public class BasicUserDto {
     @ApiModelProperty(value = "加油包:0:默认不可用;1:可用;2:已使用;")
     private Integer comeOnPackage;
 
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
     public Integer getCarePackage() {
         return carePackage;
     }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Goods.java

@@ -150,6 +150,27 @@ public class Goods {
 	@ApiModelProperty(value = "库存预警")
 	private YesOrNoEnum stockWarning;
 
+	@ApiModelProperty(value = "商品所属分部")
+	private String organIdList;
+
+	private String organName;
+
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
+	public String getOrganIdList() {
+		return organIdList;
+	}
+
+	public void setOrganIdList(String organIdList) {
+		this.organIdList = organIdList;
+	}
+
 	public String getCourseViewType() {
 		return courseViewType;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/GoodsQueryInfo.java

@@ -42,6 +42,16 @@ public class GoodsQueryInfo extends QueryInfo {
 
     private String courseViewType;
 
+    private String organId;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
     public String getCourseViewType() {
         return courseViewType;
     }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ReplacementInstrumentQueryInfo.java

@@ -5,12 +5,22 @@ import com.ym.mec.common.page.QueryInfo;
 
 public class ReplacementInstrumentQueryInfo extends QueryInfo {
 
+    private Integer organId;
+
     private Integer subjectId;
 
     private String brand;
 
     private String specification;
 
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
     public Integer getSubjectId() {
         return subjectId;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -32,7 +32,7 @@ public interface GoodsService extends BaseService<Integer, Goods> {
      * @param subjectId
      * @return
      */
-    List<Goods> findGoodsBySubId(Integer subjectId,String type);
+    List<Goods> findGoodsBySubId(Integer subjectId,String type,Integer organId);
 
     /**
      * 根据商品分类id查找商品数量

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -174,8 +174,8 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	}
 
 	@Override
-	public List<Goods> findGoodsBySubId(Integer subjectId,String type) {
-		return goodsDao.findGoodsBySubId(subjectId,type);
+	public List<Goods> findGoodsBySubId(Integer subjectId,String type,Integer organId) {
+		return goodsDao.findGoodsBySubId(subjectId,type,organId);
 	}
 
 	public int findGoodsNumByCategoryId(Integer goodsCategoryId){

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -239,12 +239,14 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
 
     @Override
     public List<MusicGroupGoodsAndDiscountDto> getSubjectGoods(Integer subjectId, String type, Integer chargeTypeId, Integer courseViewType, String musicGroupId) {
+        Integer organId = null;
         if (StringUtils.isNotEmpty(musicGroupId)) {
             MusicGroup musicGroup = musicGroupService.get(musicGroupId);
             courseViewType = musicGroup.getCourseViewType().getCode();
             courseViewType = courseViewType == 3?2:courseViewType;
+            organId = musicGroup.getOrganId();
         }
-        List<MusicGroupGoodsAndDiscountDto> goodsList = goodsDao.getMusicGroupGoodsAndDiscount(subjectId, type, courseViewType);
+        List<MusicGroupGoodsAndDiscountDto> goodsList = goodsDao.getMusicGroupGoodsAndDiscount(subjectId, type, courseViewType,organId);
         if (chargeTypeId == null || (type != null && !"INSTRUMENT".equals(type))) {
             return goodsList;
         }

+ 31 - 5
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -41,6 +41,8 @@
         <result column="replacement_show_" property="replacementShow" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="stock_warning_" property="stockWarning" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="course_view_type_" property="courseViewType"/>
+        <result column="organ_id_list_" property="organIdList"/>
+        <result column="organ_name_" property="organName"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -63,20 +65,21 @@
         INSERT INTO goods
         (goods_category_id_,sn_,name_,brand_,specification_,image_,stock_count_,tax_stock_count_,sell_count_,market_price_,
         discount_price_,group_purchase_price_,brief_,desc_,is_new_,is_top_,status_,memo_,publish_time_,
-        complement_goods_id_list_,update_time_,create_time_,type_,agree_cost_price_,client_show_,educational_show_,music_group_show_,replacement_show_,stock_warning_,stock_type_,course_view_type_)
+        complement_goods_id_list_,update_time_,create_time_,type_,agree_cost_price_,client_show_,educational_show_,
+         music_group_show_,replacement_show_,stock_warning_,stock_type_,course_view_type_,organ_id_list_)
         VALUES(#{goodsCategoryId},#{sn},#{name},#{brand},#{specification},#{image},#{stockCount},#{taxStockCount},#{sellCount},#{marketPrice},
         #{discountPrice},#{groupPurchasePrice},#{brief},#{desc},
         #{isNew,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{isTop,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{memo},#{publishTime},#{complementGoodsIdList},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{agreeCostPrice},
         #{clientShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationalShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{musicGroupShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{replacementShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseViewType})
+        #{stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseViewType},#{organIdList})
     </insert>
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
         INSERT INTO goods
         (goods_category_id_,name_,brand_,specification_,image_,market_price_,
         discount_price_,group_purchase_price_,brief_,desc_,update_time_,create_time_,type_,agree_cost_price_,sn_,
-        stock_count_,tax_stock_count_,client_show_,educational_show_,music_group_show_,replacement_show_,stock_warning_,stock_type_,course_view_type_)
+        stock_count_,tax_stock_count_,client_show_,educational_show_,music_group_show_,replacement_show_,stock_warning_,stock_type_,course_view_type_,organ_id_list_)
         VALUES
         <foreach collection="list" separator="," item="goods">
             (#{goods.goodsCategoryId},#{goods.name},#{goods.brand},#{goods.specification},#{goods.image},#{goods.marketPrice},
@@ -87,13 +90,16 @@
         	#{goods.musicGroupShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         	#{goods.replacementShow,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             #{goods.stockWarning,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{goods.stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.courseViewType})
+            #{goods.stockType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{goods.courseViewType},#{goods.organIdList})
         </foreach>
     </insert>
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Goods">
         UPDATE goods
         <set>
+            <if test="organIdList != null and organIdList != ''">
+                organ_id_list_ = #{organIdList},
+            </if>
             <if test="courseViewType != null">
                 course_view_type_ = #{courseViewType},
             </if>
@@ -190,6 +196,9 @@
         <foreach collection="goodsList" item="goods" separator=";">
             UPDATE goods
             <set>
+                <if test="goods.organIdList != null and goods.organIdList != ''">
+                    organ_id_list_ = #{goods.organIdList},
+                </if>
                 <if test="goods.courseViewType != null">
                     course_view_type_ = #{goods.courseViewType},
                 </if>
@@ -290,9 +299,11 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Goods" parameterType="map">
-        SELECT g.*,gc.name_ goods_category_name_ FROM goods g
+        SELECT g.*,gc.name_ goods_category_name_,GROUP_CONCAT(o.name_) organ_name_ FROM goods g
         LEFT JOIN goods_category gc ON g.goods_category_id_ = gc.id_
+        LEFT JOIN organization o ON FIND_IN_SET(o.id_,g.organ_id_list_)
         <include refid="queryGoodsPageSql"/>
+        GROUP BY g.id_
         ORDER BY g.id_ DESC
         <include refid="global.limit"/>
     </select>
@@ -304,6 +315,9 @@
 
     <sql id="queryGoodsPageSql">
         <where>
+            <if test="organId != null and organId != ''">
+                AND INTE_ARRAY(#{organId},g.organ_id_list_)
+            </if>
             <if test="goodsCategoryId != null">
                 AND g.goods_category_id_ = #{goodsCategoryId}
             </if>
@@ -350,6 +364,9 @@
         SELECT g.* FROM subject_goods_mapper sgm
         LEFT JOIN goods g ON sgm.goods_category_id_ = g.goods_category_id_
         WHERE sgm.subject_id_ = #{subjectId} AND g.type_ = #{type} and g.status_ != 0
+        <if test="organId != null">
+            AND FIND_IN_SET(#{organId},g.organ_id_list_)
+        </if>
     </select>
 
     <!-- 根据 -->
@@ -418,6 +435,9 @@
         SELECT g.* FROM subject_goods_mapper sgm
         LEFT JOIN goods g ON sgm.goods_category_id_ = g.goods_category_id_
         WHERE sgm.subject_id_ = #{subjectId} AND g.music_group_show_ = 1 AND g.status_ != 0
+        <if test="organId != null">
+            AND FIND_IN_SET(#{organId},g.organ_id_list_)
+        </if>
         <if test="type!=null">
             AND g.type_ = #{type}
         </if>
@@ -430,6 +450,9 @@
         SELECT g.* FROM subject_goods_mapper sgm
         LEFT JOIN goods g ON sgm.goods_category_id_ = g.goods_category_id_
         WHERE FIND_IN_SET(sgm.subject_id_, #{subjectIds}) and g.status_ != 0
+        <if test="organId != null">
+            AND FIND_IN_SET(#{organId},g.organ_id_list_)
+        </if>
         <if test="type!=null">
             AND g.type_ = #{type}
         </if>
@@ -484,6 +507,9 @@
             AND g.status_ != 0
             AND g.type_ = 'INSTRUMENT'
             AND gc.del_flag_ = 0
+            <if test="organId != null">
+                AND FIND_IN_SET(#{organId},g.organ_id_list_)
+            </if>
             <if test="subjectId != null">
                 AND sgm.subject_id_ = #{subjectId}
             </if>

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -308,6 +308,7 @@
         <result column="subject_name_" property="subjectName"/>
         <result column="username_" property="name"/>
         <result column="user_id_" property="userId"/>
+        <result column="organ_id_" property="organId"/>
         <result column="head_url_" property="headUrl"/>
         <result column="gender_" property="gender"/>
         <result column="music_group_id_" property="musicGroupId"/>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentRepairMapper.xml

@@ -143,7 +143,7 @@
     </update>
 
     <select id="getStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
-        SELECT su.username_ ,su.id_ user_id_,su.avatar_ head_url_,su.gender_,su.phone_,s.care_package_,s.come_on_package_
+        SELECT su.username_ ,su.id_ user_id_,su.avatar_ head_url_,su.gender_,su.phone_,s.care_package_,s.come_on_package_,su.organ_id_
         FROM sys_user su
         LEFT JOIN student s ON su.id_=s.user_id_
         WHERE FIND_IN_SET(organ_id_,#{organIdList})

+ 15 - 2
mec-student/src/main/java/com/ym/mec/student/controller/GoodsController.java

@@ -1,8 +1,10 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.GoodsCategory;
 import com.ym.mec.biz.service.GoodsCategoryService;
+import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -54,8 +56,19 @@ public class GoodsController extends BaseController {
     @ApiOperation(value = "通过科目编号、商品分类 查询商品(教材、辅件)列表")
     @GetMapping("/queryGoodsBySubId")
     @ApiImplicitParams({ @ApiImplicitParam(name = "subjectId", value = "科目编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "organId", value = "分部编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "type", value = "INSTRUMENT 乐器, ACCESSORIES 教辅", required = true, dataType = "String")})
-    public Object findGoodsBySubId(Integer subjectId,String type){
-        return succeed(goodsService.findGoodsBySubId(subjectId,type));
+    public Object findGoodsBySubId(Integer subjectId,String type,Integer organId){
+        if(organId == null){
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            if(sysUser == null){
+                throw new BizException("请先登录");
+            }
+            organId = sysUser.getOrganId();
+            if(organId == null){
+                throw new BizException("学员分部异常,请联系管理员");
+            }
+        }
+        return succeed(goodsService.findGoodsBySubId(subjectId,type,organId));
     }
 }

+ 1 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ReplacementInstrumentController.java

@@ -34,6 +34,7 @@ public class ReplacementInstrumentController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
+        queryInfo.setOrganId(sysUser.getOrganId());
         return succeed(replacementInstrumentService.getPageList(queryInfo));
     }
 

+ 28 - 2
mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -2,11 +2,14 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.GoodsCategory;
 import com.ym.mec.biz.dal.entity.GoodsProcurement;
 import com.ym.mec.biz.dal.enums.AccountType;
 import com.ym.mec.biz.service.GoodsCategoryService;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -15,8 +18,10 @@ import io.swagger.annotations.ApiParam;
 
 import java.util.Arrays;
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +44,8 @@ public class GoodsController extends BaseController {
     private GoodsCategoryService goodsCategoryService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
 
     @ApiOperation(value = "新增商品(教材、辅件)")
     @PostMapping("/add")
@@ -111,6 +118,21 @@ public class GoodsController extends BaseController {
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('goods/queryPage')")
     public Object queryPage(GoodsQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
         return succeed(goodsService.queryPage(queryInfo));
     }
 
@@ -118,8 +140,12 @@ public class GoodsController extends BaseController {
     @GetMapping("/queryGoodsBySubId")
     @PreAuthorize("@pcs.hasPermissions('goods/queryGoodsBySubId')")
     @ApiImplicitParams({ @ApiImplicitParam(name = "subjectId", value = "科目编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "organId", value = "分部编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "type", value = "INSTRUMENT 乐器, ACCESSORIES 教辅", required = true, dataType = "String")})
-    public Object findGoodsBySubId(Integer subjectId,String type){
-        return succeed(goodsService.findGoodsBySubId(subjectId,type));
+    public Object findGoodsBySubId(Integer subjectId,String type,Integer organId){
+        if(organId == null){
+            throw new BizException("请选择用户分部");
+        }
+        return succeed(goodsService.findGoodsBySubId(subjectId,type,organId));
     }
 }

+ 4 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ReplacementInstrumentController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.page.ReplacementInstrumentQueryInfo;
 import com.ym.mec.biz.service.ReplacementInstrumentService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -31,6 +32,9 @@ public class ReplacementInstrumentController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
+        if(queryInfo.getOrganId() == null){
+            throw new BizException("参数校验失败:学员分部为空");
+        }
         return succeed(replacementInstrumentService.getPageList(queryInfo));
     }