/// <summary> /// 更新用户等级 /// </summary> /// <param name="customerSysNo">会员编号</param> /// <param name="userSysNo">系统用户编号</param> /// <param name="changeType">等级积分日志变更类型</param> /// <param name="description">等级变更说明</param> /// <returns></returns> /// <remarks>2013-07-11 黄波 创建</remarks> public override void UpdateCustomerLevel(int customerSysNo, int userSysNo, CustomerStatus.等级积分日志变更类型 changeType, string description) { var customer = Context.Select <CrCustomer>("c.*") .From("CrCustomer c") .Where("c.sysno=@sysno") .Parameter("sysno", customerSysNo) .QuerySingle(); if (customer != null) { //根据积分总数取等级编号 var levelSysNo = Context.Select <int>("sysno") .From("crcustomerlevel") .Where("lowerlimit<=@point and upperlimit>=@point") .Parameter("point", customer.LevelPoint) .OrderBy("upperlimit desc") .QuerySingle(); //根据等级编号判断是否需要更新等级 if (levelSysNo != 0 && levelSysNo != customer.LevelSysNo) { //写入等级变更日志 var levelLogModel = new CrLevelLog { ChangeDate = DateTime.Now, CreatedBy = userSysNo, CreatedDate = DateTime.Now, CustomerSysNo = customerSysNo, NewLevelSysNo = levelSysNo, OldLevelSysNo = customer.LevelSysNo }; switch (changeType) { case CustomerStatus.等级积分日志变更类型.交易变更: levelLogModel.ChangeType = (int)CustomerStatus.等级日志变更类型.交易变更; levelLogModel.ChangeDescription = levelLogModel.NewLevelSysNo > levelLogModel.OldLevelSysNo ? "经验升级" : "交易取消降级"; break; default: levelLogModel.ChangeType = (int)CustomerStatus.等级日志变更类型.客服调整; levelLogModel.ChangeDescription = description; break; } using (var context = Context.UseSharedConnection(true)) { context.Sql("update crcustomer set levelsysno=@levelsysno where sysno=@sysno") .Parameter("levelsysno", levelSysNo) .Parameter("sysno", customerSysNo) .Execute(); context.Insert <CrLevelLog>("CrLevelLog", levelLogModel) .AutoMap(o => o.SysNo) .Execute(); } } } }
/// <summary> /// 插入等级变更日志 /// </summary> /// <param name="model">等级变更日志详情</param> /// <returns>创建结果</returns> /// <remarks>2013-07-10 黄波 添加</remarks> public abstract bool InsertCrLevelLogItem(CrLevelLog model);