Commit 6af9ac34 authored by liudong1993's avatar liudong1993

活动代码

parent d1a0cd8b
using VT.FW.DB;
using Mall.Common.Enum.Goods;
using Mall.Common.Enum.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Product
{
/// <summary>
/// 活动表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 活动名称
/// </summary>
public string ActivityName
{
get;
set;
}
/// <summary>
/// 活动参加层级 0表示 全部
/// </summary>
public int Tier { get; set; }
/// <summary>
/// 类型 1订单数量 2订单金额 3商品数量
/// </summary>
public int Type { get; set; }
/// <summary>
/// 订单数量
/// </summary>
public int OrderNum { get; set; }
/// <summary>
/// 订单金额
/// </summary>
public decimal OrderMoney { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int GoodsNum { get; set; }
/// <summary>
/// 范围类型 1分类 2指定商品
/// </summary>
public int RangeType { get; set; }
/// <summary>
/// 范围Ids 英文逗号分隔
/// </summary>
public string RangeIds { get; set; }
/// <summary>
/// 领取方式 1线上 2线下
/// </summary>
public int Way { get; set; }
/// <summary>
/// 验证码长度
/// </summary>
public int CodeLength { get; set; }
/// <summary>
/// 奖品名称
/// </summary>
public string PrizeName { get; set; }
/// <summary>
/// 奖品图片
/// </summary>
public string PrizeImage { get; set; }
/// <summary>
/// 活动开始时间
/// </summary>
public DateTime StartTime { get; set; }
/// <summary>
/// 活动结束时间
/// </summary>
public DateTime EndTime { get; set; }
/// <summary>
/// 封面图
/// </summary>
public string CoverImage { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 兑换期限
/// </summary>
public DateTime ReceiveTime { get; set; }
/// <summary>
/// 是否启用 1是 2否
/// </summary>
public int Enable { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public int Status
{
get;
set;
}
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
}
}
using VT.FW.DB;
using Mall.Common.Enum.Goods;
using Mall.Common.Enum.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Mall.Model.Entity.Product
{
/// <summary>
/// 活动奖品领取表实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Get
{
/// <summary>
/// Id
/// </summary>
public int Id
{
get;
set;
}
/// <summary>
/// 活动id
/// </summary>
public int ActivityId { get; set; }
/// <summary>
/// 用户id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 验证码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 满足的订单ids
/// </summary>
public string OrderIds { get; set; }
/// <summary>
/// 状态 1未兑换 2已兑换 3已过期
/// </summary>
public int State { get; set; }
/// <summary>
/// 商户号
/// </summary>
public int TenantId
{
get;
set;
}
/// <summary>
/// 小程序id
/// </summary>
public int MallBaseId
{
get;
set;
}
/// <summary>
/// CreateDate
/// </summary>
public DateTime? CreateDate
{
get;
set;
}
/// <summary>
/// UpdateDate
/// </summary>
public DateTime? UpdateDate
{
get;
set;
}
}
}
......@@ -330,5 +330,15 @@ namespace Mall.Model.Entity.Product
/// 购买抵扣佣金金额
/// </summary>
public decimal? DeductionCommission { get; set; }
/// <summary>
/// 用户id,所有的父级,英文逗号分隔
/// </summary>
public string UserTree { get; set; }
/// <summary>
/// 版本来源 0默认商城 1教育
/// </summary>
public int? VersionSource { get; set; }
}
}
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 活动扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Extend : RB_Goods_Activity
{
/// <summary>
/// 分类/商品信息
/// </summary>
public object RangeList = new List<object>();
/// <summary>
/// 活动查询状态 1进行中 2已结束
/// </summary>
public int QActivityState { get; set; }
/// <summary>
/// 商品数量
/// </summary>
public int Number { get; set; }
/// <summary>
/// 商品价格
/// </summary>
public decimal Final_Price { get; set; }
/// <summary>
/// 订单总数量
/// </summary>
public int OrderTNum { get; set; }
/// <summary>
/// 订单id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 用户所有上级
/// </summary>
public string UserTree { get; set; }
/// <summary>
/// 1级用户
/// </summary>
public int OneUserId { get; set; }
/// <summary>
/// 二级用户
/// </summary>
public int TwoUserId { get; set; }
/// <summary>
/// 三级用户
/// </summary>
public int ThreeUserId { get; set; }
/// <summary>
/// 是否已完成 1是 2否
/// </summary>
public int IsFinish { get; set; }
/// <summary>
/// 下单订单时间
/// </summary>
public string OrderTime { get; set; }
}
}
using VT.FW.DB;
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
namespace Mall.Model.Extend.Product
{
/// <summary>
/// 活动奖品领取扩展实体
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Goods_Activity_Get_Extend : RB_Goods_Activity_Get
{
/// <summary>
/// 活动ids
/// </summary>
public string ActivityIds { get; set; }
/// <summary>
/// 用户ids
/// </summary>
public string UserIds { get; set; }
/// <summary>
/// 活动名称
/// </summary>
public string ActivityName { get; set; }
/// <summary>
/// 封面图
/// </summary>
public string CoverImage { get; set; }
/// <summary>
/// 奖品名称
/// </summary>
public string PrizeName { get; set; }
/// <summary>
/// 奖品图片
/// </summary>
public string PrizeImage { get; set; }
/// <summary>
/// 截止兑换日期
/// </summary>
public DateTime ReceiveTime { get; set; }
/// <summary>
/// 领取方式
/// </summary>
public int Way { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 头像
/// </summary>
public string Photo { get; set; }
/// <summary>
/// 订单列表
/// </summary>
public object OrderList { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Mall.Model.Extend.Product;
using Mall.Repository.BaseSetUp;
using Mall.Repository.Product;
using Mall.Repository.User;
using Newtonsoft.Json;
using VT.FW.DB;
namespace Mall.Module.Product
{
/// <summary>
/// 活动处理层
/// </summary>
public class ActivityModule
{
/// <summary>
/// 活动
/// </summary>
private readonly RB_Goods_ActivityRepository goods_ActivityRepository = new RB_Goods_ActivityRepository();
/// <summary>
/// 活动奖品领取
/// </summary>
private readonly RB_Goods_Activity_GetRepository goods_Activity_GetRepository = new RB_Goods_Activity_GetRepository();
/// <summary>
/// 商品分类
/// </summary>
private readonly RB_Product_CategoryRepository product_CategoryRepository = new RB_Product_CategoryRepository();
/// <summary>
/// 商品
/// </summary>
private readonly RB_GoodsRepository goodsRepository = new RB_GoodsRepository();
/// <summary>
/// 订单
/// </summary>
private readonly RB_Goods_OrderRepository goods_OrderRepository = new RB_Goods_OrderRepository();
/// <summary>
/// 小程序基础
/// </summary>
private readonly RB_MallBaseRepository mallBaseRepository = new RB_MallBaseRepository();
/// <summary>
/// 获取活动分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetGoodsActivityPageList(int pageIndex, int pageSize, out long count, RB_Goods_Activity_Extend demodel)
{
var list = goods_ActivityRepository.GetPageList(pageIndex, pageSize, out count, demodel);
if (list.Any()) {
string CategoryIds = string.Join(",", list.Where(x => x.RangeType == 1).Select(x => x.RangeIds));
string GoodsIds = string.Join(",", list.Where(x => x.RangeType == 2).Select(x => x.RangeIds));
List<RB_Product_Category_Extend> categoryList = new List<RB_Product_Category_Extend>();
if (!string.IsNullOrEmpty(CategoryIds)) {
categoryList = product_CategoryRepository.GetList(new RB_Product_Category_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, CategoryIds = CategoryIds });
}
List<RB_Goods_Extend> goodsList = new List<RB_Goods_Extend>();
if (!string.IsNullOrEmpty(GoodsIds)) {
goodsList = goodsRepository.GetSingleList(new RB_Goods_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, GoodsIds = GoodsIds });
}
foreach (var item in list) {
if (item.RangeType == 1)
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + item.RangeIds + "]");
item.RangeList = categoryList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name,
Image = ""
});
}
else {
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + item.RangeIds + "]");
item.RangeList = goodsList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name,
Image = x.CarouselImage != "" && x.CarouselImage != "[]" ? JsonConvert.DeserializeObject<List<string>>(x.CarouselImage)[0] : ""
});
}
}
}
return list;
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <param name="activityId"></param>
/// <returns></returns>
public RB_Goods_Activity_Extend GetGoodsActivityInfo(int activityId)
{
var model = goods_ActivityRepository.GetEntity<RB_Goods_Activity_Extend>(activityId);
if (model != null) {
string CategoryIds = model.RangeType == 1 ? model.RangeIds : "";
string GoodsIds = model.RangeType == 2 ? model.RangeIds : "";
List<RB_Product_Category_Extend> categoryList = new List<RB_Product_Category_Extend>();
if (!string.IsNullOrEmpty(CategoryIds))
{
categoryList = product_CategoryRepository.GetList(new RB_Product_Category_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, CategoryIds = CategoryIds });
}
List<RB_Goods_Extend> goodsList = new List<RB_Goods_Extend>();
if (!string.IsNullOrEmpty(GoodsIds))
{
goodsList = goodsRepository.GetSingleList(new RB_Goods_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, GoodsIds = GoodsIds });
}
if (model.RangeType == 1)
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + model.RangeIds + "]");
model.RangeList = categoryList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name,
Image = ""
});
}
else
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + model.RangeIds + "]");
model.RangeList = goodsList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name,
Image = x.CarouselImage != "" && x.CarouselImage != "[]" ? JsonConvert.DeserializeObject<List<string>>(x.CarouselImage)[0] : ""
});
}
}
return model ?? new RB_Goods_Activity_Extend();
}
/// <summary>
/// 获取活动验证码
/// </summary>
/// <param name="qitem"></param>
/// <returns></returns>
private string GetActivityCode(RB_Goods_Activity_Extend qitem)
{
int min = Convert.ToInt32("1111111111".Substring(0, qitem.CodeLength - 1));
int max = Convert.ToInt32("9999999999".Substring(0, qitem.CodeLength - 1));
Random rd = new Random();
string code = rd.Next(min, max).ToString();
return code;
}
/// <summary>
/// 获取小程序端 活动列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetGoodsActivityPageListForApplet(int pageIndex, int pageSize, out long count, RB_Goods_Activity_Extend demodel, int UserId)
{
var list = goods_ActivityRepository.GetPageList(pageIndex, pageSize, out count, demodel);
if (list.Any())
{
string CategoryIds = string.Join(",", list.Where(x => x.RangeType == 1).Select(x => x.RangeIds));
string GoodsIds = string.Join(",", list.Where(x => x.RangeType == 2).Select(x => x.RangeIds));
List<RB_Product_Category_Extend> categoryList = new List<RB_Product_Category_Extend>();
if (!string.IsNullOrEmpty(CategoryIds))
{
categoryList = product_CategoryRepository.GetList(new RB_Product_Category_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, CategoryIds = CategoryIds });
}
List<RB_Goods_Extend> goodsList = new List<RB_Goods_Extend>();
if (!string.IsNullOrEmpty(GoodsIds))
{
goodsList = goodsRepository.GetSingleListForGoodsId(new RB_Goods_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, GoodsIds = GoodsIds });
}
//查询中奖活动
var myPrizeList = goods_Activity_GetRepository.GetList(new RB_Goods_Activity_Get_Extend() { TenantId = demodel.TenantId, MallBaseId = demodel.MallBaseId, ActivityIds = string.Join(",", list.Select(x => x.Id)), UserId = UserId });
int AfterTime = 0;
if (demodel.QActivityState == 1) {
var mallModel = mallBaseRepository.GetEntity(demodel.MallBaseId);
if (mallModel != null && mallModel.AfterTime > 0)
{
AfterTime = mallModel.AfterTime;
}
}
foreach (var item in list)
{
if (item.RangeType == 1)
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + item.RangeIds + "]");
item.RangeList = categoryList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name
});
}
else
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + item.RangeIds + "]");
item.RangeList = goodsList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name
});
}
var pmodel = myPrizeList.Where(x => x.ActivityId == item.Id).FirstOrDefault();
if (pmodel != null)
{
item.IsFinish = 1;
}
else
{
item.IsFinish = 2;
if (demodel.QActivityState == 1)
{
//查询分类/商品下
var clist = goods_OrderRepository.GetGoodsNumForCategoryOrGoods(item, UserId, AfterTime);
if (item.Tier == 1 || item.Tier == 2 || item.Tier == 3)
{
//如果属于有限定层级 需要先遍历 查询出对应的层级人员
foreach (var qitem in clist)
{
List<int> UserIdList = JsonConvert.DeserializeObject<List<int>>("[" + qitem.UserTree + "]");
qitem.OneUserId = UserIdList[0];
if (UserIdList.Count() > 1)
{
qitem.TwoUserId = UserIdList[1];
}
if (UserIdList.Count() > 2)
{
qitem.TwoUserId = UserIdList[2];
}
}
if (item.Tier == 1)
{
clist = clist.Where(x => x.OneUserId == UserId).ToList();
}
else if (item.Tier == 2)
{
clist = clist.Where(x => x.OneUserId == UserId || x.TwoUserId == UserId).ToList();
}
else
{
clist = clist.Where(x => x.OneUserId == UserId || x.TwoUserId == UserId || x.ThreeUserId == UserId).ToList();
}
}
if (item.Type == 1)
{
//订单数量
item.OrderTNum = clist.Select(x => x.OrderId).Distinct().Count();
}
else if (item.Type == 2)
{
//订单金额
item.Final_Price = clist.Sum(x => x.Final_Price);
}
else
{
//商品数量
item.Number = clist.Sum(x => x.Number);
}
}
}
}
}
return list;
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <param name="activityId"></param>
/// <param name="userId"></param>
/// <returns></returns>
public RB_Goods_Activity_Extend GetGoosdActivityInfo(int activityId, int userId)
{
var model = goods_ActivityRepository.GetEntity<RB_Goods_Activity_Extend>(activityId);
if (model != null)
{
string CategoryIds = model.RangeType == 1 ? model.RangeIds : "";
string GoodsIds = model.RangeType == 2 ? model.RangeIds : "";
List<RB_Product_Category_Extend> categoryList = new List<RB_Product_Category_Extend>();
if (!string.IsNullOrEmpty(CategoryIds))
{
categoryList = product_CategoryRepository.GetList(new RB_Product_Category_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, CategoryIds = CategoryIds });
}
List<RB_Goods_Extend> goodsList = new List<RB_Goods_Extend>();
if (!string.IsNullOrEmpty(GoodsIds))
{
goodsList = goodsRepository.GetSingleListForGoodsId(new RB_Goods_Extend() { TenantId = model.TenantId, MallBaseId = model.MallBaseId, GoodsIds = GoodsIds });
}
if (model.RangeType == 1)
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + model.RangeIds + "]");
model.RangeList = categoryList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name
});
}
else
{
List<int> RangeIdList = JsonConvert.DeserializeObject<List<int>>("[" + model.RangeIds + "]");
model.RangeList = goodsList.Where(x => RangeIdList.Contains(x.Id)).Select(x => new
{
x.Id,
x.Name
});
}
return model;
}
else
{
return new RB_Goods_Activity_Extend();
}
}
/// <summary>
/// 新增修改活动
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public bool SetGoodsActivityInfo(RB_Goods_Activity_Extend demodel)
{
if (demodel.Id > 0)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Goods_Activity_Extend.ActivityName),demodel.ActivityName},
{ nameof(RB_Goods_Activity_Extend.Tier),demodel.Tier},
{ nameof(RB_Goods_Activity_Extend.Type),demodel.Type},
{ nameof(RB_Goods_Activity_Extend.OrderNum),demodel.OrderNum},
{ nameof(RB_Goods_Activity_Extend.OrderMoney),demodel.OrderMoney},
{ nameof(RB_Goods_Activity_Extend.RangeType),demodel.RangeType},
{ nameof(RB_Goods_Activity_Extend.RangeIds),demodel.RangeIds},
{ nameof(RB_Goods_Activity_Extend.Way),demodel.Way},
{ nameof(RB_Goods_Activity_Extend.CodeLength),demodel.CodeLength},
{ nameof(RB_Goods_Activity_Extend.PrizeName),demodel.PrizeName},
{ nameof(RB_Goods_Activity_Extend.PrizeImage),demodel.PrizeImage},
{ nameof(RB_Goods_Activity_Extend.StartTime),demodel.StartTime},
{ nameof(RB_Goods_Activity_Extend.EndTime),demodel.EndTime},
{ nameof(RB_Goods_Activity_Extend.CoverImage),demodel.CoverImage},
{ nameof(RB_Goods_Activity_Extend.Description),demodel.Description},
{ nameof(RB_Goods_Activity_Extend.ReceiveTime),demodel.ReceiveTime},
{ nameof(RB_Goods_Activity_Extend.UpdateDate),demodel.UpdateDate},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName =nameof(RB_Goods_Activity_Extend.Id),
FiledValue=demodel.Id,
OperatorEnum=OperatorEnum.Equal
}
};
return goods_ActivityRepository.Update(keyValues, wheres);
}
else {
return goods_ActivityRepository.Insert(demodel) > 0;
}
}
/// <summary>
/// 获取活动中奖人员分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetGoodsActivityGetUserPageList(int pageIndex, int pageSize, out long count, RB_Goods_Activity_Get_Extend demodel)
{
var list = goods_Activity_GetRepository.GetPageList(pageIndex, pageSize, out count, demodel);
if (list.Any()) {
string OrderIds = string.Join(",", list.Select(x => x.OrderIds));
var orderList = goods_OrderRepository.GetOrderList(new RB_Goods_Order_Extend() { OrderIds = OrderIds });
foreach (var item in list) {
List<int> OrderIdList = JsonConvert.DeserializeObject<List<int>>("[" + item.OrderIds + "]");
item.OrderList = orderList.Where(x => OrderIdList.Contains(x.OrderId)).Select(x => new
{
x.OrderId,
x.OrderNo
});
if (item.State == 1 && item.ReceiveTime < DateTime.Now)
{
item.State = 3;//已过期了
}
}
}
return list;
}
/// <summary>
/// 设置活动状态
/// </summary>
/// <param name="activityId"></param>
/// <param name="type"></param>
/// <returns></returns>
public string SetGoodsActivityState(int activityId, int type)
{
var model = goods_ActivityRepository.GetEntity(activityId);
if (model == null) { return "活动不存在"; }
if (model.Status == 1) { return "已删除活动,无法操作"; }
Dictionary<string, object> keyValues = new Dictionary<string, object>() { };
if (type == 1)
{
keyValues.Add(nameof(RB_Goods_Activity_Extend.Enable), 1);
}
else if (type == 2)
{
keyValues.Add(nameof(RB_Goods_Activity_Extend.Enable), 2);
}
else {
keyValues.Add(nameof(RB_Goods_Activity_Extend.Status), 1);
}
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName =nameof(RB_Goods_Activity_Extend.Id),
FiledValue=activityId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = goods_ActivityRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员";
}
/// <summary>
/// 设置中奖状态
/// </summary>
/// <param name="prizeId"></param>
/// <param name="type"></param>
/// <returns></returns>
public string SetGoodsActivityUserState(int prizeId, int type)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() { };
if (type == 1)
{
keyValues.Add(nameof(RB_Goods_Activity_Get_Extend.State), 2);
}
else
{
keyValues.Add(nameof(RB_Goods_Activity_Get_Extend.State), 3);
}
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName =nameof(RB_Goods_Activity_Get_Extend.Id),
FiledValue=prizeId,
OperatorEnum=OperatorEnum.Equal
}
};
bool flag = goods_Activity_GetRepository.Update(keyValues, wheres);
return flag ? "" : "出错了,请联系管理员";
}
/// <summary>
/// 获取得的奖品信息
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetGoodsMyActivityPrizeList(int pageIndex, int pageSize, out long count, RB_Goods_Activity_Get_Extend demodel)
{
var list = goods_Activity_GetRepository.GetPageList(pageIndex, pageSize, out count, demodel);
foreach (var item in list) {
if (item.State == 1 && item.ReceiveTime < DateTime.Now) {
item.State = 3;//已过期了
}
}
return list;
}
}
}
......@@ -276,6 +276,10 @@ namespace Mall.Module.Product
/// 财务单据
/// </summary>
private readonly RB_FinanceRepository financeRepository = new RB_FinanceRepository();
/// <summary>
/// 活动
/// </summary>
private readonly RB_Goods_ActivityRepository goods_ActivityRepository = new RB_Goods_ActivityRepository();
/// <summary>
/// 微店返佣
......@@ -928,6 +932,7 @@ namespace Mall.Module.Product
model.OrderId,
model.OrderNo,
model.OrderStatus,
model.VersionSource,
OrderStatusName = model.OrderStatus.GetEnumName(),
CreateDate = model.CreateDate.HasValue ? model.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CancelTime = model.CancelTime.HasValue ? model.CancelTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
......@@ -4001,6 +4006,16 @@ namespace Mall.Module.Product
demodel.PaymentWay = OrderPaymentTypeEnum.OnlinePayment;//先默认在线支付
demodel.Remark ??= "";
demodel.ApplyForCancelStatus ??= 0;
demodel.VersionSource ??= 0;//默认商城
if (demodel.VersionSource == 1) {
//教育端下单 初始化参数
demodel.PaymentWay = OrderPaymentTypeEnum.OfflinePay;
demodel.OrderStatus = OrderStatusEnum.Completed;
demodel.PaymentTime = DateTime.Now;
demodel.DeliveryTime = DateTime.Now;
demodel.ReceivingTime = DateTime.Now;
demodel.FinishTime = DateTime.Now;
}
int OrderId = goods_OrderRepository.Insert(demodel, trans);
if (OrderId > 0)
{
......@@ -4146,6 +4161,8 @@ namespace Mall.Module.Product
});
}
goods_OrderRepository.DBSession.Commit();
//任务执行 订单记录当前用户的所有上级
Task.Run(() => SaveOrderUserAllParent(demodel.UserId ?? 0, OrderId));
return ApiResult.Success("", new { OrderId });
}
catch (Exception ex)
......@@ -4156,6 +4173,38 @@ namespace Mall.Module.Product
}
}
/// <summary>
/// 订单记录当前用户的所有上级
/// </summary>
/// <param name="UserId"></param>
/// <param name="OrderId"></param>
/// <returns></returns>
public bool SaveOrderUserAllParent(int UserId,int OrderId) {
if (OrderId <= 0 || UserId <= 0) {
return false;
}
try
{
string parentIds = member_UserRepository.GetMemberParentIdStr(UserId);
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Goods_Order_Extend.UserTree),parentIds }
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.OrderId),
FiledValue=OrderId,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderRepository.Update(keyValues, wheres);
return true;
}
catch (Exception)
{
return false;
}
}
/// ERP修改商品订单状态
/// </summary>
/// <param name="extModel"></param>
......
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System.Linq;
using Mall.Model.Entity.User;
namespace Mall.Repository.Product
{
/// <summary>
/// 活动仓储层
/// </summary>
public class RB_Goods_ActivityRepository : BaseRepository<RB_Goods_Activity>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetList(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status=0";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and {nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.Way > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Way)}={dmodel.Way}";
}
if (dmodel.RangeType > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.RangeType)}={dmodel.RangeType}";
}
if (dmodel.Enable > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.QActivityState > 0)
{
if (dmodel.QActivityState == 1)
{
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{DateTime.Now}'";
}
else
{
//已结束
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} <'{DateTime.Now}'";
}
}
if (!string.IsNullOrEmpty(dmodel.OrderTime)) {
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{dmodel.OrderTime}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{dmodel.OrderTime}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取可兑换列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetCanReceiveList(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status =0 and Enable =1";
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetListForOrder(RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and a.Status=0 and g.Id is null";
if (dmodel.TenantId > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.Enable > 0)
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.OneUserId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.OneUserId}";
}
if (!string.IsNullOrEmpty(dmodel.OrderTime))
{
//进行中
where += $@" and a.{nameof(RB_Goods_Activity_Extend.StartTime)} <='{dmodel.OrderTime}'";
where += $@" and a.{nameof(RB_Goods_Activity_Extend.EndTime)} >='{dmodel.OrderTime}'";
where += $@" and a.{nameof(RB_Goods_Activity_Extend.ReceiveTime)} >='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
string sql = $@"SELECT a.* FROM RB_Goods_Activity a
left join rb_goods_activity_get g on a.Id = g.ActivityId
where {where} order by a.Id asc";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetPageList(int pageIndex,int pageSize, out long count,RB_Goods_Activity_Extend dmodel)
{
string where = $" 1=1 and Status=0";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and {nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.Way > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Way)}={dmodel.Way}";
}
if (dmodel.RangeType > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.RangeType)}={dmodel.RangeType}";
}
if (dmodel.Enable > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Extend.Enable)}={dmodel.Enable}";
}
if (dmodel.QActivityState > 0) {
if (dmodel.QActivityState == 1)
{
//进行中
where += $@" and {nameof(RB_Goods_Activity_Extend.StartTime)} <='{DateTime.Now}'";
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} >='{DateTime.Now}'";
}
else {
//已结束
where += $@" and {nameof(RB_Goods_Activity_Extend.EndTime)} <'{DateTime.Now}'";
}
}
string sql = $@"SELECT * FROM RB_Goods_Activity where {where} order by Id asc";
return GetPage<RB_Goods_Activity_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using Mall.Model.Entity.Product;
using Mall.Model.Extend.Product;
using System.Linq;
using Mall.Model.Entity.User;
namespace Mall.Repository.Product
{
/// <summary>
/// 活动奖品领取仓储层
/// </summary>
public class RB_Goods_Activity_GetRepository : BaseRepository<RB_Goods_Activity_Get>
{
/// <summary>
/// 获取列表
/// </summary>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetList(RB_Goods_Activity_Get_Extend dmodel)
{
string where = $" 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.Code))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.Code)} ='{dmodel.Code}'";
}
if (dmodel.ActivityId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.ActivityId)}={dmodel.ActivityId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityIds))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.ActivityId)} in({dmodel.ActivityIds})";
}
if (dmodel.UserId > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.UserId}";
}
if (!string.IsNullOrEmpty(dmodel.UserIds))
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.UserId)} in({dmodel.UserIds})";
}
if (dmodel.State > 0)
{
where += $@" and {nameof(RB_Goods_Activity_Get_Extend.State)}={dmodel.State}";
}
string sql = $@"SELECT * FROM RB_Goods_Activity_Get where {where} order by Id asc";
return Get<RB_Goods_Activity_Get_Extend>(sql).ToList();
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="dmodel"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Get_Extend> GetPageList(int pageIndex,int pageSize, out long count, RB_Goods_Activity_Get_Extend dmodel)
{
string where = $" 1=1 ";
if (dmodel.TenantId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.TenantId)}={dmodel.TenantId}";
}
if (dmodel.MallBaseId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (!string.IsNullOrEmpty(dmodel.Code))
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.Code)} ='{dmodel.Code}'";
}
if (dmodel.ActivityId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.ActivityId)}={dmodel.ActivityId}";
}
if (!string.IsNullOrEmpty(dmodel.ActivityName))
{
where += $@" and a.{nameof(RB_Goods_Activity_Extend.ActivityName)} like '%{dmodel.ActivityName}%'";
}
if (dmodel.UserId > 0)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.UserId)}={dmodel.UserId}";
}
if (dmodel.State > 0)
{
if (dmodel.State == 3)
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.State)} =1";
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.ReceiveTime)} <'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
else
{
where += $@" and g.{nameof(RB_Goods_Activity_Get_Extend.State)}={dmodel.State}";
}
}
string sql = $@"SELECT g.*,a.ActivityName,a.CoverImage,a.ReceiveTime,a.Way,a.PrizeName,a.PrizeImage,u.Name,u.Photo FROM RB_Goods_Activity_Get g
LEFT JOIN rb_goods_activity a on g.ActivityId = a.Id
LEFT JOIN rb_member_user u on g.UserId = u.Id
where {where} order by g.Id asc";
return GetPage<RB_Goods_Activity_Get_Extend>(pageIndex, pageSize, out count, sql).ToList();
}
}
}
......@@ -2260,5 +2260,50 @@ WHERE {where} GROUP BY o.OrderId ORDER BY o.CreateDate DESC ";
return GetPage<RB_Goods_Order_Extend>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
#endregion
#region 活动管理
/// <summary>
/// 获取分销商品数量
/// </summary>
/// <param name="dmodel"></param>
/// <param name="UserId"></param>
/// <param name="AfterTime"></param>
/// <returns></returns>
public List<RB_Goods_Activity_Extend> GetGoodsNumForCategoryOrGoods(RB_Goods_Activity_Extend dmodel, int UserId, int AfterTime)
{
string where = @$"AND o.`Status` =0 AND o.Recycled=2 AND o.OrderStatus =5 and oa.ReOrderId is null
AND o.CreateDate >='{dmodel.StartTime.ToString("yyyy-MM-dd")}' AND o.CreateDate <='{dmodel.EndTime.ToString("yyyy-MM-dd HH:mm:ss")}'
AND o.ReceivingTime <='{DateTime.Now.AddDays(0 - AfterTime).ToString("yyyy-MM-dd HH:mm:ss")}'
AND IFNULL(o.UserTree,'') <> '' ";
if (UserId > 0)
{
where += $" AND FIND_IN_SET({UserId},o.UserTree)";
}
if (dmodel.RangeType == 1)
{
string sql = $@"
SELECT od.Id,od.Number,od.Final_Price,o.OrderId,o.UserTree FROM rb_goods_orderdetail od
LEFT JOIN rb_goods_order o ON o.OrderId = od.OrderId
LEFT JOIN rb_goods_category gc ON od.GoodsId = gc.GoodsId
left join rb_goods_orderaftersale oa on od.Id= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (1,2,3,4,5)
WHERE gc.CategoryId in ({dmodel.RangeIds})
{where}
GROUP BY od.Id ";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
else {
string sql = $@"
SELECT od.Id,od.Number,od.Final_Price,o.OrderId,o.UserTree FROM rb_goods_orderdetail od
LEFT JOIN rb_goods_order o ON o.OrderId = od.OrderId
left join rb_goods_orderaftersale oa on od.Id= oa.OrderDetialId and oa.Type=1 and oa.Status=0 and oa.ReOrderStatus in (1,2,3,4,5)
WHERE od.GoodsId in({dmodel.RangeIds})
{where}
GROUP BY od.Id ";
return Get<RB_Goods_Activity_Extend>(sql).ToList();
}
}
#endregion
}
}
......@@ -43,6 +43,8 @@ namespace Mall.WebApi.Controllers.MallBase
private readonly OrderModule orderModule = new OrderModule();
private readonly Module.User.MiniProgramModule programModule = new Module.User.MiniProgramModule();
private readonly UserModule userModule = new UserModule();
private readonly ActivityModule activityModule = new ActivityModule();
#region 购物车
/// <summary>
......@@ -1601,5 +1603,126 @@ namespace Mall.WebApi.Controllers.MallBase
}
}
#endregion
#region 活动管理
/// <summary>
/// 获取活动
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityPageList()
{
var parms = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.Enable = 1;
var list = activityModule.GetGoodsActivityPageListForApplet(pagelist.pageIndex, pagelist.pageSize, out long count, demodel, userInfo.UserId);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityName,
x.Tier,
x.Type,
x.OrderNum,
x.OrderMoney,
x.GoodsNum,
MyOrderMoney = x.Final_Price,
MyGoodsNum = x.Number,
MyOrderNum = x.OrderTNum,
x.RangeType,
x.RangeList,
x.Way,
x.PrizeName,
x.PrizeImage,
StartTime = x.StartTime.ToString("yyyy-MM-dd"),
EndTime = x.EndTime.ToString("yyyy-MM-dd"),
SurplusDay = (x.EndTime - DateTime.Now).Days,
x.CoverImage,
x.Description,
x.IsFinish,
ReceiveTime = x.ReceiveTime.ToString("yyyy-MM-dd")
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoosdActivityInfo() {
var userInfo = AppletUserInfo;
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
if (ActivityId <= 0) {
return ApiResult.ParamIsNull();
}
var model = activityModule.GetGoosdActivityInfo(ActivityId, userInfo.UserId);
return ApiResult.Success("", new
{
model.Id,
model.ActivityName,
model.Tier,
model.Type,
model.OrderNum,
model.OrderMoney,
model.GoodsNum,
model.RangeType,
model.RangeList,
model.Way,
model.PrizeName,
model.PrizeImage,
StartTime = model.StartTime.ToString("yyyy-MM-dd"),
EndTime = model.EndTime.ToString("yyyy-MM-dd"),
SurplusDay = (model.EndTime - DateTime.Now).Days,
model.CoverImage,
model.Description,
ReceiveTime = model.ReceiveTime.ToString("yyyy-MM-dd")
});
}
/// <summary>
/// 获取我的奖励
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsMyActivityPrizeList() {
var parms = RequestParm;
var userInfo = AppletUserInfo;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Get_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Get_Extend>(parms.msg.ToString());
demodel.TenantId = userInfo.TenantId;
demodel.MallBaseId = userInfo.MallBaseId;
demodel.UserId = userInfo.UserId;
var list = activityModule.GetGoodsMyActivityPrizeList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityId,
x.ActivityName,
x.Code,
x.State,
x.CoverImage,
x.PrizeName,
x.PrizeImage,
x.ReceiveTime,
SurplusDay = (x.ReceiveTime - DateTime.Now).Days,
x.Way
});
return ApiResult.Success("", pagelist);
}
#endregion
}
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ namespace Mall.WebApi.Controllers.MallBase
{
private readonly ProductModule productModule = AOPHelper.CreateAOPObject<ProductModule>();
private readonly ActivityModule activityModule = new ActivityModule();
#region 素材管理
......@@ -2595,5 +2596,242 @@ namespace Mall.WebApi.Controllers.MallBase
}
#endregion
#region 活动管理
/// <summary>
/// 获取活动分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
var list = activityModule.GetGoodsActivityPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityName,
x.Tier,
x.Type,
x.OrderNum,
x.OrderMoney,
x.GoodsNum,
x.RangeType,
x.RangeIds,
x.RangeList,
x.Way,
x.CodeLength,
x.PrizeName,
x.PrizeImage,
StartTime = x.StartTime.ToString("yyyy-MM-dd"),
EndTime = x.EndTime.ToString("yyyy-MM-dd"),
x.CoverImage,
x.Description,
ReceiveTime = x.ReceiveTime.ToString("yyyy-MM-dd"),
x.Enable,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd") : ""
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 获取活动详情
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityInfo()
{
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
if (ActivityId <= 0)
{
return ApiResult.ParamIsNull();
}
var model = activityModule.GetGoodsActivityInfo(ActivityId);
return ApiResult.Success("", new
{
model.Id,
model.ActivityName,
model.Tier,
model.Type,
model.OrderNum,
model.OrderMoney,
model.GoodsNum,
model.RangeType,
model.RangeIds,
model.RangeList,
model.Way,
model.CodeLength,
model.PrizeName,
model.PrizeImage,
StartTime = model.StartTime.ToString("yyyy-MM-dd"),
EndTime = model.EndTime.ToString("yyyy-MM-dd"),
model.CoverImage,
model.Description,
ReceiveTime = model.ReceiveTime.ToString("yyyy-MM-dd")
});
}
/// <summary>
/// 新增修改活动
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityInfo() {
var parms = RequestParm;
RB_Goods_Activity_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Extend>(parms.msg.ToString());
if (string.IsNullOrEmpty(demodel.ActivityName)) {
return ApiResult.ParamIsNull("请输入活动名称");
}
if (demodel.Type == 1)
{
if (demodel.OrderNum <= 0)
{
return ApiResult.ParamIsNull("请输入分销订单数量");
}
}
else if (demodel.Type == 2)
{
if (demodel.OrderMoney <= 0)
{
return ApiResult.ParamIsNull("请输入分销订单金额");
}
}
else {
if (demodel.GoodsNum <= 0)
{
return ApiResult.ParamIsNull("请输入分销商品数量");
}
}
if (string.IsNullOrEmpty(demodel.RangeIds)) {
return ApiResult.ParamIsNull("请选择适配分类/商品");
}
if (demodel.CodeLength < 4) {
return ApiResult.ParamIsNull("请选择验证码长度");
}
if (string.IsNullOrEmpty(demodel.PrizeName)) {
return ApiResult.ParamIsNull("请输入奖品名称");
}
if (string.IsNullOrEmpty(demodel.PrizeImage)) {
return ApiResult.ParamIsNull("请选择奖品图片");
}
if (string.IsNullOrEmpty(demodel.CoverImage)) {
return ApiResult.ParamIsNull("请选择封面图");
}
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
demodel.CreateDate = DateTime.Now;
demodel.UpdateDate = DateTime.Now;
demodel.Status = 0;
demodel.StartTime = Convert.ToDateTime(demodel.StartTime.ToString("yyyy-MM-dd"));
demodel.EndTime = Convert.ToDateTime(demodel.EndTime.ToString("yyyy-MM-dd") + " 23:59:59");
demodel.ReceiveTime = Convert.ToDateTime(demodel.ReceiveTime.ToString("yyyy-MM-dd") + " 23:59:59");
bool flag = activityModule.SetGoodsActivityInfo(demodel);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 设置活动启用/删除
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityState() {
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int ActivityId = parms.GetInt("ActivityId", 0);
int Type = parms.GetInt("Type", 1);// 类型 1启用 2禁用 3删除
if (ActivityId <= 0) {
return ApiResult.ParamIsNull("请传递活动参数");
}
string msg = activityModule.SetGoodsActivityState(ActivityId, Type);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 获取活动中奖人员分页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetGoodsActivityGetUserPageList()
{
var parms = RequestParm;
ResultPageModel pagelist = JsonConvert.DeserializeObject<ResultPageModel>(parms.msg.ToString());
RB_Goods_Activity_Get_Extend demodel = JsonConvert.DeserializeObject<RB_Goods_Activity_Get_Extend>(parms.msg.ToString());
demodel.TenantId = Convert.ToInt32(parms.uid);
demodel.MallBaseId = parms.MallBaseId;
var list = activityModule.GetGoodsActivityGetUserPageList(pagelist.pageIndex, pagelist.pageSize, out long count, demodel);
pagelist.count = Convert.ToInt32(count);
pagelist.pageData = list.Select(x => new
{
x.Id,
x.ActivityId,
x.ActivityName,
x.CoverImage,
x.UserId,
x.Name,
x.Photo,
x.Code,
x.State,
x.Way,
x.OrderList,
x.TenantId,
x.MallBaseId,
CreateDate = x.CreateDate.HasValue ? x.CreateDate.Value.ToString("yyyy-MM-dd") : ""
});
return ApiResult.Success("", pagelist);
}
/// <summary>
/// 设置中奖人员状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetGoodsActivityUserState() {
JObject parms = JObject.Parse(RequestParm.msg.ToString());
int PrizeId = parms.GetInt("PrizeId", 0);
int Type = parms.GetInt("Type", 1);// 类型 1已兑换 2已失效
if (PrizeId <= 0)
{
return ApiResult.ParamIsNull("请传递中奖参数");
}
string msg = activityModule.SetGoodsActivityUserState(PrizeId, Type);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
#endregion
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment