Преглед изворни кода

Merge branch 'master' of http://git.ds-bay.com/project/kmall-pt-general

zcb пре 4 година
родитељ
комит
79790d51cb

+ 12 - 7
kmall-admin/src/main/java/com/kmall/admin/Test.java

@@ -12,6 +12,8 @@
  */
 package com.kmall.admin;
 
+import org.springframework.web.util.HtmlUtils;
+
 /**
  * 名称:Test <br>
  * 描述:<br>
@@ -23,14 +25,17 @@ package com.kmall.admin;
 public class Test {
     public static void main(String[] args) {
         //Integer使用equals判断
-        Integer a = 127;
-        Integer b = 127;
-        System.out.println(a == b);
-        Integer c = 129;
-        Integer d = 129;
-        System.out.println(c == d);
+//        Integer a = 127;
+//        Integer b = 127;
+//        System.out.println(a == b);
+//        Integer c = 129;
+//        Integer d = 129;
+//        System.out.println(c == d);
+//
+//        System.out.println(c.equals(d));
+
 
-        System.out.println(c.equals(d));
+        System.out.println(HtmlUtils.htmlUnescape("Baby&amp;Children"));
 
     }
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * Controller
@@ -75,6 +76,10 @@ public class BrandController {
             throw new RRException(r.get("msg").toString());
         }
 
+        BrandEntity brandEntity = brandService.queryByCategoryIdAndBrandNameAndMerchSn(brand.getCategoryId(),brand.getName(),brand.getMerchSn());
+        if (Objects.nonNull(brandEntity)){
+            throw new RRException("该分类下已经有该品牌名称");
+        }
         brandService.save(brand);
 
         return R.ok();

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -9,10 +9,12 @@ import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.utils.*;
 import com.kmall.common.utils.excel.ExcelUtil;
+import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.util.HtmlUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -70,6 +72,8 @@ public class CategoryController {
     @RequestMapping("/save")
     @RequiresPermissions("category:save")
     public R save(@RequestBody CategoryEntity category) {
+        category.setName(HtmlUtils.htmlUnescape(category.getName()));
+        category.setFrontDesc(HtmlUtils.htmlUnescape(category.getFrontDesc()));
         categoryService.save(category);
 
         return R.ok();
@@ -81,6 +85,8 @@ public class CategoryController {
     @RequestMapping("/update")
     @RequiresPermissions("category:update")
     public R update(@RequestBody CategoryEntity category) {
+        category.setName(HtmlUtils.htmlUnescape(category.getName()));
+        category.setFrontDesc(HtmlUtils.htmlUnescape(category.getFrontDesc()));
         categoryService.update(category);
 
         return R.ok();

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/BrandDao.java

@@ -25,4 +25,6 @@ public interface BrandDao extends BaseDao<BrandEntity> {
      * @return
      */
     String queryBrandName(@Param("prodBarcode") String prodBarcode, @Param("storeId") String storeId);
+
+    BrandEntity queryByCategoryIdAndBrandNameAndMerchSn(@Param("categoryId") Integer categoryId,@Param("name") String name,@Param("merchSn") String merchSn);
 }

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/service/BrandService.java

@@ -83,4 +83,7 @@ public interface BrandService {
      * @return
      */
     String queryBrandName(String prodBarcode, String storeId);
+
+
+    BrandEntity queryByCategoryIdAndBrandNameAndMerchSn(Integer categoryId, String name, String merchSn);
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/BrandServiceImpl.java

@@ -189,4 +189,9 @@ public class BrandServiceImpl implements BrandService {
     public String queryBrandName(String prodBarcode, String storeId) {
         return brandDao.queryBrandName(prodBarcode,storeId);
     }
+
+    @Override
+    public BrandEntity queryByCategoryIdAndBrandNameAndMerchSn(Integer categoryId, String name, String merchSn) {
+        return brandDao.queryByCategoryIdAndBrandNameAndMerchSn(categoryId,name,merchSn);
+    }
 }

+ 9 - 9
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -879,15 +879,15 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                     throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]的底线价不可以大于零售价");
                 }
                 // 查询批次号是否存在
-                GoodsBatchEntity goodsBatchEntity = goodsBatchDao.queryByBatchSnAndSku(storeGoodsDto.getBatchSn(), goodsEntity.getSku());
-                if (goodsBatchEntity!=null){
-                    storeRelaEntity.setBatchSn(goodsBatchEntity.getBatchSn());
-                    Date batchExpireDate = goodsBatchEntity.getBatchExpireDate();
-                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    storeRelaEntity.setBatchExpireDate(sdf.format(batchExpireDate));
-                }else{
-                    throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]的批次号不存在");
-                }
+//                GoodsBatchEntity goodsBatchEntity = goodsBatchDao.queryByBatchSnAndSku(storeGoodsDto.getBatchSn(), goodsEntity.getSku());
+//                if (goodsBatchEntity!=null){
+//                    storeRelaEntity.setBatchSn(goodsBatchEntity.getBatchSn());
+//                    Date batchExpireDate = goodsBatchEntity.getBatchExpireDate();
+//                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                    storeRelaEntity.setBatchExpireDate(sdf.format(batchExpireDate));
+//                }else{
+////                    throw new RRException("商品[" + storeGoodsDto.getGoodsSn() + "]的批次号不存在");
+//                }
                 storeRelaEntity.setMarketPrice(new BigDecimal(storeGoodsDto.getMarketPrice()));
                 storeRelaEntity.setRetailPrice(new BigDecimal(storeGoodsDto.getRetailPrice()));
                 storeRelaEntity.setBottomLinePrice(storeGoodsDto.getBottomLinePrice());

+ 1 - 1
kmall-admin/src/main/resources/XmlTemplate/StoreGoodsDtoList.xml

@@ -15,7 +15,7 @@
                 <mapping row="1" col="6">StoreGoodsDto.retailPrice</mapping>
                 <mapping row="1" col="7">StoreGoodsDto.marketPrice</mapping>
                 <mapping row="1" col="8">StoreGoodsDto.bottomLinePrice</mapping>
-                <mapping row="1" col="9">StoreGoodsDto.batchSn</mapping>
+<!--                <mapping row="1" col="9">StoreGoodsDto.batchSn</mapping>-->
             </section>
             <loopbreakcondition>
                 <rowcheck offset="0">

+ 14 - 0
kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml

@@ -252,5 +252,19 @@
 	        goods.prod_barcode = #{prodBarcode}
 	        and brand.store_id = #{storeId}
     </select>
+    <select id="queryByCategoryIdAndBrandNameAndMerchSn" resultType="com.kmall.admin.entity.BrandEntity">
+        select *
+        from mall_brand
+        where 1=1
+        <if test="categoryId != null and categoryId != ''">
+            AND category_id = #{categoryId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
+        <if test="name != null and name.trim() != ''">
+            AND `name` = #{name}
+        </if>
+    </select>
 
 </mapper>

+ 5 - 2
kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html

@@ -151,7 +151,7 @@
                         <i-button type="ghost" icon="ios-cloud-upload-outline">商品导入</i-button>
                     </Upload>
                 </i-col>
-                #end
+                #end 0
                 #if($shiro.hasPermission("goods:generalGoodsUpload"))
                 <i-col style="display: inline-grid;">
                     <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"
@@ -477,7 +477,10 @@
                     <Modal title="查看图片" v-model="visible">
                         <img :src="imgName" v-if="visible" style="width: 100%"/>
                     </Modal>
-                    <span style="color: red;font-size: 12px;">* 商品详情轮播图,尺寸建议750x750(正方形模式)像素以内,大小100k以内</span>
+                    <div style="display: inline-block;">
+                        <span style="color: red;font-size: 20px;display: block;">(仅用于线上业务商品详情录入)</span>
+                        <span style="color: red;font-size: 12px;">* 商品详情轮播图,尺寸建议750x750(正方形模式)像素以内,大小100k以内</span>
+                    </div>
                 </template>
                 <div id="goodsDesc"></div>
             </Tab-Pane>

+ 1 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/goodsexportpdf.html

@@ -39,7 +39,7 @@
         <Row :gutter="16">
         <div class="row" style="border:0;margin-bottom:10px">
 <!--            <i-button  v-bind:disabled="selectButtonDisabled"  @click="selectLabelHead" >选择标签头</i-button>-->
-            <i-button type="primary" @click="exportPdf"><i class="fa fa-cloud-download"></i>&nbsp;导出pdf</i-button>
+            <i-button type="primary" @click="exportPdf"><i class="fa fa-cloud-download"></i>&nbsp;标签pdf制作</i-button>
             <i-col span="3">
                 <i-select v-model="q.storeId" placeholder="门店" filterable label-in-value>
                     <i-option v-for="store in stores" :value="store.id"

+ 15 - 15
kmall-admin/src/main/webapp/WEB-INF/page/shop/storeProductStock.html

@@ -165,10 +165,10 @@
             </Form-item>
             <Form-item label="商品" prop="goodsId">
                 <i-select v-model="productStoreRela.goodsId" filterable @on-change="changeGoods" label-in-value  v-show="isOperatorShow" disabled>
-                    <i-option v-for="goods in goodsList" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'门店店提':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
+                    <i-option v-for="goods in goodsList" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'现场速递':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
                 </i-select>
                 <i-select v-model="productStoreRela.goodsId" filterable @on-change="changeGoods" label-in-value  v-show="!isOperatorShow">
-                    <i-option v-for="goods in goodsList" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'门店店提':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
+                    <i-option v-for="goods in goodsList" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'现场速递':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
                 </i-select>
             </Form-item>
             <div v-show="isStockShare"><span style="margin-left: 80px;color: red;font-size: 12px;">* 该门店商品所选供应商第三方商户是共享库存,门店库存则为商户商品总库存,不需要编辑</span></div>
@@ -209,17 +209,17 @@
                     </i-option>
                 </i-select>
             </Form-item>-->
-            <Form-item v-if="showInput" label="批次编号" prop="batchSn">
-                <!--<i-input v-model="productStoreRela.batchSn" placeholder="批次编号" style="width: 268px;"/>-->
-                <i-select v-model="productStoreRela.batchSn" placeholder="批次编号" @on-change="changeBatch"
-                          label-in-value style="width: 268px;">
-                    <i-option v-for="batch in batchList" :value="batch.id" :key="batch.id">{{batch.batchSn}}
-                    </i-option>
-                </i-select>
-            </Form-item>
-            <Form-item v-if="showInput" label="批次到期日期" prop="batchExpireDate">
-                <i-input type='date' v-model="productStoreRela.batchExpireDate" placeholder="批次到期日期" style="width: 268px;"/>
-            </Form-item>
+<!--            <Form-item v-if="showInput" label="批次编号" prop="batchSn">-->
+<!--                &lt;!&ndash;<i-input v-model="productStoreRela.batchSn" placeholder="批次编号" style="width: 268px;"/>&ndash;&gt;-->
+<!--                <i-select v-model="productStoreRela.batchSn" placeholder="批次编号" @on-change="changeBatch"-->
+<!--                          label-in-value style="width: 268px;">-->
+<!--                    <i-option v-for="batch in batchList" :value="batch.id" :key="batch.id">{{batch.batchSn}}-->
+<!--                    </i-option>-->
+<!--                </i-select>-->
+<!--            </Form-item>-->
+<!--            <Form-item v-if="showInput" label="批次到期日期" prop="batchExpireDate">-->
+<!--                <i-input type='date' v-model="productStoreRela.batchExpireDate" placeholder="批次到期日期" style="width: 268px;"/>-->
+<!--            </Form-item>-->
             <Form-item v-if="showInputSpecification" label="规格" prop="specification">
                 <i-input v-model="productStoreRela.specification" placeholder="规格" style="width: 268px;"/>
             </Form-item>
@@ -300,10 +300,10 @@
             </Form-item>
             <Form-item label="商品" prop="goodsId">
                 <i-select v-model="productStoreRela.goodsId" filterable @on-change="changeSupplerGoods" label-in-value  v-show="isSupplierOperatorShow" disabled>
-                    <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'门店店提':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
+                    <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'现场速递':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
                 </i-select>
                 <i-select v-model="productStoreRela.goodsId" filterable @on-change="changeSupplerGoods" label-in-value  v-show="!isSupplierOperatorShow">
-                    <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'门店店提':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
+                    <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}({{goods.goodsBizType=='00'?'保税备货':''}}{{goods.goodsBizType=='02'?'保税展示补货':''}}{{goods.goodsBizType=='10'?'现场速递':''}}{{goods.goodsBizType=='11'?'普通货物':''}})</i-option>
                 </i-select>
             </Form-item>
             <div v-show="isSupplierStockShare"><span style="margin-left: 80px;color: red;font-size: 12px;">* 该门店商品所选供应商第三方商户是共享库存,门店库存则为商户商品总库存,不需要编辑</span></div>

+ 4 - 4
kmall-admin/src/main/webapp/js/shop/storeProductStock.js

@@ -25,10 +25,10 @@ $(function () {
             {label: '商品编码', name: 'goodsSn', index: 'goodsSn', width: 180, align: 'center'},
             {label: '名称', name: 'goodsName', index: 'goodsName', width: 500, align: 'left'},
             {label: '产品编码', name: 'productSn', index: 'productSn', width: 140, align: 'center'},
-            {label: '批次编号', name: 'batchSn', index: 'batchSn', width: 220, align: 'center'},
-            {label: '批次到期日期', name: 'batchExpireDate', index: 'batchExpireDate', width: 160, align: 'center',formatter: function (value) {
-                    return transDate(value,'yyyy-MM-dd hh:mm:ss');
-            }},
+            // {label: '批次编号', name: 'batchSn', index: 'batchSn', width: 220, align: 'center'},
+            // {label: '批次到期日期', name: 'batchExpireDate', index: 'batchExpireDate', width: 160, align: 'center',formatter: function (value) {
+            //         return transDate(value,'yyyy-MM-dd hh:mm:ss');
+            // }},
             {
                 label: '上架', name: 'isOnSale', index: 'is_on_sale', width: 80, align: 'center',
                 formatter: function (value) {

BIN
kmall-admin/src/main/webapp/statics/file/store_goods_export_yyyy_mm_dd_v1.0.0.xls


+ 0 - 2
kmall-common/src/main/java/com/kmall/common/fileserver/util/FileManager.java

@@ -127,8 +127,6 @@ public class FileManager implements Serializable {
      * <strong>方法概要: 文件下载</strong> <br>
      * <strong>创建时间: 2016-9-26 上午10:28:21</strong> <br>
      *
-     * @param String groupName
-     * @param String remoteFileName
      * @return returned value comment here
      * @author Wang Liang
      */