Commit 218eef7d authored by liudong1993's avatar liudong1993

榜单报名

parent de76161c
......@@ -29,6 +29,12 @@ namespace Mall.Common.Enum.TradePavilion
/// 首展
/// </summary>
[EnumField("首展")]
FirstExhibit = 4
FirstExhibit = 4,
/// <summary>
/// 创新首店品牌
/// </summary>
[EnumField("创新首店品牌")]
NewFirstShop = 5
}
}
......@@ -75,7 +75,7 @@ namespace Mall.Model.Entity.TradePavilion
public int PrizeNum { get; set; }
/// <summary>
/// 绑定状态 枚举
/// 榜单状态 枚举
/// </summary>
public ListStateEnum ListState { get; set; }
......
......@@ -70,7 +70,7 @@ namespace Mall.Model.Entity.TradePavilion
public int CandidateState { get; set; }
/// <summary>
/// 上榜状态 1上榜 2未上榜
/// 上榜状态 1上榜 2未上榜 3暂存
/// </summary>
public int RankListState { get; set; }
......
......@@ -470,6 +470,11 @@ namespace Mall.Model.Entity.User
/// </summary>
public string HatchExamineTpl { get; set; }
/// <summary>
/// 孵化项目首店/榜单放榜通知
/// </summary>
public string ListPrizeTpl { get; set; }
/// <summary>
/// 点数0-未开启,1-开启
/// </summary>
......
......@@ -29,5 +29,10 @@ namespace Mall.Model.Extend.TradePavilion
/// 用户头像
/// </summary>
public string UserIcon { get; set; }
/// <summary>
/// 用户ids
/// </summary>
public string UserIds { get; set; }
}
}
......@@ -13,11 +13,26 @@ namespace Mall.Model.Extend.TradePavilion
[DB(ConnectionName = "DefaultConnection")]
public class RB_FirstShop_ListEnroll_Extend : RB_FirstShop_ListEnroll
{
/// <summary>
/// 查询候选列表 1是
/// </summary>
public int IsSelectCandidate { get; set; }
/// <summary>
/// 查询上榜列表 1是
/// </summary>
public int IsSelectPrize { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 用户头像
/// </summary>
public string UserIcon { get; set; }
/// <summary>
/// 品牌/载体名称
/// </summary>
......@@ -27,5 +42,21 @@ namespace Mall.Model.Extend.TradePavilion
/// 品牌/载体图标
/// </summary>
public string ObjectIcon { get; set; }
/// <summary>
/// 企业名称
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// 联系人(责任人)
/// </summary>
public string Principal { get; set; }
/// <summary>
/// 联系电话
/// </summary>
public string Mobile { get; set; }
}
}
......@@ -38,6 +38,11 @@ namespace Mall.Model.Extend.TradePavilion
/// </summary>
public int IsAppletSelectNor { get; set; }
/// <summary>
/// 年份
/// </summary>
public int Year { get; set; }
/// <summary>
/// 报名
/// </summary>
......@@ -47,5 +52,23 @@ namespace Mall.Model.Extend.TradePavilion
/// 上榜列表
/// </summary>
public List<RB_FirstShop_ListEnroll_Extend> RankList { get; set; }
#region 奖章信息
/// <summary>
/// 排名
/// </summary>
public int Rank { get; set; }
/// <summary>
/// 奖章图标
/// </summary>
public string MedalImage { get; set; }
/// <summary>
/// 上榜状态 1上榜 2未上榜
/// </summary>
public int RankListState { get; set; }
#endregion
}
}
......@@ -6,6 +6,7 @@
<ItemGroup>
<ProjectReference Include="..\Mall.Model\Mall.Model.csproj" />
<ProjectReference Include="..\Mall.Module.User\Mall.Module.User.csproj" />
<ProjectReference Include="..\Mall.Repository\Mall.Repository.csproj" />
</ItemGroup>
......
......@@ -1095,6 +1095,76 @@ namespace Mall.Module.User
return false;
}
/// <summary>
/// 首店放榜发送订阅消息
/// </summary>
/// <param name="TenantId"></param>
/// <param name="MallBaseId"></param>
/// <param name="OpenId"></param>
/// <param name="listName"></param>
/// <param name="objectName"></param>
/// <param name="result"></param>
/// <param name="remark"></param>
/// <returns></returns>
public bool SendFirstShopPrizeMsg(int TenantId, int MallBaseId, string OpenId, string listName, string objectName, string result, string remark)
{
var appletWeChatModel = programRepository.GetListRepository(new RB_MiniProgram_Extend { TenantId = TenantId, MallBaseId = MallBaseId }).FirstOrDefault();
string token = WeiXinReidsCache.Get(appletWeChatModel.MiniAppId);
if (string.IsNullOrEmpty(token))
{
token = Mall.Common.Pay.WeChatPat.TokenHelper.GetLXYToken(token, appletWeChatModel.MiniAppId, appletWeChatModel.MiniAppSecret);
System.Threading.Tasks.Task.Run(() => WeiXinReidsCache.Set(appletWeChatModel.MiniAppId, token));
}
if (string.IsNullOrEmpty(token))
{
return false;
}
string wenXinResult = string.Empty;
if (!string.IsNullOrWhiteSpace(token))
{
string Url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + token;
var postdata = new
{
touser = OpenId,
template_id = appletWeChatModel.ListPrizeTpl,
page = "pages/user-center/user-center",
data = new
{
thing1 = new
{
value = listName
},
thing2 = new
{
value = objectName
},
thing6 = new
{
value = result
},
thing4 = new
{
value = remark
}
}
};
wenXinResult = HttpHelper.HttpPost(Url, JsonHelper.Serialize(postdata), "");
JObject jo = (JObject)JsonConvert.DeserializeObject(wenXinResult);
int errcode = Convert.ToInt32(jo["errcode"].ToString());
if (errcode == 0)
{
//成功
return true;
}
else
{
LogHelper.Write(string.Format("SendFirstShopPrizeMsg:wenXinResult:{0}", wenXinResult));
}
}
return false;
}
#endregion
#region 评论违规检测
......
......@@ -106,5 +106,52 @@ WHERE 1=1
}
return Get<RB_Company_Extend>(builder.ToString(), parameters).FirstOrDefault();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Company_Extend> GetCompanyListRepository(RB_Company_Extend query)
{
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT *
FROM RB_Company
WHERE 1=1
");
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Company_Extend.Status), (int)DateStateEnum.Normal);
if (query == null)
{
return new List<RB_Company_Extend>();
}
else
{
if (query.TenantId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Company_Extend.TenantId), query.TenantId);
}
if (query.MallBaseId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Company_Extend.MallBaseId), query.MallBaseId);
}
if (!string.IsNullOrEmpty(query.CompanyName))
{
builder.AppendFormat(" AND {0} LIKE @Name ", nameof(RB_Company_Extend.CompanyName));
parameters.Add("Name", "%" + query.CompanyName.Trim() + "%");
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Company_Extend.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.UserIds))
{
builder.AppendFormat(" AND {0} in({1}) ", nameof(RB_Company_Extend.CreateBy), query.UserIds);
}
}
return Get<RB_Company_Extend>(builder.ToString(), parameters).ToList();
}
}
}
......@@ -34,6 +34,10 @@ namespace Mall.Repository.TradePavilion
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.ListId > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.ListId)}={dmodel.ListId}";
}
if (dmodel.UserId > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.UserId)}={dmodel.UserId}";
......@@ -51,7 +55,7 @@ namespace Mall.Repository.TradePavilion
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.RankListState)}={dmodel.RankListState}";
}
string sql = $@"select w.*,u.Name as UserName from RB_FirstShop_ListEnroll w
string sql = $@"select w.*,u.Name as UserName,u.Photo as UserIcon from RB_FirstShop_ListEnroll w
left join rb_member_user u on w.UserId = u.Id
where {where} order by w.Id desc
";
......@@ -91,6 +95,14 @@ where {where} order by w.Id desc
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.CandidateState)}={dmodel.CandidateState}";
}
if (dmodel.IsSelectCandidate == 1)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.CandidateState)} <>3";
}
if (dmodel.IsSelectPrize == 1)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.RankListState)} <>2";
}
if (dmodel.RankListState > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.RankListState)}={dmodel.RankListState}";
......@@ -103,5 +115,16 @@ where {where} order by w.Id desc
return Get<RB_FirstShop_ListEnroll_Extend>(sql, parameters).ToList();
}
/// <summary>
/// 清除历史评比
/// </summary>
/// <param name="listId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public bool ClearHostoryAppraisal(int listId, int mallBaseId)
{
string sql = $@"UPDATE rb_firstshop_listenroll SET Reviews='',Rank=0,MedalImage='',MedalImageBig='',RankListState=2 WHERE ListId ={listId} and MallBaseId ={mallBaseId}";
return Execute(sql) > 0;
}
}
}
\ No newline at end of file
......@@ -74,6 +74,10 @@ namespace Mall.Repository.TradePavilion
where += $@" and w.{nameof(RB_FirstShop_List_Extend.ListState)} <>{(int)Common.Enum.TradePavilion.ListStateEnum.Cancel}";
where += $@" and w.{nameof(RB_FirstShop_List_Extend.StartDate)} <='{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'";
}
if (dmodel.Year > 0)
{
where += $@" and (YEAR(w.{nameof(RB_FirstShop_List_Extend.StartDate)})={dmodel.Year} or YEAR(w.{nameof(RB_FirstShop_List_Extend.EndDate)})={dmodel.Year})";
}
string orderBy = " order by w.Id desc";
if (dmodel.OrderBy == 1) {
......@@ -167,14 +171,18 @@ where {where} order by w.Id desc
{
where += $@" and w.{nameof(RB_FirstShop_List_Extend.MallBaseId)}={dmodel.MallBaseId}";
}
if (dmodel.Year > 0)
{
where += $@" and YEAR(e.{nameof(RB_FirstShop_ListEnroll_Extend.CreateDate)})={dmodel.Year}";
}
if (dmodel.CreateBy > 0)
{
where += $@" and w.{nameof(RB_FirstShop_ListEnroll_Extend.UserId)}={dmodel.CreateBy}";
}
string sql = $@"select w.* from RB_FirstShop_List w
string sql = $@"select w.*,e.ObjectType,e.ObjectId,e.Rank,e.MedalImage,e.RankListState from RB_FirstShop_List w
left join rb_firstshop_listenroll e on w.Id = e.ListId
where {where} group by w.Id order by w.EndDate desc
where {where} group by w.Id,e.ObjectType,e.ObjectId order by w.EndDate desc
";
return GetPage<RB_FirstShop_List_Extend>(pageIndex, pageSize, out count, sql, parameters).ToList();
}
......
......@@ -1816,7 +1816,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
demodel.OrderBy = 1;
var list = firstShopListModule.GetAppletFirstShopListPageList(pageModel.pageIndex, pageModel.pageSize, out long count, demodel);
return ApiResult.Success("", list.Select(x => new
pageModel.count = Convert.ToInt32(count);
pageModel.pageData = list.Select(x => new
{
x.Id,
x.ListType,
......@@ -1830,7 +1831,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
FinishDate = x.FinishDate.ToString("yyyy-MM-dd HH:mm"),
x.PrizeNum,
x.State
}));
});
return ApiResult.Success("", pageModel);
}
/// <summary>
......@@ -1851,6 +1853,16 @@ namespace Mall.WebApi.Controllers.TradePavilion
var model = firstShopListModule.GetAppletFirstShopListInfo(ListId, userInfo);
if (model == null) { return ApiResult.Failed("榜单不存在"); }
//获取订阅消息
var miniModel = programModule.GetMiniProgramModule(new Model.Extend.User.RB_MiniProgram_Extend { TenantId = userInfo.TenantId, MallBaseId = userInfo.MallBaseId });
List<string> template_message_list = new List<string>();
if (miniModel != null)
{
if (!string.IsNullOrWhiteSpace(miniModel.ListPrizeTpl))
{
template_message_list.Add(miniModel.ListPrizeTpl);
}
}
return ApiResult.Success("", new
{
model.Id,
......@@ -1866,7 +1878,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
model.EnableRank,
model.PrizeNum,
model.ListState,
EnrollList = model.EnrollList?.Select(x=>new {
EnrollList = model.EnrollList?.Select(x => new
{
x.Id,
x.UserId,
x.UserName,
......@@ -1877,7 +1890,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
x.ObjectIcon,
x.Content
}),
RankList = model.RankList?.Select(x=>new {
RankList = model.RankList?.OrderBy(x => x.Rank).Select(x => new
{
x.Id,
x.UserId,
x.UserName,
......@@ -1890,7 +1904,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
x.Rank,
x.MedalImage,
x.MedalImageBig
})
}),
template_message_list
});
}
......@@ -2005,7 +2020,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
demodel.MallBaseId = userInfo.MallBaseId;
var list = firstShopListModule.GetAppletMyEnrollFistShopListPageList(pageModel.pageIndex, pageModel.pageSize, out long count, demodel);
return ApiResult.Success("", list.Select(x => new
pageModel.count = Convert.ToInt32(count);
pageModel.pageData = list.Select(x => new
{
x.Id,
x.ListType,
......@@ -2016,8 +2032,13 @@ namespace Mall.WebApi.Controllers.TradePavilion
EndDate = x.EndDate.ToString("yyyy-MM-dd"),
StartDate = x.StartDate.ToString("yyyy-MM-dd"),
FinishDate = x.FinishDate.ToString("yyyy-MM-dd HH:mm"),
x.PrizeNum
}));
x.PrizeNum,
x.EnableRank,
x.Rank,
x.MedalImage,
x.RankListState
});
return ApiResult.Success("", pageModel);
}
#endregion
......
......@@ -1807,7 +1807,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
demodel.MallBaseId = req.MallBaseId;
var list = firstShopListModule.GetFirstShopListPageList(pageModel.pageIndex, pageModel.pageSize, out long count, demodel);
return ApiResult.Success("", list.Select(x => new
pageModel.count = Convert.ToInt32(count);
pageModel.pageData = list.Select(x => new
{
x.Id,
x.ListType,
......@@ -1826,7 +1827,8 @@ namespace Mall.WebApi.Controllers.TradePavilion
x.ListState,
ListStateName = x.ListState.GetEnumName(),
UpdateDate = x.UpdateDate.ToString("yyyy-MM-dd HH:mm:ss")
}));
});
return ApiResult.Success("", pageModel);
}
/// <summary>
......@@ -1979,6 +1981,183 @@ namespace Mall.WebApi.Controllers.TradePavilion
}
#endregion
#region 榜单放榜
/// <summary>
/// 获取报名列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetFirstShopEnrollPageList()
{
var req = base.RequestParm;
ResultPageModel pageModel = JsonHelper.DeserializeObject<ResultPageModel>(req.msg.ToString());
RB_FirstShop_ListEnroll_Extend demodel = JsonHelper.DeserializeObject<RB_FirstShop_ListEnroll_Extend>(req.msg.ToString());
demodel.TenantId = req.TenantId;
demodel.MallBaseId = req.MallBaseId;
var list = firstShopListModule.GetFirstShopEnrollPageList(pageModel.pageIndex, pageModel.pageSize, out long count, demodel);
pageModel.count = Convert.ToInt32(count);
pageModel.pageData = list.Select(x => new
{
x.Id,
x.ListId,
x.UserId,
x.UserName,
x.UserIcon,
x.Content,
x.Reviews,
x.Rank,
x.MedalImage,
x.MedalImageBig,
x.CandidateState,
x.RankListState,
x.CompanyName,
x.ObjectName,
x.ObjectIcon,
CreateDate = x.CreateDate.ToString("yyyy-MM-dd HH:mm:ss")
});
return ApiResult.Success("", pageModel);
}
/// <summary>
/// 设置报名状态
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetFirstShopEnrollState() {
var req = base.RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
int EnrollId = parms.GetInt("EnrollId", 0);//报名Id
int Type = parms.GetInt("Type", 1);//类型 1淘汰 2候选 3重置
if (EnrollId <= 0) {
return ApiResult.ParamIsNull("请传递报名ID");
}
string msg = firstShopListModule.SetFirstShopEnrollState(EnrollId, Type, req.MallBaseId, req.EmpId);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed();
}
}
/// <summary>
/// 报名候选列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetFirstShopEnrollCandidateList() {
var req = base.RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
int ListId = parms.GetInt("ListId", 0);//榜单Id
if (ListId <= 0)
{
return ApiResult.ParamIsNull("请传递榜单ID");
}
var list = firstShopListModule.GetFirstShopEnrollCandidateList(ListId, req.MallBaseId);
return ApiResult.Success("", list.Select(x => new
{
x.Id,
x.ListId,
x.UserId,
x.UserName,
x.UserIcon,
x.CompanyName,
x.ObjectName,
x.ObjectIcon
}));
}
/// <summary>
/// 设置放榜
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetFirstShopConfirmListInfo() {
var req = base.RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
int Type = parms.GetInt("Type", 1);//类型 1暂存 2放榜
int ListId = parms.GetInt("ListId", 0);
string List = parms.GetStringValue("List");
if (ListId <= 0) {
return ApiResult.ParamIsNull("请传递榜单id");
}
List<RB_FirstShop_ListEnroll_Extend> deList = JsonHelper.DeserializeObject<List<RB_FirstShop_ListEnroll_Extend>>(List);
if (deList == null || !deList.Any()) {
return ApiResult.ParamIsNull("请传递名单列表");
}
if (deList.Count() != deList.Select(x => x.Id).Distinct().Count()) {
return ApiResult.Failed("有重复数据,请核实后再试");
}
foreach (var item in deList) {
if (item.Id <= 0) {
return ApiResult.ParamIsNull("请传递报名ID");
}
if (item.UserId <= 0) {
return ApiResult.ParamIsNull("请传递用户Id");
}
if (string.IsNullOrEmpty(item.Reviews)) {
return ApiResult.ParamIsNull("请输入评语");
}
if (string.IsNullOrEmpty(item.MedalImage)) {
return ApiResult.ParamIsNull("请传递奖章");
}
if (string.IsNullOrEmpty(item.MedalImageBig))
{
return ApiResult.ParamIsNull("请传递奖章");
}
}
string msg = firstShopListModule.SetFirstShopConfirmListInfo(Type, ListId, deList, req.MallBaseId, req.EmpId);
if (msg == "")
{
return ApiResult.Success();
}
else {
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 获取榜单上榜列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetFirstShopConfirmListList() {
var req = base.RequestParm;
JObject parms = JObject.Parse(req.msg.ToString());
int ListId = parms.GetInt("ListId", 0);//榜单Id
if (ListId <= 0)
{
return ApiResult.ParamIsNull("请传递榜单ID");
}
var list = firstShopListModule.GetFirstShopConfirmListList(ListId, req.MallBaseId);
return ApiResult.Success("", list.OrderBy(x => x.Rank).Select(x => new
{
x.Id,
x.ListId,
x.UserId,
x.UserName,
x.UserIcon,
x.Reviews,
x.Rank,
x.MedalImage,
x.MedalImageBig,
x.CompanyName,
x.ObjectName,
x.ObjectIcon,
}));
}
#endregion
#region 心愿单列表
/// <summary>
......
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