GoodsType.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace JiaZhiQuan.Common.Models
  5. {
  6. /// <summary>
  7. /// 后台管理商品查询、订单查询接口的商品类型
  8. /// 这些商品类型统一管理
  9. /// </summary>
  10. public class GoodsType
  11. {
  12. public int goodType;
  13. public string typeName;
  14. public List<VirtualType> virtualTypes;
  15. public List<StateType> stateTypes;
  16. private static List<GoodsType> goodsTypes => new List<GoodsType> {
  17. new GoodsType { goodType=0,typeName="实体商品",stateTypes=stateTypes1},
  18. new GoodsType { goodType=1,typeName="虚拟商品",virtualTypes=virtualTypes1}
  19. };
  20. private static List<VirtualType> virtualTypes1 => new List<VirtualType> {
  21. new VirtualType{ virtualType=1, typeName="链接",stateTypes=stateTypes1},
  22. new VirtualType{ virtualType=2, typeName="支付宝红包",stateTypes=stateTypes2} ,
  23. new VirtualType{ virtualType=3, typeName="卡密",stateTypes=stateTypes1},
  24. new VirtualType{ virtualType=4, typeName="API直充",stateTypes=stateTypes1}
  25. };
  26. private static List<StateType> stateTypes1 => new List<StateType> {
  27. new StateType{ state=1, typeName="待发货"},
  28. new StateType{ state=2, typeName="已发货"}
  29. };
  30. private static List<StateType> stateTypes2 => new List<StateType> {
  31. new StateType{ state=10, typeName="待兑换"},
  32. new StateType{ state=13, typeName="兑换中"},
  33. new StateType{ state=11, typeName="已兑换"},
  34. new StateType{ state=12, typeName="已过期"}
  35. };
  36. public static List<VirtualType>? ListVirtualTypeByGoodsType(int? goodsType)
  37. {
  38. return goodsTypes.FirstOrDefault(t => t.goodType == goodsType)?.virtualTypes;
  39. }
  40. public static List<StateType>? ListStateTypeByGoodsType(int? goodsType, int? virtualType = -1)
  41. {
  42. if (0 == goodsType)
  43. {
  44. return goodsTypes[0].stateTypes;
  45. }
  46. else
  47. {
  48. return goodsTypes.FirstOrDefault(t => t.goodType == goodsType)?.
  49. virtualTypes.FirstOrDefault(v => v.virtualType == virtualType)?.stateTypes;
  50. }
  51. }
  52. public static List<GoodsType> ListGoodsTypes()
  53. {
  54. return goodsTypes;
  55. }
  56. public static string? TransStateName(int? isVirtual, int? virtualType, int? state)
  57. {
  58. List<StateType>? sta = ListStateTypeByGoodsType(isVirtual, virtualType);
  59. return sta?.FirstOrDefault(s => s.state == state)?.typeName;
  60. }
  61. public class VirtualType
  62. {
  63. public int virtualType;
  64. public string typeName;
  65. public List<StateType> stateTypes;
  66. }
  67. public class StateType
  68. {
  69. public int state;
  70. public string typeName;
  71. }
  72. }
  73. }