Explorar o código

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java
#	src/main/java/com/gree/mall/manager/logic/goods/GoodsLogic.java
FengChaoYu hai 1 mes
pai
achega
5bcad7f470

+ 1 - 0
src/main/java/com/gree/mall/manager/bean/goods/GoodsBean.java

@@ -19,6 +19,7 @@ public class GoodsBean extends Goods {
     @ApiModelProperty("轮播图")
     private List<CommonFile> images;
 
+
     private String category1;
     private String category2;
     private String mainName;

+ 60 - 0
src/main/java/com/gree/mall/manager/bean/goods/GoodsVO.java

@@ -0,0 +1,60 @@
+package com.gree.mall.manager.bean.goods;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.plus.entity.Goods;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel
+public class GoodsVO {
+
+    @ZfireField(hide = true)
+    @TableId(value = "goods_id", type = IdType.ID_WORKER_STR)
+    private String goodsId;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商品类型: COMMON=普通商品  PACKAGE=套购商品")
+    private String goodsType;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品图片")
+    private String imgUrl;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "商品分类id")
+    private String categoryId;
+
+    @ApiModelProperty(value = "商品大类")
+    private String categoryPname;
+
+    @ApiModelProperty(value = "商品小类")
+    private String categoryName;
+
+    @ZfireField(hide = true)
+    @ApiModelProperty(value = "大类id")
+    private String categoryPid;
+
+
+
+    @ApiModelProperty(value = "划线价格")
+    private BigDecimal orgGoodsPrice;
+
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal goodsPrice;
+
+
+    @ApiModelProperty(value = "商品状态 true:上架  false:下架")
+    private Boolean status;
+
+    @ApiModelProperty(value = "排序")
+    private Integer sortNum;
+
+}

+ 3 - 4
src/main/java/com/gree/mall/manager/commonmapper/CustomGoodsMapper.java

@@ -3,12 +3,10 @@ package com.gree.mall.manager.commonmapper;
 import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.gree.mall.manager.bean.goods.GoodsPackageBean;
-import com.gree.mall.manager.bean.goods.GoodsPackageList;
-import com.gree.mall.manager.bean.goods.GoodsSpecBean;
-import com.gree.mall.manager.bean.goods.GoodsTypeCount;
+import com.gree.mall.manager.bean.goods.*;
 import com.gree.mall.manager.plus.entity.Goods;
 import com.gree.mall.manager.plus.entity.GoodsCategory;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -104,4 +102,5 @@ public interface CustomGoodsMapper {
                                                   @Param("status") Boolean status,
                                                   @Param("companyWechatIds")List<String> companyWechatIds);
 
+    IPage<GoodsVO> goodsList(Page page, @Param("ex") ZfireParamBean zfireParam);
 }

+ 18 - 4
src/main/java/com/gree/mall/manager/controller/admin/AdminWebsitController.java

@@ -13,6 +13,7 @@ import com.gree.mall.manager.logic.admin.AdminWebsitLogic;
 import com.gree.mall.manager.plus.entity.AdminWebsit;
 import com.gree.mall.manager.plus.entity.AdminZone;
 import com.gree.mall.manager.plus.service.AdminWebsitService;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import io.swagger.annotations.Api;
@@ -21,9 +22,11 @@ import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.rmi.RemoteException;
 import java.util.List;
 
@@ -77,31 +80,42 @@ public class AdminWebsitController {
     }
 
     @PostMapping("/add")
-    @ApiOperation("新增商")
+    @ApiOperation("新增商")
     public ResponseHelper add(@RequestBody AdminWebsit adminWebsit, HttpServletRequest request) throws RemoteServiceException, WxErrorException {
         adminWebsitLogic.add(adminWebsit,request);
         return ResponseHelper.success();
     }
 
     @PostMapping("/update")
-    @ApiOperation("修改商")
+    @ApiOperation("修改商")
     public ResponseHelper update(@RequestBody AdminWebsit adminWebsit,HttpServletRequest request) throws RemoteServiceException, WxErrorException {
         adminWebsitLogic.update(adminWebsit,request);
         return ResponseHelper.success();
     }
 
     @PostMapping("/delete")
-    @ApiOperation("删除商")
+    @ApiOperation("删除商")
     public ResponseHelper delete(@RequestParam String id, HttpServletRequest request) throws WxErrorException {
         adminWebsitLogic.delete(id,request);
         return ResponseHelper.success();
     }
 
     @GetMapping("/detail")
-    @ApiOperation("部门商户")
+    @ApiOperation("商家详情")
     public ResponseHelper<AdminWebsit> detail(@RequestParam String id){
         AdminWebsit detail = adminWebsitLogic.detail(id);
         return ResponseHelper.success(detail);
     }
 
+    @PostMapping("/import")
+    @ApiOperation("导入商家附件(商家导入.xlsx)")
+    public ResponseHelper importData(
+            @RequestPart("file") MultipartFile file
+    ) throws IOException {
+        List<Object> objects = ExcelUtils.importExcel(file);
+        adminWebsitLogic.importData(objects);
+        return ResponseHelper.success();
+    }
+
+
 }

+ 32 - 0
src/main/java/com/gree/mall/manager/controller/goods/GoodsController.java

@@ -1,8 +1,12 @@
 package com.gree.mall.manager.controller.goods;
 
+import cn.hutool.core.lang.TypeReference;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dtflys.forest.annotation.Request;
 import com.gree.mall.manager.annotation.ApiNotAuth;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.admin.AdminWebsitVO;
 import com.gree.mall.manager.bean.goods.*;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.helper.ResponseHelper;
@@ -11,6 +15,8 @@ import com.gree.mall.manager.logic.goods.GoodsLogic;
 import com.gree.mall.manager.plus.entity.Goods;
 import com.gree.mall.manager.plus.entity.User;
 import com.gree.mall.manager.utils.excel.ExcelUtils;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -119,6 +125,32 @@ public class GoodsController {
     }
 
 
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "商品列表V2")
+    public ResponseHelper<IPage<GoodsVO>> list(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) throws RemoteServiceException {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<GoodsVO> adminDeptVOIPage = goodsLogic.goodsList(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        return ResponseHelper.success(adminDeptVOIPage, new TypeReference<GoodsVO>() {});
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation(value = "商品列表V2导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        ZfireParamBean zfireParam = FieldUtils.supplyParam(zfireParamBean);
+        IPage<GoodsVO> adminDeptVOIPage = goodsLogic.goodsList(new Page(zfireParam.getPageNum(), zfireParam.getPageSize()), zfireParam);
+        //3.导出
+        FieldUtils.exportData(adminDeptVOIPage.getRecords(), zfireParam.getExportFields(), request, response);
+    }
+
+
+
 
     @GetMapping("/listbycategory")
     @ApiOperation(value = "商品详情")

+ 54 - 0
src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java

@@ -9,10 +9,16 @@ import com.gree.mall.manager.bean.admin.AdminWebsitVO;
 import com.gree.mall.manager.commonmapper.AdminMapper;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.logic.common.WorkWechatLogic;
+import com.gree.mall.manager.plus.entity.AdminCompanyWechat;
+import com.gree.mall.manager.plus.entity.AdminCompanyWechatPayConfig;
 import com.gree.mall.manager.plus.entity.AdminWebsit;
 import com.gree.mall.manager.plus.entity.AdminZone;
+import com.gree.mall.manager.plus.service.AdminCompanyWechatPayConfigService;
+import com.gree.mall.manager.plus.service.AdminCompanyWechatService;
 import com.gree.mall.manager.plus.service.AdminWebsitService;
 import com.gree.mall.manager.plus.service.AdminZoneService;
+import com.gree.mall.manager.utils.CommonUtils;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -41,6 +47,9 @@ public class AdminWebsitLogic {
     @Autowired
     AdminMapper adminMapper;
 
+    @Autowired
+    AdminCompanyWechatPayConfigService adminCompanyWechatPayConfigService;
+
     /**
      * 区域列表
      */
@@ -216,4 +225,49 @@ public class AdminWebsitLogic {
         IPage<AdminWebsitVO> adminDeptWebsitVOIPage = adminMapper.listWebsit(page, zfireParam);
         return adminDeptWebsitVOIPage;
     }
+
+    public void importData(List<Object> objects) {
+
+        List<AdminWebsit> adminWebsits = new ArrayList<>();
+
+        for (int i = 0; i < objects.size(); i++) {
+            int rowIndex = i + 2;
+            List<Object> row = (List<Object>) objects.get(i);
+
+            AdminWebsit adminWebsit = new AdminWebsit();
+
+            adminWebsit.setWebsitId((String) row.get(0));
+            adminWebsit.setWebsitNumber((String) row.get(0));
+            adminWebsit.setName((String) row.get(1));
+            adminWebsit.setMobile((String) row.get(2));
+            adminWebsit.setPerson((String) row.get(3));
+            adminWebsit.setPersonMobile((String) row.get(4));
+            adminWebsit.setType((String) row.get(5));
+            adminWebsit.setAddress((String) row.get(6));
+            AdminCompanyWechatPayConfig one = adminCompanyWechatPayConfigService.lambdaQuery()
+                    .eq(AdminCompanyWechatPayConfig::getCompanyName, (String) row.get(7))
+
+                    .last("limit 1").one();
+
+            if (one == null)
+                throw new RemoteServiceException("第"+rowIndex+"行,找不到支付商户");
+            adminWebsit.setPayWorkerCodeName((String) row.get(7));
+            adminWebsit.setPayWorkerCodeId(one.getId());
+            if (row.size() > 7) {
+                adminWebsit.setYunAppid((String) row.get(8));
+                adminWebsit.setYunAppkey((String) row.get(9));
+                adminWebsit.setYunCompany((String) row.get(10));
+                adminWebsit.setYunNumber((String) row.get(11));
+                adminWebsit.setYunSystem((String) row.get(12));
+                adminWebsit.setYunTax((String) row.get(13));
+                adminWebsit.setYunName((String) row.get(14));
+                adminWebsit.setYunTwo((((String) row.get(15)).equals("是"))?"YES":"NO");
+            }
+
+            adminWebsits.add(adminWebsit);
+
+        }
+
+        adminWebsitService.saveBatch(adminWebsits);
+    }
 }

+ 28 - 0
src/main/java/com/gree/mall/manager/logic/goods/GoodsLogic.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.ExcelData;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
+import com.gree.mall.manager.bean.admin.AdminWebsitVO;
 import com.gree.mall.manager.bean.goods.*;
 import com.gree.mall.manager.commonmapper.CustomGoodsMapper;
 import com.gree.mall.manager.commonmapper.GoodsCheckMapper;
@@ -23,7 +24,10 @@ import com.gree.mall.manager.logic.user.UserLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
 import com.gree.mall.manager.utils.DateUtils;
+import com.gree.mall.manager.utils.StringUtil;
 import com.gree.mall.manager.utils.excel.ExcelUtils;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -437,6 +441,19 @@ public class GoodsLogic {
         }
         goodsBean.setUpdateTime(new Date());
         goodsBean.setCreateTime(creatDate);
+
+        if (StringUtil.isEmpty(goodsBean.getPutCompanyId())) {
+            goodsBean.setPutCompanyId(goodsBean.getPutCompanyId());
+            String[] split = StringUtils.split(goodsBean.getPutCompanyId(), ",");
+
+            String name ="";
+            for (String s : split) {
+                AdminCompanyWechat adminCompanyWechat = adminCompanyWechatService.getById(s);
+                name = name+adminCompanyWechat.getCompanyName()+",";
+            }
+
+            goodsBean.setPutCompanyName(name);
+        }
         goodsService.save(goodsBean);
 
         if (CollectionUtils.isNotEmpty(goodsBean.getGoodsSpecs())) {
@@ -1199,4 +1216,15 @@ public class GoodsLogic {
         excelData.setRows(rows);
         ExcelUtils.exportExcel(request, response, fileName, excelData, -1, null);
     }
+
+    public IPage<GoodsVO> goodsList(Page page, ZfireParamBean zfireParam) {
+        //获取当前登录企业id
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        //1.组装查询条件
+        FieldUtils.supplyParam(zfireParam, GoodsVO.class,adminUser);
+
+        IPage<GoodsVO> goodsVOIPage = customGoodsMapper.goodsList(page, zfireParam);
+        return goodsVOIPage;
+    }
 }

+ 10 - 0
src/main/resources/mapper/CustomGoodsMapper.xml

@@ -211,6 +211,16 @@
         </choose>
 
     </select>
+    <select id="goodsList" resultType="com.gree.mall.manager.bean.goods.GoodsVO">
+        SELECT
+        ${ex.selected}
+        FROM goods a
+        ${ex.query}
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
 
 
 </mapper>

BIN=BIN
src/main/resources/static/商家导入.xlsx