Parcourir la source

applet品类 商家修改

wwl il y a 4 ans
Parent
commit
b734c86aff

+ 4 - 3
zzjs-admin/src/main/java/com/miaxis/app/controller/customer/AppletCustomerInfoController.java

@@ -1,17 +1,18 @@
 package com.miaxis.app.controller.customer;
 
-import com.miaxis.collection.service.ICollectionInfoService;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.customer.domain.CustomerInfo;
 import com.miaxis.customer.service.ICustomerInfoService;
 import com.miaxis.customer.vo.ExhibitionCustomerInfoVo;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 

+ 8 - 12
zzjs-admin/src/main/java/com/miaxis/app/controller/product/AppletProductTypeInfoController.java

@@ -3,14 +3,14 @@ package com.miaxis.app.controller.product;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.page.ResponsePageInfo;
-import com.miaxis.customer.service.ICustomerInfoService;
-import com.miaxis.customer.vo.CustomerInfoVo;
-import com.miaxis.product.domain.ProductTypeInfo;
 import com.miaxis.product.service.IProductTypeInfoService;
-import com.miaxis.product.vo.ProductTypeInfoVo;
-import io.swagger.annotations.*;
+import com.miaxis.product.vo.AppletProductTypeInfoVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
 
@@ -34,13 +34,9 @@ public class AppletProductTypeInfoController extends BaseController{
      */
     @GetMapping("/list")
     @ApiOperation("查询品类列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<ProductTypeInfoVo> list(@ModelAttribute ProductTypeInfo productTypeInfo){
+    public ResponsePageInfo<AppletProductTypeInfoVo> list(){
         startPage();
-        List<ProductTypeInfoVo> list = productTypeInfoService.selectProductTypeInfoList(productTypeInfo);
+        List<AppletProductTypeInfoVo> list = productTypeInfoService.selectAppletProductTypeInfoList();
         return toResponsePageInfo(list);
     }
 

+ 2 - 2
zzjs-admin/src/main/java/com/miaxis/pc/controller/product/ProductTypeInfoController.java

@@ -66,8 +66,8 @@ public class ProductTypeInfoController extends BaseController{
     @Log(title = "品类", businessType = BusinessTypeEnum.INSERT)
     @PostMapping
     @ApiOperation("新增品类")
-    public Response<Integer> add(@RequestBody ProductTypeInfo productTypeInfo){
-        return toResponse(productTypeInfoService.save(productTypeInfo) ? 1 : 0);
+    public Response add(@RequestBody ProductTypeInfo productTypeInfo){
+        return productTypeInfoService.saveProductTypeInfo(productTypeInfo);
     }
 
     /**

+ 1 - 0
zzjs-service/src/main/java/com/miaxis/collection/service/impl/CollectionInfoServiceImpl.java

@@ -77,6 +77,7 @@ public class CollectionInfoServiceImpl extends ServiceImpl<CollectionInfoMapper,
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Response removeCollectionByIds(Long userId, Long[] ids) {
         try{
             for (Long id : ids) {

+ 5 - 0
zzjs-service/src/main/java/com/miaxis/customer/domain/CustomerInfo.java

@@ -56,6 +56,11 @@ public class CustomerInfo extends BaseBusinessEntity{
     @ApiModelProperty(value = "所在城市编码(对应城市表)")
     private String cityCode;
 
+    @Excel(name = "区域编码")
+    @TableField("area_code")
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
     /** 归属人员--关联用户表 */
     @Excel(name = "归属人员--关联用户表")
     @TableField("attributed_personnel")

+ 2 - 2
zzjs-service/src/main/java/com/miaxis/customer/mapper/CustomerInfoMapper.java

@@ -34,11 +34,11 @@ public interface CustomerInfoMapper extends BaseMapper<CustomerInfo> {
 
     /**
      * 查询商家列表
-     * @param productId
+     * @param productIds
      * @param userId
      * @return
      */
-    List<ExhibitionCustomerInfoVo> getCustomerListByProductId(@Param("productId") Long productId,@Param("userId")Long userId);
+    List<ExhibitionCustomerInfoVo> getCustomerListByProductId(@Param("productIds") List<Long> productIds,@Param("userId")Long userId,@Param("productIdStatus")Long productIdStatus);
 
 
     /**

+ 17 - 1
zzjs-service/src/main/java/com/miaxis/customer/service/impl/CustomerInfoServiceImpl.java

@@ -8,12 +8,17 @@ import com.miaxis.customer.mapper.CustomerInfoMapper;
 import com.miaxis.customer.service.ICustomerInfoService;
 import com.miaxis.customer.vo.CustomerInfoVo;
 import com.miaxis.customer.vo.ExhibitionCustomerInfoVo;
+import com.miaxis.product.domain.ProductTypeInfo;
+import com.miaxis.product.mapper.ProductTypeInfoMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 客户信息Service业务层处理
@@ -27,6 +32,8 @@ public class CustomerInfoServiceImpl extends ServiceImpl<CustomerInfoMapper, Cus
 
     private final CustomerInfoMapper customerInfoMapper;
 
+    private final ProductTypeInfoMapper productTypeInfoMapper;
+
 
     /**
      * 查询客户信息列表
@@ -90,7 +97,16 @@ public class CustomerInfoServiceImpl extends ServiceImpl<CustomerInfoMapper, Cus
      */
     @Override
     public List<ExhibitionCustomerInfoVo> getCustomerListByProductId(Long productId,Long userId) {
-        return customerInfoMapper.getCustomerListByProductId(productId,userId);
+        List<Long> arrayList = new ArrayList<>();
+        List<ProductTypeInfo> infos = productTypeInfoMapper.selectByMap(new HashMap<String, Object>() {{
+            put("pid", productId);
+        }});
+        if (!infos.isEmpty()){
+            arrayList = infos.stream().map(s -> s.getId()).collect(Collectors.toList());
+        }else {
+            arrayList.add(productId);
+        }
+        return customerInfoMapper.getCustomerListByProductId(arrayList,userId,productId);
     }
 
 

+ 4 - 0
zzjs-service/src/main/java/com/miaxis/customer/vo/CustomerInfoVo.java

@@ -45,6 +45,10 @@ public class CustomerInfoVo extends BaseBusinessEntity{
     @ApiModelProperty(value = "所在城市编码(对应城市表)")
     private String cityCode;
 
+    @TableField("area_code")
+    @ApiModelProperty(value = "区域编码(对应城市表)")
+    private String areaCode;
+
     @TableField("attributed_personnel")
     @ApiModelProperty(value = "归属人员--关联用户表")
     private Long attributedPersonnel;

+ 9 - 0
zzjs-service/src/main/java/com/miaxis/product/mapper/ProductTypeInfoMapper.java

@@ -3,6 +3,7 @@ package com.miaxis.product.mapper;
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.miaxis.product.domain.ProductTypeInfo;
+import com.miaxis.product.vo.AppletProductTypeInfoVo;
 import com.miaxis.product.vo.ProductTypeInfoVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -27,4 +28,12 @@ public interface ProductTypeInfoMapper extends BaseMapper<ProductTypeInfo> {
      * @return
      */
     ProductTypeInfoVo getProductDetailsById(@Param("id") Long id);
+
+    /**
+     * applet
+     * 查询品类列表
+     * @return 品类集合
+     */
+    List<AppletProductTypeInfoVo> selectAppletProductTypeInfoList();
+
 }

+ 15 - 0
zzjs-service/src/main/java/com/miaxis/product/service/IProductTypeInfoService.java

@@ -3,6 +3,7 @@ package com.miaxis.product.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.product.domain.ProductTypeInfo;
+import com.miaxis.product.vo.AppletProductTypeInfoVo;
 import com.miaxis.product.vo.ProductTypeInfoVo;
 
 import java.util.List;
@@ -35,4 +36,18 @@ public interface IProductTypeInfoService extends IService<ProductTypeInfo>{
      * @return
      */
     Response<ProductTypeInfoVo> getProductDetailsById(Long id);
+
+    /**
+     * 新增品类
+     * @param productTypeInfo
+     * @return
+     */
+    Response saveProductTypeInfo(ProductTypeInfo productTypeInfo);
+
+    /**
+     * applet
+     * 分类列表
+     * @return
+     */
+    List<AppletProductTypeInfoVo> selectAppletProductTypeInfoList();
 }

+ 65 - 0
zzjs-service/src/main/java/com/miaxis/product/service/impl/ProductTypeInfoServiceImpl.java

@@ -4,18 +4,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.exception.CustomException;
+import com.miaxis.common.utils.bean.BeanUtils;
 import com.miaxis.customer.domain.CustomerInfo;
 import com.miaxis.customer.service.ICustomerInfoService;
 import com.miaxis.customer.vo.CustomerInfoVo;
 import com.miaxis.product.domain.ProductTypeInfo;
 import com.miaxis.product.mapper.ProductTypeInfoMapper;
 import com.miaxis.product.service.IProductTypeInfoService;
+import com.miaxis.product.vo.AppletProductTypeInfoVo;
 import com.miaxis.product.vo.ProductTypeInfoVo;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -68,4 +74,63 @@ public class ProductTypeInfoServiceImpl extends ServiceImpl<ProductTypeInfoMappe
 
         return Response.success(productTypeInfoMapper.getProductDetailsById(id));
     }
+
+    /**
+     * 新增品类
+     * @param productTypeInfo
+     * @return
+     */
+    @Override
+    public Response saveProductTypeInfo(ProductTypeInfo productTypeInfo) {
+
+        List<ProductTypeInfo> productTypeInfos = productTypeInfoMapper.selectByMap(new HashMap<String, Object>() {{
+            put("product_name", productTypeInfo.getProductName());
+        }});
+        if (!productTypeInfos.isEmpty()) throw new CustomException("分类名称重复");
+
+        productTypeInfoMapper.insert(productTypeInfo);
+        return Response.success();
+
+    }
+
+    /**
+     * applet
+     * 分类列表
+     * @return
+     */
+    @Override
+    public List<AppletProductTypeInfoVo> selectAppletProductTypeInfoList() {
+        List<AppletProductTypeInfoVo> productTypeInfoVos = productTypeInfoMapper.selectAppletProductTypeInfoList();
+        return builTree(productTypeInfoVos);
+    }
+
+
+    //建立树形结构
+    public List<AppletProductTypeInfoVo> builTree(List<AppletProductTypeInfoVo> productList){
+        List<AppletProductTypeInfoVo> infoVos =new  ArrayList<>();
+        //获取根节点
+        List<AppletProductTypeInfoVo> rootMenuLists =new  ArrayList<>();
+        for(AppletProductTypeInfoVo productType : productList) {
+            if(productType.getPid().toString().equals("0")) {
+                rootMenuLists.add(productType);
+            }
+        }
+        for(AppletProductTypeInfoVo productTypeInfoVo : rootMenuLists) {
+            productTypeInfoVo=getTree(productTypeInfoVo,productList);
+            infoVos.add(productTypeInfoVo);
+        }
+        return infoVos;
+    }
+    //递归,建立子树形结构
+    private AppletProductTypeInfoVo getTree(AppletProductTypeInfoVo productTypeInfo,List<AppletProductTypeInfoVo> menuList){
+        List<AppletProductTypeInfoVo> infoVos = new ArrayList<>();
+        for (AppletProductTypeInfoVo productTypeInfoVo : menuList) {
+            if (productTypeInfoVo.getPid().toString().equals(productTypeInfo.getId().toString())){
+                infoVos.add(getTree(productTypeInfoVo,menuList));
+            }
+        }
+        productTypeInfo.setChildren(infoVos);
+        return productTypeInfo;
+    }
+
 }

+ 55 - 0
zzjs-service/src/main/java/com/miaxis/product/vo/AppletProductTypeInfoVo.java

@@ -0,0 +1,55 @@
+package com.miaxis.product.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 品类对象
+ *
+ * @author miaxis
+ * @date 2021-03-11
+ */
+@Data
+@ApiModel(value = "AppletProductTypeInfoVo", description = "applet品类对象返回参")
+public class AppletProductTypeInfoVo implements Serializable {
+
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @TableField("product_name")
+    @ApiModelProperty(value = "分类名称")
+    private String productName;
+
+    @TableField("pid")
+    @ApiModelProperty(value = "父节点(预留)")
+    private Long pid;
+
+    @TableField("product_describe")
+    @ApiModelProperty(value = "分类描述,该分类名称的描述")
+    private String productDescribe;
+
+    @TableField("product_icon")
+    @ApiModelProperty(value = "品类图标--对应file_info的id")
+    private Integer productIcon;
+
+    @ApiModelProperty(value = "品类图标访问地址")
+    private String fileUrl;
+
+    @TableField("status")
+    @ApiModelProperty(value = "状态  0:有效(默认)、1:失效 (伪删除)")
+    private Integer status;
+
+    @ApiModelProperty(value = "子节点分类")
+    private List<AppletProductTypeInfoVo> children;
+
+
+}

+ 9 - 3
zzjs-service/src/main/resources/mapper/customer/CustomerInfoMapper.xml

@@ -11,6 +11,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="corporateLogo"    column="corporate_logo"    />
         <result property="customerSource"    column="customer_source"    />
         <result property="cityCode"    column="city_code"    />
+        <result property="areaCode"    column="area_code"    />
         <result property="attributedPersonnel"    column="attributed_personnel"    />
         <result property="detailedAddress"    column="detailed_address"    />
         <result property="industryType"    column="industry_type"    />
@@ -35,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectCustomerInfoVo">
-        select id, corporate_name, business_type, corporate_logo, customer_source, city_code, attributed_personnel, detailed_address, industry_type, corporate_phone, corporate_contacts, phone, customer_star, enterprise_tax_number, invoice_title, bank_of_deposit, bank_account, finance_phone, fax_number, applet_address, applet_logo, applet_qr_code, applet_introduce, shelf_status, create_time, update_time, status from customer_info
+        select id, corporate_name, business_type, corporate_logo, customer_source, city_code,area_code, attributed_personnel, detailed_address, industry_type, corporate_phone, corporate_contacts, phone, customer_star, enterprise_tax_number, invoice_title, bank_of_deposit, bank_account, finance_phone, fax_number, applet_address, applet_logo, applet_qr_code, applet_introduce, shelf_status, create_time, update_time, status from customer_info
     </sql>
 
     <select id="selectCustomerInfoList" parameterType="CustomerInfo" resultMap="CustomerInfoResult">
@@ -46,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="corporateLogo != null "> and corporate_logo = #{corporateLogo}</if>
             <if test="customerSource != null "> and customer_source = #{customerSource}</if>
             <if test="cityCode != null  and cityCode != ''"> and city_code = #{cityCode}</if>
+            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
             <if test="attributedPersonnel != null "> and attributed_personnel = #{attributedPersonnel}</if>
             <if test="detailedAddress != null  and detailedAddress != ''"> and detailed_address = #{detailedAddress}</if>
             <if test="industryType != null "> and industry_type = #{industryType}</if>
@@ -73,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         f1.file_url as corporateLogoFileUrl,
         ci.customer_source,
         ci.city_code,
+        ci.area_code,
         ci.attributed_personnel,
         ci.detailed_address,
         ci.industry_type,
@@ -125,11 +128,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>
             1=1
             <choose>
-                <when test="productId == 0">
+                <when test="productIdStatus == 0">
                     ORDER BY collectionCount DESC
                 </when>
                 <otherwise>
-                    and ci.industry_type = #{productId}
+                    and ci.industry_type in
+                    <foreach collection="productIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
                 </otherwise>
             </choose>
         </where>

+ 15 - 0
zzjs-service/src/main/resources/mapper/product/ProductTypeInfoMapper.xml

@@ -57,4 +57,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where py.id = #{id}
     </select>
 
+
+    <select id="selectAppletProductTypeInfoList" resultType="com.miaxis.product.vo.AppletProductTypeInfoVo">
+        select
+        py.id,
+        py.product_name,
+        py.pid,
+        py.product_describe,
+        py.product_icon ,
+        f.file_url as fileUrl,
+        py.status
+        from product_type_info py
+        LEFT JOIN file_info f on f.file_id = py.product_icon
+    </select>
+
+
 </mapper>