yumeng 7 місяців тому
батько
коміт
98815b1200

+ 106 - 15
ruixuan-live/src/main/java/com/ruixuan/isc/controller/KwaixiaodianItemGetController.java

@@ -1,20 +1,33 @@
 package com.ruixuan.isc.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.PageInfo;
+import com.ruixuan.common.constant.HttpStatus;
 import com.ruixuan.common.core.controller.BaseController;
+import com.ruixuan.common.core.page.TableDataInfo;
+import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.DateUtils;
+import com.ruixuan.isc.entity.KuaishouAccessToken;
+import com.ruixuan.isc.entity.KuaishouRewardBaseInfo;
+import com.ruixuan.isc.entity.KwaixiaodianItemGet;
+import com.ruixuan.isc.service.IAccessTokenService;
 import com.ruixuan.isc.service.IKwaixiaodianItemGetService;
 import com.ruixuan.isc.service.IKwaixiaodianOrderCursorListService;
+import com.ruixuan.system.service.ISysDeptService;
+import com.ruixuan.system.service.ISysRoleService;
+import com.ruixuan.system.service.ISysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * kwaixiaodian商品详情Controller
@@ -24,12 +37,76 @@ import java.util.List;
 @Api(tags = "Kwaixiaodian")
 @RestController
 @RequestMapping("/kwaixiaodian/item")
+@Slf4j
 public class KwaixiaodianItemGetController extends BaseController {
     @Autowired
     private IKwaixiaodianItemGetService kwaixiaodianItemGetService;
 
     @Autowired
     private IKwaixiaodianOrderCursorListService orderCursorListService;
+    @Autowired
+    private IAccessTokenService accessTokenService;
+    @Autowired
+    private ISysRoleService sysRoleService;
+    @Autowired
+    private ISysDeptService sysDeptService;
+    @Autowired
+    private ISysUserService sysUserService;
+
+    @GetMapping("/list")
+    public TableDataInfo list(Long itemId, String title, Integer itemType, Long userId) {
+        TableDataInfo rspData = new TableDataInfo();
+        try {
+            if (Check.isNull(userId)) {
+                throw new Exception("请传入用户ID");
+            }
+            Map<String, Object> requestMap = new HashMap<>();
+
+            String roleId = sysRoleService.getRoleBYUserId(userId);
+            if ("admin".equals(roleId)) { // 管理员查看所有
+
+            } else if ("industry_admin".equals(roleId)) { // 供应链管理员查看所属公司
+                Long companyId = kwaixiaodianItemGetService.getCompanyId(userId);
+                if (Check.isNull(companyId)) {
+                    throw new Exception("此用户未查询到归属公司");
+                }
+                requestMap.put("companyId", companyId);
+            } else if ("industry_sale_manager".equals(roleId) || "industry_courtship_manager".equals(roleId) || "industry_purchase_manager".equals(roleId)) { // 经理角色查看部门下所有成员数据
+                List<Long> userIds = kwaixiaodianItemGetService.getUserIds(userId);
+                if (Check.isNull(userIds)) {
+                    throw new Exception("此用户未查询到部门成员信息");
+                }
+                requestMap.put("userIds", userIds);
+            } else if ("industry_sale".equals(roleId) || "industry_purchase".equals(roleId) || "industry_courtship".equals(roleId)) { // 销售  采购 招商 查看自己的数据
+                List<Long> userIds = new ArrayList<>();
+                userIds.add(userId);
+                requestMap.put("userIds", userIds);
+            }
+            if (!Check.isNull(itemId)) {
+                requestMap.put("itemId", itemId);
+            }
+            if (!Check.isNull(title)) {
+                requestMap.put("title", title);
+            }
+            if (!Check.isNull(itemType)) {
+                requestMap.put("itemType", itemType);
+            }
+
+
+            startPage();
+            List<KwaixiaodianItemGet> list = kwaixiaodianItemGetService.getItemList(requestMap);
+            rspData.setCode(HttpStatus.SUCCESS);
+            rspData.setMsg("查询成功");
+            rspData.setRows(list);
+            rspData.setTotal(new PageInfo(list).getTotal());
+        } catch (Exception e) {
+            e.printStackTrace();
+            rspData.setCode(HttpStatus.ERROR);
+            rspData.setMsg(e.getMessage());
+        }
+        return rspData;
+    }
+
 
     /**
      * 获取商品详情(open.item.get)
@@ -37,16 +114,35 @@ public class KwaixiaodianItemGetController extends BaseController {
      */
     @GetMapping("/querykwaiItmInfo")
     @ApiOperation(value = "获kwai商品详情")
-    public void querykwaiItmInfo(
-            @ApiParam("商品ID") @RequestParam(value = "kwaiItemId", required = false) Long kwaiItemId,
-            @ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId,
-            @ApiParam("用户ID") @RequestParam(value = "userId", required = false) String userId,
-            @ApiParam("用户") @RequestParam(value = "userName", required = false) String userName) {
+    public JSONObject querykwaiItmInfo(@ApiParam("商品ID") @RequestParam(value = "itemId", required = false) Long itemId, @ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId, @ApiParam("用户ID") @RequestParam(value = "userId", required = false) Long userId, @ApiParam("用户") @RequestParam(value = "userName", required = false) String userName, @ApiParam("用户") @RequestParam(value = "itemType", required = false) Integer itemType) {
+
+        JSONObject returnJson = new JSONObject();
         try {
-            kwaixiaodianItemGetService.querykwaiItmInfo(kwaiItemId, shopId, userId, userName);
+            KuaishouAccessToken token = accessTokenService.getKWaiAccessToken(shopId);
+            if (Check.isNull(token)) {
+                throw new Exception("未获取到授权信息,请联系管理员");
+            }
+            Long companyId = token.getCompanyId();
+            Integer count = kwaixiaodianItemGetService.checkItem(companyId, itemId);
+            if (count >= 1) {
+                throw new Exception("此商品已绑定");
+            }
+
+            JSONObject jsonObject = kwaixiaodianItemGetService.querykwaiItmInfo(token, itemId, shopId, userId, userName, itemType);
+            if (jsonObject.getBoolean("success")) {
+                returnJson.put("code", 200);
+                returnJson.put("message", "新增商品成功");
+            } else {
+                returnJson.put("code", 500);
+                returnJson.put("message", jsonObject.getString("message"));
+            }
+
         } catch (Exception e) {
             e.printStackTrace();
+            returnJson.put("code", 500);
+            returnJson.put("message", e.getMessage());
         }
+        return returnJson;
     }
 
     /**
@@ -55,11 +151,7 @@ public class KwaixiaodianItemGetController extends BaseController {
      */
     @GetMapping("/querykwaiOrderList")
     @ApiOperation(value = "获kwai订单列表")
-    public void querykwaiOrderList(
-            @ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId
-            , @ApiParam("1按创建时间查找 2按更新时间查找") @RequestParam(value = "queryType", required = false) Integer queryType
-            , @ApiParam("开始日期") @RequestParam(value = "beginDate", required = false) String beginDate
-            , @ApiParam("结束日期(间隔不大于7天)") @RequestParam(value = "endDate", required = false) String endDate
+    public void querykwaiOrderList(@ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId, @ApiParam("1按创建时间查找 2按更新时间查找") @RequestParam(value = "queryType", required = false) Integer queryType, @ApiParam("开始日期") @RequestParam(value = "beginDate", required = false) String beginDate, @ApiParam("结束日期(间隔不大于7天)") @RequestParam(value = "endDate", required = false) String endDate
 
     ) {
         try {
@@ -71,8 +163,7 @@ public class KwaixiaodianItemGetController extends BaseController {
 
     @GetMapping("/queryNowdayKWaiOrderList")
     @ApiOperation(value = "获当天kwai订单")
-    public void queryNowdayKWaiOrderList(
-            @ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId) {
+    public void queryNowdayKWaiOrderList(@ApiParam("店铺ID") @RequestParam(value = "shopId", required = false) String shopId) {
         try {
             orderCursorListService.queryNowdayKWaiOrderList(shopId.trim(), "");
         } catch (Exception e) {

+ 5 - 2
ruixuan-live/src/main/java/com/ruixuan/isc/entity/KwaixiaodianItemGet.java

@@ -14,12 +14,14 @@ public class KwaixiaodianItemGet {
     /**
      * 商品ID
      */
+    private Long id;
     private Long itemId;
+    private Integer itemType;
 
     /**
      * 用户ID
      */
-    private String userId;
+    private Long userId;
 
     /**
      * 用户名称
@@ -39,7 +41,8 @@ public class KwaixiaodianItemGet {
     /**
      * 公司ID
      */
-    private Long companyId;
+    private Long
+            companyId;
 
     /**
      * 公司名称

+ 7 - 3
ruixuan-live/src/main/java/com/ruixuan/isc/mapper/KwaixiaodianItemGetMapper.java

@@ -5,6 +5,7 @@ import com.ruixuan.isc.entity.KwaixiaodianItemGetSku;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * kwaixiaodian商品详情Mapper接口
@@ -12,11 +13,14 @@ import java.util.List;
  * @author ruoyi
  * @date 2024-10-28
  */
-public interface KwaixiaodianItemGetMapper
-{
+public interface KwaixiaodianItemGetMapper {
     void replaceBatchKWaixiaodianItems(@Param("list") List<KwaixiaodianItemGet> list);
 
     void replaceKWaixiaodianItems(@Param("itemGet") KwaixiaodianItemGet itemGet);
 
-    void replaceBatchKWaixiaodianItemSku(@Param("list")  List<KwaixiaodianItemGetSku> list);
+    void replaceBatchKWaixiaodianItemSku(@Param("list") List<KwaixiaodianItemGetSku> list);
+
+    Integer checkItem(@Param("companyId") Long companyId, @Param("itemId") Long itemId);
+
+    List<KwaixiaodianItemGet> getItemList(Map<String, Object> requestMap);
 }

+ 16 - 3
ruixuan-live/src/main/java/com/ruixuan/isc/service/IKwaixiaodianItemGetService.java

@@ -1,8 +1,13 @@
 package com.ruixuan.isc.service;
 
+import com.alibaba.fastjson.JSONObject;
+import com.ruixuan.isc.entity.KuaishouAccessToken;
+import com.ruixuan.isc.entity.KuaishouRewardBaseInfo;
 import com.ruixuan.isc.entity.KwaixiaodianItemGet;
+import io.swagger.models.auth.In;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * kwaixiaodian商品详情Service接口
@@ -10,8 +15,16 @@ import java.util.List;
  * @author ruoyi
  * @date 2024-10-28
  */
-public interface IKwaixiaodianItemGetService
-{
-    void querykwaiItmInfo(Long kwaiItemId, String shopId, String userId, String userName);
+public interface IKwaixiaodianItemGetService {
+    JSONObject querykwaiItmInfo(KuaishouAccessToken token, Long kwaiItemId, String shopId, Long userId, String userName, Integer itemType);
 
+    Integer checkItem(Long companyId, Long itemId);
+
+
+
+    Long getCompanyId(Long userId);
+
+    List<Long> getUserIds(Long userId);
+
+    List<KwaixiaodianItemGet> getItemList(Map<String, Object> requestMap);
 }

+ 58 - 7
ruixuan-live/src/main/java/com/ruixuan/isc/service/impl/KwaixiaodianItemGetServiceImpl.java

@@ -11,17 +11,23 @@ import com.ruixuan.common.utils.Check;
 import com.ruixuan.common.utils.DateUtils;
 import com.ruixuan.isc.constants.KuaiShouConstants;
 import com.ruixuan.isc.entity.KuaishouAccessToken;
+import com.ruixuan.isc.entity.KuaishouRewardBaseInfo;
 import com.ruixuan.isc.entity.KwaixiaodianItemGet;
 import com.ruixuan.isc.entity.KwaixiaodianItemGetSku;
 import com.ruixuan.isc.mapper.KwaixiaodianItemGetMapper;
 import com.ruixuan.isc.service.IAccessTokenService;
 import com.ruixuan.isc.service.IKwaixiaodianItemGetService;
+import com.ruixuan.system.service.ISysDeptService;
+import com.ruixuan.system.service.ISysRoleService;
+import com.ruixuan.system.service.ISysUserService;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * kwaixiaodian商品详情Service业务层处理
@@ -34,19 +40,19 @@ public class KwaixiaodianItemGetServiceImpl implements IKwaixiaodianItemGetServi
     @Autowired
     private KwaixiaodianItemGetMapper mapper;
     @Autowired
-    private IAccessTokenService accessTokenService;
+    private ISysDeptService sysDeptService;
+    @Autowired
+    private ISysUserService sysUserService;
 
     /**
      * 添加数据 replace
      * 表:kwaixiaodian_item_get
      */
     @Override
-    public void querykwaiItmInfo(Long kwaiItemId, String shopId, String userId, String userName) {
+    public JSONObject querykwaiItmInfo(KuaishouAccessToken token, Long kwaiItemId, String shopId, Long userId, String userName, Integer itemType) {
+        JSONObject returnJson = new JSONObject();
         try {
-            KuaishouAccessToken token = accessTokenService.getKWaiAccessToken(shopId);
-            if (Check.isNull(token)) {
-                log.error("----kwaixiaodian获取商品详情,kwaiItemId:{} 没有token信息", kwaiItemId);
-            }
+
             AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(KuaiShouConstants.KFX_URL, token.getAppKey(), token.getSignSecret());
             OpenItemGetRequest request = new OpenItemGetRequest();
             request.setAccessToken(token.getAccessToken());
@@ -59,12 +65,12 @@ public class KwaixiaodianItemGetServiceImpl implements IKwaixiaodianItemGetServi
                 e.printStackTrace();
             }
             JSONObject jsonObject = JSONObject.parseObject(GsonUtils.toJSON(response));
-//        System.out.println(GsonUtils.toJSON(response));
             String code = jsonObject.getString("code");
             if ("1".equals(code)) {
                 JSONObject data = jsonObject.getJSONObject("data");
                 KwaixiaodianItemGet itemGet = JSONObject.parseObject(data.toJSONString(), KwaixiaodianItemGet.class);
                 itemGet.setUserId(userId);
+                itemGet.setItemType(itemType);
                 itemGet.setUserName(userName);
                 itemGet.setShopId(shopId);
                 itemGet.setShopName(token.getShopName());
@@ -84,16 +90,61 @@ public class KwaixiaodianItemGetServiceImpl implements IKwaixiaodianItemGetServi
 
                 mapper.replaceKWaixiaodianItems(itemGet);
                 replaceItemGetSku(data.getJSONArray("skuInfos"));
+                returnJson.put("success", true);
             } else {
+                returnJson.put("success", false);
+                returnJson.put("message", jsonObject.getString("error_msg"));
                 log.error("===kwaixiaodian获取商品详情(open.item.get)失败,kwaiItemId:{},信息:{}", kwaiItemId, jsonObject.getString("error_msg"));
 
             }
         } catch (Exception e) {
             log.error("===kwaixiaodian获取商品详情异常 querykwaiItmInfo");
             e.printStackTrace();
+            returnJson.put("success", false);
+            returnJson.put("message", e.getMessage());
+        }
+        return returnJson;
+    }
+
+    @Override
+    public Integer checkItem(Long companyId, Long itemId) {
+        return mapper.checkItem(companyId, itemId);
+
+    }
+
+
+    @Override
+    public Long getCompanyId(Long userId) {
+        Long deptId = sysDeptService.getDeptIdByUserId(userId);
+        String ancestors = sysDeptService.getCompanyId(deptId);
+
+        Long companyId = null;
+        if (!Check.isNull(ancestors)) {
+            String[] split = ancestors.split(",");
+            if (split.length == 1) {
+                companyId = deptId;
+            } else if (split.length > 1) {
+                companyId = Long.valueOf(split[1]);
+            } else {
+                companyId = 0L;
+            }
         }
+        return companyId;
     }
 
+    @Override
+    public List<Long> getUserIds(Long userId) {
+        Long deptId = sysDeptService.getDeptIdByUserId(userId);
+        List<Long> userIds = sysDeptService.getDeptUserListByDeptId(deptId);
+        return userIds;
+    }
+
+    @Override
+    public List<KwaixiaodianItemGet> getItemList(Map<String, Object> requestMap) {
+        return mapper.getItemList(requestMap);
+    }
+
+
     private void replaceItemGetSku(JSONArray skuInfos) {
         try {
             if (Check.isNull(skuInfos)) {

+ 82 - 0
ruixuan-live/src/main/resources/mapper/isc/KwaixiaodianItemGetMapper.xml

@@ -269,6 +269,88 @@
             )
         </foreach>
     </insert>
+    <select id="checkItem" resultType="java.lang.Integer">
+        SELECT COUNT(1)
+        FROM kwaixiaodian_item_get
+        WHERE company_id = #{companyId}
+          AND item_id = #{item_Id}
+    </select>
+    <select id="getItemList" resultType="com.ruixuan.isc.entity.KwaixiaodianItemGet">
+        SELECT id,
+        item_id,
+        item_type,
+        user_id,
+        user_name,
+        shop_id,
+        shop_name,
+        company_id,
+        company_name,
+        leader_name,
+        rel_item_id,
+        category_id,
+        category_name,
+        parent_category_id,
+        parent_category_name,
+        root_category_Id,
+        root_category_name,
+        title,
+        details,
+        image_urls,
+        detail_image_urls,
+        service_rule,
+        audit_status,
+        audit_reason,
+        created_time_ms,
+        created_time,
+        update_time_ms,
+        update_time,
+        on_offline_status,
+        parent_category_list,
+        item_prop_values,
+        express_template_id,
+        purchase_limit,
+        limit_count,
+        link_url,
+        time_of_sale,
+        item_remark,
+        duplication_status,
+        duplication_reason,
+        multiple_stock,
+        poi_ids,
+        white_base_image_url,
+        transparent_image_url,
+        short_title,
+        selling_point,
+        instructions,
+        contract_phone,
+        offline_reason,
+        item_qualification,
+        spu_id,
+        data_create_time
+        from kwaixiaodian_item_get
+        where 1 = 1
+        <if test="companyId != null and companyId != ''">
+            and company_id = #{companyId}
+        </if>
+        <if test='userIds != null and userIds.size() > 0'>
+            AND user_id in
+            <foreach collection="userIds" item="item" separator=","
+                     open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="itemId != null and itemId != ''">
+            and item_id = #{itemId}
+        </if>
+        <if test="itemType != null and itemType != ''">
+            and item_type = #{itemType}
+        </if>
+        <if test="title != null and title != ''">
+            and title like concat('%', #{title}, '%')
+        </if>
+
+
+    </select>
 
 
 </mapper>

+ 2 - 0
ruixuan-system/src/main/java/com/ruixuan/system/mapper/SysDeptMapper.java

@@ -123,4 +123,6 @@ public interface SysDeptMapper
     List<Long> getDeptUserListByDeptId(Long deptId);
 
     List<JSONObject> getUserListByDeptId(@Param("deptId") Long deptId);
+
+    String getCompanyId(Long deptId);
 }

+ 2 - 0
ruixuan-system/src/main/java/com/ruixuan/system/service/ISysDeptService.java

@@ -137,4 +137,6 @@ public interface ISysDeptService {
     public int deleteDeptById(Long deptId);
 
     List<JSONObject> getUserListByDeptId(Long deptId);
+
+    String getCompanyId(Long deptId);
 }

+ 5 - 0
ruixuan-system/src/main/java/com/ruixuan/system/service/impl/SysDeptServiceImpl.java

@@ -301,6 +301,11 @@ public class SysDeptServiceImpl implements ISysDeptService
         return deptMapper.getUserListByDeptId(deptId);
     }
 
+    @Override
+    public String getCompanyId(Long deptId) {
+        return deptMapper.getCompanyId(deptId);
+    }
+
     /**
      * 递归列表
      */

+ 3 - 0
ruixuan-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -108,6 +108,9 @@
         group by t3.user_id
         order by t3.create_time asc
     </select>
+    <select id="getCompanyId" resultType="java.lang.String" parameterType="java.lang.Long">
+        select  ancestors from sys_dept where dept_id =  #{deptId}
+    </select>
 
     <insert id="insertDept" parameterType="SysDept">
         insert into sys_dept(