移动系统liao
2025-02-17 557c2711a3e103ebc3d0492344eca9730d5e92b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/***********************************************************************
 *            Project: baifenBinfa
 *        ProjectName: 百分兵法管理系统                               
 *                Web: http://chuanyin.com                     
 *             Author:                                        
 *              Email:                               
 *         CreateTime: 202403/02   
 *        Description: 暂无
 ***********************************************************************/
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.IRepository;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.ViewModels.UI;
 
 
namespace CoreCms.Net.Services
{
    /// <summary>
    /// 商品分类 接口实现
    /// </summary>
    public class CoreCmsGoodsCategoryServices : BaseServices<CoreCmsGoodsCategory>, ICoreCmsGoodsCategoryServices
    {
        private readonly ICoreCmsGoodsCategoryRepository _dal;
        private readonly IUnitOfWork _unitOfWork;
        public CoreCmsGoodsCategoryServices(IUnitOfWork unitOfWork, ICoreCmsGoodsCategoryRepository dal)
        {
            this._dal = dal;
            base.BaseDal = dal;
            _unitOfWork = unitOfWork;
        }
 
 
        #region 实现重写增删改查操作==========================================================
 
        /// <summary>
        /// 重写异步插入方法
        /// </summary>
        /// <param name="entity">实体数据</param>
        /// <returns></returns>
        public async Task<AdminUiCallBack> InsertAsync(CoreCmsGoodsCategory entity)
        {
            return await _dal.InsertAsync(entity);
        }
 
        /// <summary>
        /// 重写异步更新方法方法
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public async Task<AdminUiCallBack> UpdateAsync(CoreCmsGoodsCategory entity)
        {
            return await _dal.UpdateAsync(entity);
        }
 
        /// <summary>
        /// 重写删除指定ID的数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task<AdminUiCallBack> DeleteByIdAsync(object id)
        {
            return await _dal.DeleteByIdAsync(id);
        }
 
        #endregion
 
        #region 获取缓存的所有数据==========================================================
 
        /// <summary>
        /// 获取缓存的所有数据
        /// </summary>
        /// <returns></returns>
        public async Task<List<CoreCmsGoodsCategory>> GetCaChe()
        {
            return await _dal.GetCaChe();
        }
 
        #endregion
 
        #region 判断商品分类下面是否有某一个商品分类
        /// <summary>
        /// 判断商品分类下面是否有某一个商品分类
        /// </summary>
        /// <param name="catParentId"></param>
        /// <param name="catId"></param>
        /// <returns></returns>
        public async Task<bool> IsChild(int catParentId, int catId)
        {
            var list = await _dal.GetCaChe();
            var bl = IsHave(list, catParentId, catId);
            return bl;
        }
        #endregion
 
        #region 判断是否含有子类
        /// <summary>
        /// 判断是否含有子类
        /// </summary>
        /// <param name="list"></param>
        /// <param name="catParentId"></param>
        /// <param name="catId"></param>
        /// <returns></returns>
        public bool IsHave(List<CoreCmsGoodsCategory> list, int catParentId, int catId)
        {
            if (catParentId == catId)
            {
                return true;
            }
            if (!list.Exists(p => p.id == catParentId))
            {
                return false;
            }
            var children = list.Where(p => p.parentId == catParentId).ToList();
            foreach (var item in children)
            {
                if (IsHave(list, item.id, catId))
                {
                    return true;
                }
            }
            return false;
        }
        #endregion
 
    }
}