调整
This commit is contained in:
		
							parent
							
								
									a864335c0e
								
							
						
					
					
						commit
						6158779a95
					
				| @ -6,7 +6,7 @@ import ( | |||||||
| 	"reflect" | 	"reflect" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| ) | ) | ||||||
| @ -60,7 +60,7 @@ func (o *FsOrderModel) FindPageListByPage(ctx context.Context, rowBuilder *gorm. | |||||||
| 	var resp []*FsOrderRel | 	var resp []*FsOrderRel | ||||||
| 	// 过滤 | 	// 过滤 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// 排序 | 	// 排序 | ||||||
| @ -70,11 +70,11 @@ func (o *FsOrderModel) FindPageListByPage(ctx context.Context, rowBuilder *gorm. | |||||||
| 		for i := 0; i < s.NumField(); i++ { | 		for i := 0; i < s.NumField(); i++ { | ||||||
| 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | ||||||
| 		} | 		} | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.OrderCheck(orderBy, fieldsMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.OrderCheck(orderBy, fieldsMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// 分页 | 	// 分页 | ||||||
| 	rowBuilder = rowBuilder.Scopes(handler.Paginate(page, pageSize)) | 	rowBuilder = rowBuilder.Scopes(handlers.Paginate(page, pageSize)) | ||||||
| 
 | 
 | ||||||
| 	// 结果 | 	// 结果 | ||||||
| 	result := rowBuilder.Debug().WithContext(ctx).Find(&resp) | 	result := rowBuilder.Debug().WithContext(ctx).Find(&resp) | ||||||
| @ -125,7 +125,7 @@ func (m *FsOrderModel) FindCount(ctx context.Context, countBuilder *gorm.DB, fil | |||||||
| 
 | 
 | ||||||
| 	// 过滤 | 	// 过滤 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		countBuilder = countBuilder.Scopes(handler.FilterData(filterMap)) | 		countBuilder = countBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := countBuilder.WithContext(ctx).Limit(1).Count(&count) | 	result := countBuilder.WithContext(ctx).Limit(1).Count(&count) | ||||||
| @ -140,7 +140,7 @@ func (m *FsOrderModel) FindOneByQuery(ctx context.Context, rowBuilder *gorm.DB, | |||||||
| 	var resp FsOrderRel | 	var resp FsOrderRel | ||||||
| 
 | 
 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ package gmodel | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| @ -55,7 +55,7 @@ func (m *FsPayModel) FindCount(ctx context.Context, countBuilder *gorm.DB, filte | |||||||
| 
 | 
 | ||||||
| 	// 过滤 | 	// 过滤 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		countBuilder = countBuilder.Scopes(handler.FilterData(filterMap)) | 		countBuilder = countBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := countBuilder.WithContext(ctx).Limit(1).Count(&count) | 	result := countBuilder.WithContext(ctx).Limit(1).Count(&count) | ||||||
| @ -70,7 +70,7 @@ func (m *FsPayModel) FindOneByQuery(ctx context.Context, rowBuilder *gorm.DB, fi | |||||||
| 	var resp FsPay | 	var resp FsPay | ||||||
| 
 | 
 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | ||||||
| @ -85,7 +85,7 @@ func (m *FsPayModel) FindAll(ctx context.Context, rowBuilder *gorm.DB, filterMap | |||||||
| 	var resp []*FsPay | 	var resp []*FsPay | ||||||
| 	// 过滤 | 	// 过滤 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// 排序 | 	// 排序 | ||||||
| @ -95,7 +95,7 @@ func (m *FsPayModel) FindAll(ctx context.Context, rowBuilder *gorm.DB, filterMap | |||||||
| 		for i := 0; i < s.NumField(); i++ { | 		for i := 0; i < s.NumField(); i++ { | ||||||
| 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | ||||||
| 		} | 		} | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.OrderCheck(orderBy, fieldsMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.OrderCheck(orderBy, fieldsMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Find(&resp) | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ package gmodel | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| ) | ) | ||||||
| @ -40,7 +40,7 @@ func (m *FsRefundReasonModel) FindOneByQuery(ctx context.Context, rowBuilder *go | |||||||
| 	var resp FsRefundReason | 	var resp FsRefundReason | ||||||
| 
 | 
 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ package gmodel | |||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| ) | ) | ||||||
| @ -36,7 +36,7 @@ func (m *FsResourceModel) FindOneByQuery(ctx context.Context, rowBuilder *gorm.D | |||||||
| 	var resp FsResource | 	var resp FsResource | ||||||
| 
 | 
 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ package gmodel | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| ) | ) | ||||||
| @ -23,7 +23,7 @@ func (m *FsResourcesModel) FindOneByQuery(ctx context.Context, rowBuilder *gorm. | |||||||
| 	var resp FsResources | 	var resp FsResources | ||||||
| 
 | 
 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Limit(1).Find(&resp) | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ package gmodel | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fusenapi/utils/handler" | 	"fusenapi/utils/handlers" | ||||||
| 	"reflect" | 	"reflect" | ||||||
| 
 | 
 | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| @ -24,7 +24,7 @@ func (m *FsUserMaterialModel) FindAll(ctx context.Context, rowBuilder *gorm.DB, | |||||||
| 	var resp []*FsUserMaterial | 	var resp []*FsUserMaterial | ||||||
| 	// 过滤 | 	// 过滤 | ||||||
| 	if filterMap != nil { | 	if filterMap != nil { | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.FilterData(filterMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.FilterData(filterMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// 排序 | 	// 排序 | ||||||
| @ -34,7 +34,7 @@ func (m *FsUserMaterialModel) FindAll(ctx context.Context, rowBuilder *gorm.DB, | |||||||
| 		for i := 0; i < s.NumField(); i++ { | 		for i := 0; i < s.NumField(); i++ { | ||||||
| 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | 			fieldsMap[s.Field(i).Tag.Get("json")] = struct{}{} | ||||||
| 		} | 		} | ||||||
| 		rowBuilder = rowBuilder.Scopes(handler.OrderCheck(orderBy, fieldsMap)) | 		rowBuilder = rowBuilder.Scopes(handlers.OrderCheck(orderBy, fieldsMap)) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	result := rowBuilder.WithContext(ctx).Find(&resp) | 	result := rowBuilder.WithContext(ctx).Find(&resp) | ||||||
|  | |||||||
| @ -97,6 +97,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | |||||||
| 				Path:    "/api/user/logo-list", | 				Path:    "/api/user/logo-list", | ||||||
| 				Handler: UserLogoListHandler(serverCtx), | 				Handler: UserLogoListHandler(serverCtx), | ||||||
| 			}, | 			}, | ||||||
|  | 			{ | ||||||
|  | 				Method:  http.MethodGet, | ||||||
|  | 				Path:    "/api/user/one-more-order", | ||||||
|  | 				Handler: UserAgainOrderHandler(serverCtx), | ||||||
|  | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	) | 	) | ||||||
| } | } | ||||||
|  | |||||||
| @ -0,0 +1,35 @@ | |||||||
|  | package handler | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"net/http" | ||||||
|  | 	"reflect" | ||||||
|  | 
 | ||||||
|  | 	"fusenapi/utils/basic" | ||||||
|  | 
 | ||||||
|  | 	"fusenapi/server/home-user-auth/internal/logic" | ||||||
|  | 	"fusenapi/server/home-user-auth/internal/svc" | ||||||
|  | 	"fusenapi/server/home-user-auth/internal/types" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func UserAgainOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||||||
|  | 	return func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 
 | ||||||
|  | 		var req types.UserAgainOrderReq | ||||||
|  | 		userinfo, err := basic.RequestParse(w, r, svcCtx, &req) | ||||||
|  | 		if err != nil { | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// 创建一个业务逻辑层实例 | ||||||
|  | 		l := logic.NewUserAgainOrderLogic(r.Context(), svcCtx) | ||||||
|  | 
 | ||||||
|  | 		rl := reflect.ValueOf(l) | ||||||
|  | 		basic.BeforeLogic(w, r, rl) | ||||||
|  | 
 | ||||||
|  | 		resp := l.UserAgainOrder(&req, userinfo) | ||||||
|  | 
 | ||||||
|  | 		if !basic.AfterLogic(w, r, rl, resp) { | ||||||
|  | 			basic.NormalAfterLogic(w, r, resp) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										144
									
								
								server/home-user-auth/internal/logic/useragainorderlogic.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								server/home-user-auth/internal/logic/useragainorderlogic.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,144 @@ | |||||||
|  | package logic | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"errors" | ||||||
|  | 	"fusenapi/model/gmodel" | ||||||
|  | 	"fusenapi/utils/auth" | ||||||
|  | 	"fusenapi/utils/basic" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"context" | ||||||
|  | 
 | ||||||
|  | 	"fusenapi/server/home-user-auth/internal/svc" | ||||||
|  | 	"fusenapi/server/home-user-auth/internal/types" | ||||||
|  | 
 | ||||||
|  | 	"github.com/zeromicro/go-zero/core/logx" | ||||||
|  | 	"gorm.io/gorm" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | type UserAgainOrderLogic struct { | ||||||
|  | 	logx.Logger | ||||||
|  | 	ctx    context.Context | ||||||
|  | 	svcCtx *svc.ServiceContext | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func NewUserAgainOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserAgainOrderLogic { | ||||||
|  | 	return &UserAgainOrderLogic{ | ||||||
|  | 		Logger: logx.WithContext(ctx), | ||||||
|  | 		ctx:    ctx, | ||||||
|  | 		svcCtx: svcCtx, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 处理进入前逻辑w,r | ||||||
|  | // func (l *UserAgainOrderLogic) BeforeLogic(w http.ResponseWriter, r *http.Request) { | ||||||
|  | // } | ||||||
|  | 
 | ||||||
|  | // 处理逻辑后 w,r 如:重定向, resp 必须重新处理 | ||||||
|  | // func (l *UserAgainOrderLogic) AfterLogic(w http.ResponseWriter, r *http.Request, resp *basic.Response) { | ||||||
|  | // // httpx.OkJsonCtx(r.Context(), w, resp) | ||||||
|  | // } | ||||||
|  | 
 | ||||||
|  | func (l *UserAgainOrderLogic) UserAgainOrder(req *types.UserAgainOrderReq, userinfo *auth.UserInfo) (resp *basic.Response) { | ||||||
|  | 	// 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data) | ||||||
|  | 	// userinfo 传入值时, 一定不为null | ||||||
|  | 	if userinfo == nil || userinfo.UserId == 0 { | ||||||
|  | 		return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "order not found") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// 查询订单数据 | ||||||
|  | 	orderModel := gmodel.NewFsOrderModel(l.svcCtx.MysqlConn) | ||||||
|  | 	orderDetailTemplateModel := gmodel.NewFsOrderDetailTemplateModel(l.svcCtx.MysqlConn) | ||||||
|  | 	fsOrderDetailModel := gmodel.NewFsOrderDetailModel(l.svcCtx.MysqlConn) | ||||||
|  | 	fsProductDesignModel := gmodel.NewFsProductDesignModel(l.svcCtx.MysqlConn) | ||||||
|  | 
 | ||||||
|  | 	rsbOrder := orderModel.RowSelectBuilder(nil) | ||||||
|  | 	rsbOrder = rsbOrder.Where("sn =?", req.Sn).Preload("FsOrderDetails") | ||||||
|  | 	rsbOrder = rsbOrder.Preload("FsOrderDetails", func(dbPreload *gorm.DB) *gorm.DB { | ||||||
|  | 		return dbPreload.Table(fsOrderDetailModel.TableName()).Preload("FsOrderDetailTemplateInfo", func(dbPreload *gorm.DB) *gorm.DB { | ||||||
|  | 			return dbPreload.Table(orderDetailTemplateModel.TableName()).Preload("FsProductDesignInfo", func(dbPreload *gorm.DB) *gorm.DB { | ||||||
|  | 				return dbPreload.Table(fsProductDesignModel.TableName()) | ||||||
|  | 			}) | ||||||
|  | 		}) | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	fsOrderRelInfo, err := orderModel.FindOneByQuery(l.ctx, rsbOrder, nil) | ||||||
|  | 
 | ||||||
|  | 	if err != nil { | ||||||
|  | 		if errors.Is(err, gorm.ErrRecordNotFound) { | ||||||
|  | 			return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "order not found") | ||||||
|  | 		} | ||||||
|  | 		logx.Error(err) | ||||||
|  | 		return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get order info") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if len(fsOrderRelInfo.FsOrderDetails) > 0 { | ||||||
|  | 		for _, fsOrderDetail := range fsOrderRelInfo.FsOrderDetails { | ||||||
|  | 			var isCheck int64 = 1 | ||||||
|  | 			productDesignInfo := fsOrderDetail.FsOrderDetailTemplateInfo.FsProductDesignInfo | ||||||
|  | 			if productDesignInfo.Id != 0 { | ||||||
|  | 
 | ||||||
|  | 				// 查找是否有此材质、产品、大小id的阶梯价格 | ||||||
|  | 				productPriceModel := gmodel.NewFsProductPriceModel(l.svcCtx.MysqlConn) | ||||||
|  | 				priceStatus := int64(1) | ||||||
|  | 				priceReq := gmodel.FindOneProductPriceByParamsReq{ | ||||||
|  | 					ProductId:  productDesignInfo.ProductId, | ||||||
|  | 					MaterialId: productDesignInfo.MaterialId, | ||||||
|  | 					SizeId:     productDesignInfo.SizeId, | ||||||
|  | 					Status:     &priceStatus, | ||||||
|  | 				} | ||||||
|  | 				productPriceInfo, err := productPriceModel.FindOneProductPriceByParams(l.ctx, priceReq) | ||||||
|  | 				if err == nil && productPriceInfo.Id != 0 && *productPriceInfo.EachBoxNum > 0 { | ||||||
|  | 
 | ||||||
|  | 					// 买的数量和每箱数量取余为0 且 份数大于等于最小购买数量才算满足条件 | ||||||
|  | 					if *fsOrderDetail.BuyNum%*productPriceInfo.EachBoxNum == 0 && int64(float64(*fsOrderDetail.BuyNum)/float64(*productPriceInfo.EachBoxNum)) >= *productPriceInfo.MinBuyNum { | ||||||
|  | 
 | ||||||
|  | 						// 查询购物车 | ||||||
|  | 						cartModel := gmodel.NewFsCartModel(l.svcCtx.MysqlConn) | ||||||
|  | 						cartStatus := int64(1) | ||||||
|  | 						cartReq := gmodel.FindOneCartByParamsReq{ | ||||||
|  | 							UserId:     &userinfo.UserId, | ||||||
|  | 							ProductId:  productDesignInfo.ProductId, | ||||||
|  | 							TemplateId: productDesignInfo.TemplateId, | ||||||
|  | 							PriceId:    &productPriceInfo.Id, | ||||||
|  | 							DesignId:   &productDesignInfo.Id, | ||||||
|  | 							MaterialId: productDesignInfo.MaterialId, | ||||||
|  | 							Status:     &cartStatus, | ||||||
|  | 						} | ||||||
|  | 						cartInfo, err := cartModel.FindOneCartByParams(l.ctx, cartReq) | ||||||
|  | 						if err == nil && (err != nil && errors.Is(err, gorm.ErrRecordNotFound)) { | ||||||
|  | 							now := time.Now().Unix() | ||||||
|  | 							nowTime := time.Now() | ||||||
|  | 							data := gmodel.FsCart{ | ||||||
|  | 								UserId:     &userinfo.UserId, | ||||||
|  | 								ProductId:  productPriceInfo.ProductId, | ||||||
|  | 								TemplateId: productDesignInfo.TemplateId, | ||||||
|  | 								PriceId:    &productPriceInfo.Id, | ||||||
|  | 								MaterialId: productDesignInfo.MaterialId, | ||||||
|  | 								SizeId:     productDesignInfo.SizeId, | ||||||
|  | 								BuyNum:     fsOrderDetail.BuyNum, | ||||||
|  | 								Cover:      productDesignInfo.Cover, | ||||||
|  | 								DesignId:   &productDesignInfo.Id, | ||||||
|  | 								Ctime:      &now, | ||||||
|  | 								Status:     &cartStatus, | ||||||
|  | 								OptionalId: productDesignInfo.OptionalId, | ||||||
|  | 								IsCheck:    &isCheck, | ||||||
|  | 								TsTime:     &nowTime, | ||||||
|  | 							} | ||||||
|  | 							if cartInfo == nil { | ||||||
|  | 								err = cartModel.Create(l.ctx, data) | ||||||
|  | 							} else { | ||||||
|  | 								err = cartModel.Update(l.ctx, cartInfo.Id, data) | ||||||
|  | 							} | ||||||
|  | 							if err != nil { | ||||||
|  | 								logx.Error(err) | ||||||
|  | 								return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to add to cart") | ||||||
|  | 							} | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return resp.SetStatus(basic.CodeOK) | ||||||
|  | } | ||||||
| @ -6,13 +6,13 @@ import ( | |||||||
| 	"fusenapi/model/gmodel" | 	"fusenapi/model/gmodel" | ||||||
| 	"fusenapi/utils/auth" | 	"fusenapi/utils/auth" | ||||||
| 	"fusenapi/utils/basic" | 	"fusenapi/utils/basic" | ||||||
|  | 	"fusenapi/utils/handlers" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| 	"context" | 	"context" | ||||||
| 
 | 
 | ||||||
| 	"fusenapi/server/home-user-auth/internal/svc" | 	"fusenapi/server/home-user-auth/internal/svc" | ||||||
| 	"fusenapi/server/home-user-auth/internal/types" | 	"fusenapi/server/home-user-auth/internal/types" | ||||||
| 	handlerUtils "fusenapi/utils/handler" |  | ||||||
| 
 | 
 | ||||||
| 	"github.com/zeromicro/go-zero/core/logx" | 	"github.com/zeromicro/go-zero/core/logx" | ||||||
| 	"gorm.io/gorm" | 	"gorm.io/gorm" | ||||||
| @ -74,7 +74,7 @@ func (l *UserOrderCancelLogic) UserOrderCancel(req *types.UserOrderCancelReq, us | |||||||
| 	orderInfo.RefundReason = &req.RefundReason | 	orderInfo.RefundReason = &req.RefundReason | ||||||
| 
 | 
 | ||||||
| 	var nowTime = time.Now().Unix() | 	var nowTime = time.Now().Unix() | ||||||
| 	var payList []handlerUtils.PayInfo | 	var payList []handlers.PayInfo | ||||||
| 	// 事务处理 | 	// 事务处理 | ||||||
| 	err = orderModel.Trans(l.ctx, func(ctx context.Context, connGorm *gorm.DB) (err error) { | 	err = orderModel.Trans(l.ctx, func(ctx context.Context, connGorm *gorm.DB) (err error) { | ||||||
| 		// 修改订单信息 | 		// 修改订单信息 | ||||||
| @ -106,7 +106,7 @@ func (l *UserOrderCancelLogic) UserOrderCancel(req *types.UserOrderCancelReq, us | |||||||
| 			if *payInfo.PaymentMethod == int64(constants.PAYMETHOD_STRIPE) { | 			if *payInfo.PaymentMethod == int64(constants.PAYMETHOD_STRIPE) { | ||||||
| 				key = l.svcCtx.Config.PayConfig.Stripe.Key | 				key = l.svcCtx.Config.PayConfig.Stripe.Key | ||||||
| 			} | 			} | ||||||
| 			payList = append(payList, handlerUtils.PayInfo{ | 			payList = append(payList, handlers.PayInfo{ | ||||||
| 				TradeNo:       *payInfo.TradeNo, | 				TradeNo:       *payInfo.TradeNo, | ||||||
| 				PaymentMethod: *payInfo.PaymentMethod, | 				PaymentMethod: *payInfo.PaymentMethod, | ||||||
| 				Key:           key, | 				Key:           key, | ||||||
| @ -115,7 +115,7 @@ func (l *UserOrderCancelLogic) UserOrderCancel(req *types.UserOrderCancelReq, us | |||||||
| 		return nil | 		return nil | ||||||
| 	}) | 	}) | ||||||
| 	// 退款申请--调取第三方接口发起退款 | 	// 退款申请--调取第三方接口发起退款 | ||||||
| 	handlerUtils.PayRefundHandler(&handlerUtils.PayRefundHandlerReq{ | 	handlers.PayRefundHandler(&handlers.PayRefundHandlerReq{ | ||||||
| 		PayInfoList: payList, | 		PayInfoList: payList, | ||||||
| 	}) | 	}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | |||||||
| @ -5,6 +5,13 @@ import ( | |||||||
| 	"fusenapi/utils/basic" | 	"fusenapi/utils/basic" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | type UserAgainOrderReq struct { | ||||||
|  | 	Sn string `form:"sn"` // 订单编号 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type UserAgainOrderRes struct { | ||||||
|  | } | ||||||
|  | 
 | ||||||
| type UserLogoListReq struct { | type UserLogoListReq struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -71,8 +71,19 @@ service home-user-auth { | |||||||
| 	// 用户logo列表 | 	// 用户logo列表 | ||||||
| 	@handler UserLogoListHandler | 	@handler UserLogoListHandler | ||||||
| 	get /api/user/logo-list (UserLogoListReq) returns (response); | 	get /api/user/logo-list (UserLogoListReq) returns (response); | ||||||
|  | 
 | ||||||
|  | 	// 再来一单 | ||||||
|  | 	@handler UserAgainOrderHandler | ||||||
|  | 	get /api/user/one-more-order (UserAgainOrderReq) returns (response); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | type ( | ||||||
|  | 	UserAgainOrderReq { | ||||||
|  | 		Sn string `form:"sn"` // 订单编号 | ||||||
|  | 	} | ||||||
|  | 	UserAgainOrderRes struct{} | ||||||
|  | ) | ||||||
|  | 
 | ||||||
| type ( | type ( | ||||||
| 	UserLogoListReq { | 	UserLogoListReq { | ||||||
| 	} | 	} | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| package handler | package handlers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
| @ -1,4 +1,4 @@ | |||||||
| package handler | package handlers | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fusenapi/constants" | 	"fusenapi/constants" | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user