Parcourir la source

新增商品bug修改

qxp il y a 5 ans
Parent
commit
7ffd0eaf74

+ 21 - 0
dgtly-goods/dgtly-goods-admin/src/main/java/com/dgtly/goods/controller/GoodsInfoController.java

@@ -1,10 +1,14 @@
 package com.dgtly.goods.controller;
 
+import java.awt.*;
 import java.util.List;
 
+import com.dgtly.common.exception.BusinessException;
 import com.dgtly.common.utils.StringUtils;
 import com.dgtly.common.utils.file.FileUploadUtils;
 import com.dgtly.framework.util.ShiroUtils;
+import com.dgtly.system.domain.SysCompany;
+import com.dgtly.system.service.ISysCompanyService;
 import com.dgtly.system.service.ISysConfigService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +43,8 @@ public class GoodsInfoController extends BaseController
 
     @Autowired
     private IGoodsInfoService goodsInfoService;
+    @Autowired
+    private ISysCompanyService sysCompanyService;
 
     @Autowired
     private ISysConfigService configService;
@@ -68,7 +74,11 @@ public class GoodsInfoController extends BaseController
         /*判断是否是系统内部人员*/
         if(ShiroUtils.getCompanyId()!=Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
             goodsInfo.setCompanyId(ShiroUtils.getCompanyId());
+        }else{
+            /*系统内部人员只能查看已上架商品*/
+            goodsInfo.setPutawayFlag("1");
         }
+
         startPage();
         List<GoodsInfo> list = goodsInfoService.selectGoodsInfoList(goodsInfo);
         return getDataTable(list);
@@ -83,11 +93,16 @@ public class GoodsInfoController extends BaseController
     public String add(ModelMap mmp)
     {
         Boolean isSystemUser = false;
+        SysCompany sysCompany;
         /*判断是否是系统内部人员*/
         if(ShiroUtils.getCompanyId()==Long.parseLong(configService.selectConfigByKey("sys.company.id"))){
             isSystemUser=true;
         }
+
+        sysCompany = sysCompanyService.selectSysCompanyById(ShiroUtils.getCompanyId());
+        mmp.addAttribute("sysCompany",sysCompany);
         mmp.addAttribute("isSystemUser",isSystemUser);
+
         return prefix + "/add";
     }
 
@@ -146,6 +161,12 @@ public class GoodsInfoController extends BaseController
     @ResponseBody
     public AjaxResult remove(String ids)
     {
+        List<GoodsInfo> goodsInfos = goodsInfoService.selectGoodsInfoByIds(ids);
+        for(GoodsInfo gi:goodsInfos){
+            if(gi.getPutawayFlag().equals("1")){
+                throw new BusinessException("已上架商品不能删除");
+            }
+        }
         return toAjax(goodsInfoService.deleteGoodsInfoByIds(ids));
     }
 

+ 1 - 1
dgtly-goods/dgtly-goods-admin/src/main/java/com/dgtly/goods/controller/GoodsTypeController.java

@@ -80,7 +80,7 @@ public class GoodsTypeController extends BaseController
     }
 
     /**
-     * 选择部门
+     * 选择分类
      */
     @GetMapping("/selectTypeTree/{typeId}")
     public String selectTypeTree(@PathVariable("typeId") Long typeId, ModelMap mmap)

+ 7 - 3
dgtly-goods/dgtly-goods-admin/src/main/resources/templates/goods/info/add.html

@@ -14,7 +14,7 @@
 </head>
 <body class="white-bg">
     <div class="wrapper wrapper-content animated fadeInRight ibox-content">
-        <form class="form-horizontal m" id="form-info-add">
+        <form class="form-horizontal m" id="form-info-add"  th:object="${sysCompany}">
             <div class="row">
                 <div class="col-sm-6">
                     <div class="form-group">
@@ -87,12 +87,12 @@
                 </div>
                 <div class="col-sm-6">
                     <div class="form-group">
-                        <input name="companyId" type="hidden" id="input_companyId">
+                        <input name="companyId" type="hidden" id="input_companyId" th:value="*{id}">
                         <label class="col-sm-2 control-label"><span style="color: red; ">*</span>所属商户:</label>
                         <div class="col-sm-8">
                             <div class="input-group">
                                 <input name="companyName" onclick="selectCompanyList()" id="input_companyTreeName" type="text" placeholder="请选择所属商户"
-                                       class="form-control required" readonly="readonly" required>
+                                       th:value="*{companyName}"  class="form-control required" th:disabled="@{!${isSystemUser}}" required>
                                 <span class="input-group-addon"><i class="fa fa-search"></i></span>
                             </div>
                         </div>
@@ -239,6 +239,7 @@
     <th:block th:include="include :: datetimepicker-js" />
     <th:block th:include="include :: jasny-bootstrap-js" />
     <script type="text/javascript">
+        var isSystemUser = [[${isSystemUser}]];
         var prefix = ctx + "goods/info"
         var sizeIndex=0;
         var colorIndex=0;
@@ -425,6 +426,9 @@
 
         /******************选择商户列表**********************************/
         function selectCompanyList() {
+            if(!isSystemUser){
+                return
+            }
             var url = ctx + "company/tree";
             var options2 = {
                 title: '选择商户',

+ 58 - 16
dgtly-goods/dgtly-goods-admin/src/main/resources/templates/goods/info/info.html

@@ -10,18 +10,22 @@
                 <form id="formId">
                     <div class="select-list">
                         <ul>
-                            <li>
+                            <li >
                                 <p>商品名称:</p>
                                 <input type="text" name="name"/>
                             </li>
 
-                            <li th:if="${isSys}">
-                                <p>所属商户id:</p>
-                                <input type="text" name="companyId"/>
+                            <li th:if="${isSystemUser}">
+                                <input name="companyId" type="hidden" id="input_companyId">
+                                <p >所属商户:</p>
+                                <input name="companyName" onclick="selectTree('company')" id="input_companyTreeName" type="text" placeholder="选择商户"
+                                           class="form-control required" readonly="readonly" required>
                             </li>
                             <li>
-                                <p>所属类型id:</p>
-                                <input type="text" name="typeId"/>
+                                <p>所属类型:</p>
+                                <input name="typeId" type="hidden" id="input_typeId">
+                                <input name="typeName" onclick="selectTree('type')" id="input_typeTreeName" type="text" placeholder="选择商品分类"
+                                       class="form-control required" readonly="readonly" required>
                             </li>
                             <li>
                                 <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
@@ -33,13 +37,9 @@
             </div>
 
             <div class="btn-group-sm" id="toolbar" role="group">
-                <a class="btn btn-success" onclick="$.operate.addFull()" shiro:hasPermission="goods:info:add">
+                <a th:if="@{!${isSystemUser}}" class="btn btn-success" onclick="$.operate.addFull()" shiro:hasPermission="goods:info:add">
                     <i class="fa fa-plus"></i> 添加
                 </a>
-                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="goods:info:remove">
-                    <i class="fa fa-remove"></i> 删除
-                </a>
-
             </div>
             <div class="col-sm-12 select-table table-striped">
                 <table id="bootstrap-table"></table>
@@ -52,6 +52,7 @@
         var putawayFlag = [[${@permission.hasPermi('goods:info:putaway')}]];
         var removeFlag = [[${@permission.hasPermi('goods:info:remove')}]];
         var putawayDict = [[${@dict.getType('goods_putaway')}]];
+        var isSystemUser = [[${isSystemUser}]];
         var prefix = ctx + "goods/info";
 
         $(function() {
@@ -126,12 +127,18 @@
                     align: 'center',
                     formatter: function(value, row, index) {
                         var actions = [];
-                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
-                        if(row.putawayFlag=="0"){
-                            actions.push('<a class="btn btn-primary btn-xs ' + putawayFlag + '" onclick="putaway('+row.id+',1)" shiro:hasPermission="goods:info:putaway"><i class="fa fa-edit"></i> 上架</a>');
-                        }else if(row.putawayFlag=="1"){
-                            actions.push('<a class="btn btn-warning btn-xs ' + putawayFlag + '" onclick="putaway('+row.id+',0)" shiro:hasPermission="goods:info:putaway"><i class="fa fa-download"></i> 下架</a>');
+
+                        if(!isSystemUser){
+                            if(row.putawayFlag=="0"){
+                                actions.push('<a class="btn btn-success btn-xs ' + putawayFlag + '" onclick="putaway('+row.id+',1)" shiro:hasPermission="goods:info:putaway"><i class="fa fa-edit"></i> 上架</a> ');
+                            }else if(row.putawayFlag=="1"){
+                                actions.push('<a class="btn btn-warning btn-xs ' + putawayFlag + '" onclick="putaway('+row.id+',0)" shiro:hasPermission="goods:info:putaway"><i class="fa fa-download"></i> 下架</a> ');
+                            }
+                            if(row.putawayFlag!=1){
+                                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '"  onclick="$.operate.remove(\'' + row.id + '\')" shiro:hasPermission="goods:info:remove"><i class="fa fa-remove"></i>删除</a> ');
+                            }
                         }
+                        actions.push('<a class="btn btn-primary btn-xs " shiro:hasPermission="goods:info:putaway"><i class="fa fa-edit"></i>查看详情</a> ');
                         return actions.join('');
                     }
                 }]
@@ -160,6 +167,41 @@
                 }
             })
         }
+        /***************选择商户******************/
+        function selectTree(name) {
+            var url
+            var cb;
+            if(name=="type"){
+                cb = selectType
+                url  = ctx + "goods/type/selectTypeTree/0";
+            }else if(name=="company"){
+                cb= selectCompany
+                url  = ctx + "company/tree";
+            }
+
+            var options2 = {
+                title: '请选择',
+                width: "800",
+                url: url,
+                callBack: cb
+            };
+            $.modal.openOptions(options2);
+        }
+        function selectCompany(index, layero){
+            var body = layer.getChildFrame('body', index);
+            $("#input_companyId").val(body.find('#treeId').val());
+            $("#input_companyTreeName").val(body.find('#treeName').val());
+            layer.close(index);
+            $.table.search()
+        }
+        function selectType(index, layero){
+            var body = layer.getChildFrame('body', index);
+            $("#input_typeId").val(body.find('#treeId').val());
+            $("#input_typeTreeName").val(body.find('#treeName').val());
+            layer.close(index);
+            $.table.search()
+        }
+
 
     </script>
 </body>

+ 9 - 0
dgtly-goods/dgtly-goods-common/src/main/java/com/dgtly/goods/mapper/GoodsInfoMapper.java

@@ -83,4 +83,13 @@ public interface GoodsInfoMapper
      * @date: 2020/3/3 10:43
      */
     public List<GoodsInfo> selectGoodsInfoListInWeb(GoodsInfo gi);
+
+    /**
+     * @descption: 批量查询商品
+     * @param:
+     * @return:
+     * @auther: qxp
+     * @date: 2020/3/3 10:43
+     */
+    List<GoodsInfo> selectGoodsInfoByIds(String ids);
 }

+ 9 - 0
dgtly-goods/dgtly-goods-common/src/main/java/com/dgtly/goods/service/IGoodsInfoService.java

@@ -84,4 +84,13 @@ public interface IGoodsInfoService
      * @date: 2020/3/3 10:43
      */
     public List<GoodsInfo> selectGoodsInfoListInWeb(GoodsInfo gi);
+
+    /**
+     * @descption: 为前端网页提供商品查询,价格筛选
+     * @param:
+     * @return:
+     * @auther: qxp
+     * @date: 2020/3/3 10:43
+     */
+    public List<GoodsInfo> selectGoodsInfoByIds(String ids);
 }

+ 12 - 0
dgtly-goods/dgtly-goods-common/src/main/java/com/dgtly/goods/service/impl/GoodsInfoServiceImpl.java

@@ -169,4 +169,16 @@ public class GoodsInfoServiceImpl implements IGoodsInfoService
     public List<GoodsInfo> selectGoodsInfoListInWeb(GoodsInfo gi) {
         return goodsInfoMapper.selectGoodsInfoListInWeb(gi);
     }
+
+    /**
+     * @descption: 批量查询商品 根据ids
+     * @param:
+     * @return:
+     * @auther: qxp
+     * @date: 2020/3/3 10:43
+     */
+    @Override
+    public List<GoodsInfo> selectGoodsInfoByIds(String ids) {
+        return goodsInfoMapper.selectGoodsInfoByIds(ids);
+    }
 }

+ 9 - 0
dgtly-goods/dgtly-goods-common/src/main/resources/mapper/goods/GoodsInfoMapper.xml

@@ -98,6 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectGoodsInfoVo"/>
         where gi.id = #{id}
     </select>
+
         
     <insert id="insertGoodsInfo" parameterType="GoodsInfo" useGeneratedKeys="true" keyProperty="id">
         <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
@@ -188,6 +189,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <select id="selectGoodsInfoByIds" parameterType="String" resultMap="GoodsInfoResult">
+        <include refid="selectGoodsInfoVo"/>
+        where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="selectGoodsInfoHotList" parameterType="GoodsInfo" resultMap="GoodsInfoResult">
         select gi.id, gi.name, gi.company_id, gi.type_id, gi.price, gi.cover, gi.slideshow, gi.create_time, gi.create_by, gi.update_time, gi.update_by, gi.remark,
         gi.putaway_flag,gi.weight,gi.produced_time,gi.material,