PointService.php 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/4/10
  6. * Time: 下午5:49
  7. */
  8. namespace app\common\services\finance;
  9. use app\backend\modules\member\models\Member;
  10. use app\common\events\finance\PointChangeCreatingEvent;
  11. use app\common\events\member\MemberPointChangeEvent;
  12. use app\common\events\MessageEvent;
  13. use app\common\exceptions\ShopException;
  14. use app\common\models\finance\PointLog;
  15. use app\common\models\notice\MessageTemp;
  16. use app\common\services\notice\official\PointChangeNotice;
  17. use app\common\services\notice\official\PointDeficiencyNotice;
  18. use Setting;
  19. class PointService
  20. {
  21. const POINT_INCOME_GET = 1; //获得
  22. const POINT_INCOME_LOSE = -1; //失去
  23. const POINT_MODE_GOODS = 1; //商品赠送
  24. const POINT_MODE_GOODS_ATTACHED = '商品赠送';
  25. const POINT_MODE_ORDER = 2; //订单赠送
  26. const POINT_MODE_ORDER_ATTACHED = '订单赠送';
  27. const POINT_MODE_POSTER = 3; //超级海报
  28. const POINT_MODE_POSTER_ATTACHED = '超级海报';
  29. const POINT_MODE_ARTICLE = 4; //文章营销
  30. const POINT_MODE_ARTICLE_ATTACHED = '文章营销';
  31. const POINT_MODE_ADMIN = 5; //后台充值
  32. const POINT_MODE_ADMIN_ATTACHED = '后台充值';
  33. const POINT_MODE_BY = 6; //购物抵扣
  34. const POINT_MODE_BY_ATTACHED = '购物抵扣';
  35. const POINT_MODE_TEAM = 7; //团队奖励
  36. const POINT_MODE_TEAM_ATTACHED = '团队奖励';
  37. const POINT_MODE_LIVE = 8; //生活缴费奖励
  38. const POINT_MODE_LIVE_ATTACHED = '生活缴费奖励';
  39. const POINT_MODE_CASHIER = 9; //收银台奖励
  40. const POINT_MODE_CASHIER_ATTACHED = '收银台奖励';
  41. const POINT_MODE_AIR = 10; //飞机票
  42. const POINT_MODE_AIR_ATTACHED = '飞机票奖励';
  43. const POINT_MODE_RECHARGE = 11; //话费充值奖励
  44. const POINT_MODE_RECHARGE_ATTACHED = '话费充值奖励';
  45. const POINT_MODE_FLOW = 12; //流量充值奖励
  46. const POINT_MODE_FlOW_ATTACHED = '流量充值奖励';
  47. const POINT_MODE_TRANSFER = 13; //转让
  48. const POINT_MODE_TRANSFER_ATTACHED = '转让-转出';
  49. const POINT_MODE_RECIPIENT = 14; //转让
  50. const POINT_MODE_RECIPIENT_ATTACHED = '转让-转入';
  51. const POINT_MODE_ROLLBACK = 15; //回滚
  52. const POINT_MODE_ROLLBACK_ATTACHED = '返还';
  53. const POINT_MODE_COUPON_DEDUCTION_AWARD = 16;
  54. const POINT_MODE_COUPON_DEDUCTION_AWARD_ATTACHED = '优惠券抵扣奖励';
  55. const POINT_MODE_TASK_REWARD = 17;
  56. const POINT_MODE_TASK_REWARD_ATTACHED = '任务奖励';
  57. const POINT_MODE_TRANSFER_LOVE = 18;
  58. const POINT_MODE_TRANSFER_LOVE_ATTACHED = '自动转出';
  59. const POINT_MODE_SIGN_REWARD = 19;
  60. const POINT_MODE_SIGN_REWARD_ATTACHED = '签到奖励';
  61. const POINT_MODE_COURIER_REWARD = 20;
  62. const POINT_MODE_COURIER_REWARD_ATTACHED = '快递单奖励';
  63. const POINT_MODE_FROZE_AWARD = 21;
  64. const POINT_MODE_FROZE_AWARD_ATTACHED = '冻结币奖励';
  65. const POINT_MODE_COMMUNITY_REWARD = 22;
  66. const POINT_MODE_COMMUNITY_REWARD_ATTACHED = '圈子签到奖励';
  67. const POINT_MODE_CREATE_ACTIVITY = 23;
  68. const POINT_MODE_CREATE_ACTIVITY_ATTACHED = '创建活动';
  69. const POINT_MODE_ACTIVITY_OVERDUE = 24;
  70. const POINT_MODE_ACTIVITY_OVERDUE_ATTACHED = '活动失效';
  71. const POINT_MODE_RECEIVE_ACTIVITY = 25;
  72. const POINT_MODE_RECEIVE_ACTIVITY_ATTACHED = '领取活动';
  73. const POINT_MODE_RECEIVE_OVERDUE = 26;
  74. const POINT_MODE_RECEIVE_OVERDUE_ATTACHED = '领取失效';
  75. const POINT_MODE_COMMISSION_TRANSFER = 27;
  76. const POINT_MODE_COMMISSION_TRANSFER_ATTACHED = '分销佣金转入';
  77. const POINT_MODE_HOTEL_CASHIER = 28; //酒店收银台奖励
  78. const POINT_MODE_HOTEL_CASHIER_ATTACHED = '酒店收银台奖励';
  79. const POINT_MODE_EXCEL_RECHARGE = 29;
  80. const POINT_MODE_EXCEL_RECHARGE_ATTACHED = 'EXCEL充值';
  81. const POINT_MODE_CARD_VISIT_REWARD = 30;
  82. const POINT_MODE_CARD_VISIT_REWARD_ATTACHED = '名片访问奖励';
  83. const POINT_MODE_CARD_REGISTER_REWARD = 31;
  84. const POINT_MODE_CARD_REGISTER_REWARD_ATTACHED = '名片新增会员奖励';
  85. const POINT_MODE_PRESENTATION = 32;
  86. const POINT_MODE_PRESENTATION_ATTACHED = '推荐客户奖励';
  87. const POINT_MODE_LOVE_WITHDRAWAL_DEDUCTION = 33;
  88. const POINT_MODE_LOVE_WITHDRAWAL_DEDUCTION_ATTACHED = '爱心值提现扣除';
  89. const POINT_MODE_FIGHT_GROUPS_TEAM_SUCCESS = 34;
  90. const POINT_MODE_FIGHT_GROUPS_TEAM_SUCCESS_ATTACHED = '拼团活动团长奖励';
  91. const POINT_MODE_DRAW_CHARGE_GET = 35;
  92. const POINT_MODE_DRAW_CHARGE_GRT_ATTACHED = '抽奖获得';
  93. const POINT_MODE_DRAW_CHARGE_DEDUCTION = 36;
  94. const POINT_MODE_DRAW_CHARGE_DEDUCTION_ATTACHED = '抽奖使用扣除';
  95. const POINT_MODE_DRAW_REWARD_GET = 37;
  96. const POINT_MODE_DRAW_REWARD_GRT_ATTACHED = '抽奖奖励';
  97. const POINT_MODE_CONVERT = 38;
  98. const POINT_MODE_CONVERT_ATTACHED = '兑换';
  99. const POINT_MODE_THIRD = 39;
  100. const POINT_MODE_THIRD_ATTACHED = '第三方变动';
  101. const POINT_MODE_CONSUMPTION_POINTS = 40;
  102. const POINT_MODE_CONSUMPTION_POINTS_ATTACHED = '消费充值奖励';
  103. const POINT_MODE_ROOM_MEMBER_ACTIVITY_POINTS = 41;
  104. const POINT_MODE_ROOM_MEMBER_ACTIVITY_POINTS_ATTACHED = '直播会员观看奖励';
  105. const POINT_MODE_ROOM_ACTIVITY_POINTS = 42;
  106. const POINT_MODE_ROOM_ACTIVITY_POINTS_ATTACHED = '直播间会员奖励';
  107. const POINT_MODE_ROOM_ANCHOR_ACTIVITY_POINTS = 43;
  108. const POINT_MODE_ROOM_ANCHOR_ACTIVITY_POINTS_ATTACHED = '直播主播奖励';
  109. const POINT_MODE_ROOM_REWARD_TRANSFER_POINTS = 44;
  110. const POINT_MODE_ROOM_REWARD_TRANSFER_POINTS_ATTACHED = '直播打赏-支出';
  111. const POINT_MODE_ROOM_REWARD_RECIPIENT_POINTS = 45;
  112. const POINT_MODE_ROOM_REWARD_RECIPIENT_POINTS_ATTACHED = '直播打赏-收入';
  113. const POINT_AUCTION_REWARD_RECIPIENT_POINTS = 46;
  114. const POINT_AUCTION_REWARD_RECIPIENT_POINTS_ATTACHED = '拍卖奖励';
  115. const POINT_INCOME_WITHDRAW_AWARD = 47;
  116. const POINT_INCOME_WITHDRAW_AWARD_ATTACHED = '收入提现奖励';
  117. const POINT_MODE_TRANSFER_BALANCE = 48;
  118. const POINT_MODE_TRANSFER_BALANCE_ATTACHED = "自动转入余额";
  119. const POINT_MODE_BIND_MOBILE = 49;
  120. const POINT_MODE_BIND_MOBILE_ATTACHED = "绑定手机号奖励";
  121. const POINT_MODE_LAYER_CHAIN = 50;
  122. const POINT_MODE_LAYER_CHAIN_ATTACHED = "关系链等级奖励";
  123. const POINT_MODE_LAYER_CHAIN_RECHARGE = 51;
  124. const POINT_MODE_LAYER_CHAIN_RECHARGE_ATTACHED = "层链充值";
  125. const POINT_MODE_DRAW_NEW_MEMBER_PRIZE = 52;
  126. const POINT_MODE_DRAW_NEW_MEMBER_PRIZE_ATTACHED = '新人奖奖励';
  127. const POINT_MODE_LAYER_CHAIN_QUESTIONNAIRE = 53;
  128. const POINT_MODE_LAYER_CHAIN_QUESTIONNAIRE_ATTACHED = "问卷奖励";
  129. const POINT_MODE_HEALTH_ASSESSMENT = 54;
  130. const POINT_MODE_HEALTH_ASSESSMENT_ATTACHED = "健康测评奖励";
  131. const POINT_INCOME_WITHDRAW_AWARD_SCALE = 55;
  132. const POINT_INCOME_WITHDRAW_AWARD_ATTACHED_SCALE = "收入提现奖励比例";
  133. const POINT_MODE_MICRO_COMMUNITIES = 56;
  134. const POINT_MODE_MICRO_COMMUNITIES_REWARD = "微社区发帖奖励";
  135. const POINT_MODE_CONFERENCE = 57;
  136. const POINT_MODE_CONFERENCE_REWARD = "会务活动签到奖励";
  137. const POINT_MODE_STORE_SHAREHOLDER = 58;
  138. const POINT_MODE_STORE_SHAREHOLDER_ATTACHED = "门店股东升级奖励";
  139. const POINT_MODE_ANSWER_REWARD = 59;
  140. const POINT_MODE_ANSWER_REWARD_ATTACHED = "短视频答题奖励";
  141. const POINT_MODE_ANSWER_REWARD_PARENT = 60;
  142. const POINT_MODE_ANSWER_REWARD_PARENT_ATTACHED = "短视频答题上级奖励";
  143. const POINT_MODE_POINT_EXCHANGE = 61;
  144. const POINT_MODE_POINT_EXCHANGE_ATTACHED = "蓝牛积分兑换";
  145. const POINT_MODE_SNATCH_REGIMENT = 62;
  146. const POINT_MODE_SNATCH_REGIMENT_ATTACHED = "抢团奖励";
  147. const POINT_MODE_FIGHT_GROUPS_LOTTERY_WIN = 63;
  148. const POINT_MODE_FIGHT_GROUPS_LOTTERY_WIN_ATTACHED = "拼团抽奖成功奖励";
  149. const POINT_MODE_FIGHT_GROUPS_LOTTERY_LOSER = 64;
  150. const POINT_MODE_FIGHT_GROUPS_LOTTERY_LOSER_ATTACHED = "拼团抽奖失败奖励";
  151. const POINT_MODE_COMMUNITY_RELAY = 65;
  152. const POINT_MODE_COMMUNITY_RELAY_ATTACHED = "社群接龙奖励";
  153. const POINT_MODE_REGISTRATION_REWARDS_PARENT = 66;
  154. const POINT_MODE_REGISTRATION_REWARDS_PARENT_ATTACHED = "分享会员注册奖励上级";
  155. const POINT_MODE_REGISTRATION_AWARD = 67;
  156. const POINT_MODE_REGISTRATION_AWARD_ATTACHED = "会员注册奖励";
  157. const POINT_MODE_OPEN_GROUP_DEDUCTION = 68;
  158. const POINT_MODE_OPEN_GROUP_DEDUCTION_ATTACHED = "拼团开团扣除";
  159. const POINT_MODE_EXCHANGE_REDPACK_CHALLENGE = 69;
  160. const POINT_MODE_EXCHANGE_REDPACK_CHALLENGE_ATTACHED = "兑换口令红包挑战次数";
  161. const POINT_MODE_CPS = 70;
  162. const POINT_MODE_CPS_ATTACHED = '聚合CPS奖励';
  163. const POINT_MODE_STAR_SPELL = 71;
  164. const POINT_MODE_STAR_SPELL_ATTACHED = "星拼乐奖励";
  165. const POINT_MODE_STAR_LOST_SPELL = 72;
  166. const POINT_MODE_STAR_SPELL_LOST_ATTACHED = "星拼乐参团抵扣";
  167. const TEAM_POINTS_REWARD = 73;
  168. const TEAM_POINTS_REWARD_ATTACHED = "经销商积分奖励";
  169. const POINT_MODE_LOCK_DRAW_REWARD = 74;
  170. const POINT_MODE_LOCK_DRAW_ATTACHED = "抽奖奖励";
  171. const POINT_MODE_BLIND_BOX_LOST = 75;
  172. const POINT_MODE_BLIND_BOX_LOST_ATTACHED = "盲盒提示抵扣";
  173. const POINT_MODE_CIRCLE_ADD_REWARD = 76;
  174. const POINT_MODE_CIRCLE_ADD_ATTACHED = "加入圈子奖励";
  175. const POINT_MODE_LINK_SERVICE_REWARD = 77;
  176. const POINT_MODE_LINK_SERVICE_ATTACHED = "积分对接奖励";
  177. const POINT_MODE_CONSUMER_REWARD = 78;
  178. const POINT_MODE_CONSUMER_REWARD_ATTACHED = "消费奖励";
  179. const POINT_MODE_STORE_RESERVE = 79;
  180. const POINT_MODE_STORE_RESERVE_ATTACHED = "门店预约商品";
  181. const POINT_MODE__ZHUZHER_CREDIT_REWARD = 80;
  182. const POINT_MODE_ZHUZHER_CREDIT_LOST_ATTACHED = "酒店积分对接";
  183. const POINT_MODE_DEPOSIT_LADDER_REWARD = 81;
  184. const POINT_MODE_DEPOSIT_LADDER_ATTACHED = "定金阶梯团定金奖励";
  185. const POINT_MODE_FIGHT_GROUP_LOTTERY_COMFORT_REWARD = 82;
  186. const POINT_MODE_FIGHT_GROUP_LOTTERY_COMFORT_ATTACHED = "安慰奖奖励";
  187. const POINT_MODE_LOVE_REDPACK = 83;
  188. const POINT_MODE_LOVE_REDPACK_ATTACHED = "爱心值转入";
  189. const POINT_MODE_ZHP_LOST = 84;
  190. const POINT_MODE_ZHP_LOST_ATTACHED = "珍惠拼";
  191. const POINT_MODE_TEAM_DIVIDEND = 85;
  192. const POINT_MODE_TEAM_DIVIDEND_ATTACHED = "经销商提成";
  193. const CPS_SUB_PLATFORM = 86;
  194. const CPS_SUB_PLATFORM_ATTACHED = "芸CPS奖励";
  195. const CPS_CANCAL = 87;
  196. const CPS_CANCAL_ATTACHED = "CPS退款扣除积分";
  197. const POINT_MODE_COUPON_STORE_REWARD = 88;
  198. const POINT_MODE_COUPON_STORE_REWARD_ATTACHED = '消费券联盟核销奖励';
  199. const POINT_MODE_NEW_MEDIA_LIKE = 90;
  200. const POINT_MODE_NEW_MEDIA_LIKE_ATTACHED = '新媒体-点赞奖励';
  201. const POINT_MODE_NEW_MEDIA_ATTENTION = 91;
  202. const POINT_MODE_NEW_MEDIA_ATTENTION_ATTACHED = '新媒体-关注奖励';
  203. const POINT_MODE_RECHARGE_CODE = 92;
  204. const POINT_MODE_RECHARGE_CODE_ATTACHED = '充值码充值';
  205. const POINT_MODE_STORE = 93; //收银台奖励
  206. const POINT_MODE_STORE_ATTACHED = '门店奖励';
  207. const POINT_MODE_HOTEL = 94; //酒店奖励
  208. const POINT_MODE_HOTEL_ATTACHED = '酒店奖励';
  209. const POINT_MODE_NEW_MEDIA_COMMENT = 95;
  210. const POINT_MODE_NEW_MEDIA_COMMENT_ATTACHED = '新媒体-评论奖励';
  211. const POINT_MODE_NEW_MEDIA_REWARD = 96;
  212. const POINT_MODE_NEW_MEDIA_REWARD_ATTACHED = '新媒体-打赏奖励';
  213. const POINT_MODE_NEW_MEDIA_SUPERIOR = 97;
  214. const POINT_MODE_NEW_MEDIA_SUPERIOR_ATTACHED = '新媒体-上级奖励';
  215. const POINT_MODE_NEW_MEDIA_EXCHANGE = 98;
  216. const POINT_MODE_NEW_MEDIA_EXCHANGE_ATTACHED = '新媒体-兑换流量值';
  217. const POINT_MODE_NEW_MEDIA_READ = 99;
  218. const POINT_MODE_NEW_MEDIA_READ_ATTACHED = '新媒体-阅读奖励';
  219. const POINT_MODE_NEW_MEDIA_FORWARD = 100;
  220. const POINT_MODE_NEW_MEDIA_FORWARD_ATTACHED = '新媒体-转发奖励';
  221. const POINT_MODE_NEW_MEDIA_FAVORITES = 101;
  222. const POINT_MODE_NEW_MEDIA_FAVORITES_ATTACHED = '新媒体-收藏奖励';
  223. const GROUP_WORK_AWARD = 102;
  224. const GROUP_WORK_AWARD_ATTACHED = '0.1元拼-未拼中奖励';
  225. const GROUP_WORK_HEAD_AWARD = 103;
  226. const GROUP_WORK_HEAD_AWARD_ATTACHED = '0.1元拼-团长奖励';
  227. const GROUP_WORK_PARENT_AWARD = 104;
  228. const GROUP_WORK_PARENT_AWARD_ATTACHED = '0.1元拼-未拼中上级奖励';
  229. const POINT_MODE_VIDEO_WATCH_REWARD = 105;
  230. const POINT_MODE_VIDEO_WATCH_REWARD_ATTACHED = '视频奖励-观看视频';
  231. const POINT_MODE_VIDEO_TEAM_REWARD = 106;
  232. const POINT_MODE_VIDEO_TEAM_REWARD_ATTACHED = '视频奖励-团队上级奖励';
  233. const POINT_MODE_FLYERS_ADVERTISE = 107;
  234. const POINT_MODE_FLYERS_ADVERTISE_ATTACHED = 'APP广告-广告奖励';
  235. const POINT_MODE_POINT_MIDDLE_SYNC = 108;
  236. const POINT_MODE_POINT_MIDDLE_SYNC_ATTACHED = '积分中台-积分同步';
  237. const POINT_MODE_GOODS_REFUND = 109; //商品赠送退回
  238. const POINT_MODE_GOODS_REFUND_ATTACHED = '商品赠送退回';
  239. const POINT_MODE_ORDER_REFUND = 110; //订单赠送退回
  240. const POINT_MODE_ORDER_REFUND_ATTACHED = '订单赠送退回';
  241. const POINT_MODE_LOVE_TRANSFER = 111; //订单赠送退回
  242. const POINT_MODE_LOVE_TRANSFER_ATTACHED = '转赠-转入';//爱心值转赠
  243. const POINT_MODE_QQ_ADVERTISE_POINT = 112;
  244. const POINT_MODE_QQ_ADVERTISE_POINT_ATTACHED = '优量汇-奖励扣除';
  245. const POINT_MODE_BALANCE_RECHARGE_REWARD = 113; //余额充值奖励
  246. const POINT_MODE_BALANCE_RECHARGE_REWARD_ATTACHED = '余额充值奖励';
  247. const POINT_MODE_ORDER_SHOPKEEPER_REWARD = 114; //门店收银台消费奖励店长积分
  248. const POINT_MODE_ORDER_SHOPKEEPER_REWARD_ATTACHED = '门店消费奖励店长';
  249. const POINT_MODE_HAND_SIGN_PROTOCOL = 115;
  250. const POINT_MODE_HAND_SIGN_PROTOCOL_ATTACHED = '手签协议奖励';
  251. const POINT_MODE_GROUP_CHAT_ACTIVITY_REWARD = 116;// 群拓客活动奖励
  252. const POINT_MODE_GROUP_CHAT_ACTIVITY_REWARD_ATTACHED = '群拓客活动奖励';
  253. const POINT_MODE_CUSTOMER_INCREASE_REWARD = 117; //企业微信好友裂变活动奖励
  254. const POINT_MODE_CUSTOMER_INCREASE_REWARD_ATTACHED = '企业微信好友裂变活动奖励';
  255. const INTEGRAL_POINT = 118;
  256. const INTEGRAL_POINT_ATTACHED = '消费积分转化积分';
  257. const YS_SYSTEM_POINT_SYNC = 119;
  258. const YS_SYSTEM_POINT_SYNC_NAME = '线下同步';
  259. const POINT_MODE_VIDEO_WATCH_TAKE = 120;
  260. const POINT_MODE_VIDEO_WATCH_TAKE_ATTACHED = '视频奖励-扣除积分';
  261. const POINT_MODE_PARKING_PAY_COUPON = 121;
  262. const POINT_MODE_PARKING_PAY_COUPON_ATTACHED = '停车缴费兑换优惠券';
  263. const POINT_MODE_LOVE_WITHDRAW_FINAL_REDUCE = 122;
  264. const POINT_MODE_LOVE_WITHDRAW_FINAL_REDUCE_ATTACHED = '爱心值提现扣除(实际到账)';
  265. const POINT_MODE_STORE_BALANCE_RECHARGE = 123;
  266. const POINT_MODE_STORE_BALANCE_RECHARGE_ATTACHED = '门店余额充值奖励';
  267. const POINT_MODE_YWM_FIGHT_GROUPS_TEAM_SUCCESS = 124;
  268. const POINT_MODE_YWM_FIGHT_GROUPS_TEAM_SUCCESS_ATTACHED = '(新拼团)拼团活动团长奖励';
  269. const POINT_MODE_LOVE_BUY_DEDUCTE_REDUCE = 125;
  270. const POINT_MODE_LOVE_BUY_DEDUCTE_REDUCE_ATTACHED = '爱心值购物抵扣扣除';
  271. const POINT_MODE_SUBSCRIPTION = 126;
  272. const POINT_MODE_SUBSCRIPTION_ATTACHED = '认购-认购活动';
  273. const POINT_MODE_ROOM_RED_PACK_RECEIVE = 127;
  274. const POINT_MODE_ROOM_RED_PACK_RECEIVE_ATTACHED = '直播领取拼手气红包';
  275. const POINT_MODE_ROOM_RED_PACK_REFUND = 128;
  276. const POINT_MODE_ROOM_RED_PACK_REFUND_ATTACHED = '直播拼手气红包返还';
  277. const POINT_MODE_ROOM_RED_PACK_SEND = 129;
  278. const POINT_MODE_ROOM_RED_PACK_SEND_ATTACHED = '直播发送拼手气红包扣除';
  279. const POINT_MODE_LOVE_FROZE_ACTIVE = 130;
  280. const POINT_MODE_LOVE_FROZE_ACTIVE_ATTACHED = '冻结爱心值激活';
  281. const POINT_MODE_NEWCOMER_FISSION_ACTIVE = 131;
  282. const POINT_MODE_NEWCOMER_FISSION_ACTIVE_ATTACHED = '新客裂变';
  283. const POINT_MODE_TRANSFER_INTEGRAL = 132;
  284. const POINT_MODE_TRANSFER_INTEGRAL_ATTACHED = '积分转化消费积分';
  285. const POINT_MODE_BLB_CASHIER = 133;
  286. const POINT_MODE_BLB_CASHIER_ATTACHED = '收银系统积分同步';
  287. const FACE_TO_FACE_BUY = 134;
  288. const FACE_TO_FACE_BUY_ATTACHED = '面对面服务购买';
  289. const FACE_TO_FACE_MEMBER_GIFT = 135;
  290. const FACE_TO_FACE_MEMBER_GIFT_ATTACHED = '面对面服务购买赠送';
  291. const FACE_TO_FACE_MERCHANT_GIFT = 136;
  292. const FACE_TO_FACE_MERCHANT_GIFT_ATTACHED = '面对面服务出售';
  293. const POINT_EXCHANGE_OUT = 139;
  294. const POINT_EXCHANGE_OUT_ATTACHED = '积分通转出';
  295. const POINT_EXCHANGE_IN = 140;
  296. const POINT_EXCHANGE_IN_ATTACHED = '积分通转入';
  297. const POINT_MODE_FIRST_PARENT_REWARD = 141;
  298. const POINT_MODE_FIRST_PARENT_REWARD_ATTACHED = '购物赠送上级(一级)';
  299. const POINT_MODE_SECOND_PARENT_REWARD = 142;
  300. const POINT_MODE_SECOND_PARENT_REWARD_ATTACHED = '购物赠送上级(二级)';
  301. const POINT_MODE_FIRST_PARENT_REFUND = 143;
  302. const POINT_MODE_FIRST_PARENT_REFUND_ATTACHED = '商品退款上级(一级)赠送回退';
  303. const POINT_MODE_SECOND_PARENT_REFUND = 144;
  304. const POINT_MODE_SECOND_PARENT_REFUND_ATTACHED = '商品退款上级(二级)赠送回退';
  305. const POINT_MODE_POINT_EXCHANGE_LOVE = 145;
  306. const POINT_MODE_POINT_EXCHANGE_LOVE_ATTACHED = '手动转入' . (LOVE_NAME ?: '爱心值');
  307. const POINT_MODE_POOL_RESET = 146;
  308. const POINT_MODE_POOL_RESET_ATTACHED = '清零设置-积分清零';
  309. const ACTIVITY_REWARD_INTEGRAL = 147;
  310. const ACTIVITY_REWARD_INTEGRAL_ATTACHED = '拓客活动积分奖励';
  311. const POINT_MODE_AREA_DIVIDEND = 148;
  312. const POINT_MODE_AREA_DIVIDEND_ATTACHED = '区域分红转入';
  313. const SIGN_BUY_ALLOWANCE = 156;
  314. const SIGN_BUY_ALLOWANCE_NAME = '签到购物津贴';
  315. const POINT_MODE_LOVE_SPEED_POOL_CLEAR = 149;
  316. const POINT_MODE_LOVE_SPEED_POOL_CLEAR_ATTACHED = '加速池扣除(积分消耗)';
  317. const POINT_MODE_MEMBER_MERGE = 150;
  318. const POINT_MODE_MEMBER_MERGE_ATTACHED = '会员合并转入';
  319. const POINT_MODE_NEW_BLIND_BOX_EXCHANGE = 151;
  320. const POINT_MODE_NEW_BLIND_BOX_EXCHANGE_ATTACHED = '新盲盒兑换';
  321. const POINT_MODE_AREA_DIVIDEND_AWARD = 153;
  322. const POINT_MODE_AREA_DIVIDEND_AWARD_ATTACHED = '区域分红奖励';
  323. const POINT_MODE_AREA_MERCHANT_AWARD = 154;
  324. const POINT_MODE_AREA_MERCHANT_AWARD_ATTACHED = '区代招商奖励';
  325. const POINT_MODE_FACE_TO_FACE_AWARD = 155;
  326. const POINT_MODE_FACE_TO_FACE_AWARD_ATTACHED = '面对面服务奖励';
  327. const STAFF_AUDIT_REWARD = 157;
  328. const STAFF_AUDIT_REWARD_ATTACHED = '员工审批奖励';
  329. const STATIC_POINT_DIVIDEND = 158;
  330. const STATIC_POINT_DIVIDEND_ATTACHED = STATIC_POINT_DIVIDEND_NAME ?: '静态积分分红';
  331. /**
  332. * 上面的常量写死在这里,所以导致控制器获取这些业务类型的时候也要把这边的常量拿过去,麻烦新增一个业务类型的常量在这里的时候往
  333. * app\backend\modules\finance\controllers\PointLogController这个控制器中也加入这些常量,否则后台前端会缺失业务类型
  334. **/
  335. const POINT = 0;
  336. public $point_data = array();
  337. public $member_point;
  338. protected $member;
  339. private $is_change = 1;
  340. public static $otherSource = [];
  341. /*
  342. * $data = [
  343. * 'point_income_type' //失去还是获得 POINT_INCOME_GET OR POINT_INCOME_LOSE
  344. * 'point_mode' // 1、2、3、4、5 收入方式
  345. * 'member_id' //会员id
  346. * 'point' //获得or支出多少积分
  347. * //'before_point' //获取or支出 之前 x积分
  348. * //'after_point' //获得or支出 之后 x积分
  349. * 'remark' //备注
  350. * ]
  351. * */
  352. public function __construct(array $point_data)
  353. {
  354. if (!isset($point_data['point'])) {
  355. return;
  356. }
  357. event($event = new PointChangeCreatingEvent($point_data));
  358. $this->is_change = $event->is_change;
  359. $point_data = $event->changeData;
  360. $this->point_data = $point_data;
  361. $this->point_data['point'] = round($this->point_data['point'], 2);
  362. //$member = Member::getMemberById($point_data['member_id']);
  363. $this->member = $this->getMemberModel();
  364. $this->member_point = $this->member->credit1 ? $this->member->credit1 : 0; //会员信息有可能找不到,默认给个0
  365. }
  366. public static function addSource($key, $value)
  367. {
  368. if (!empty(self::getModeAttribute($key))) {
  369. throw new ShopException('积分常量重复【' . $key . '--' . $value . '】');
  370. }
  371. self::$otherSource[$key] = $value;
  372. }
  373. private function getMemberModel()
  374. {
  375. $member_id = $this->point_data['member_id'];
  376. $memberModel = Member::uniacid()->where('uid', $member_id)->lockForUpdate()->first();
  377. return $memberModel;
  378. }
  379. /**
  380. * Update member credit1.
  381. *
  382. * @return PointLog|bool
  383. * @throws ShopException
  384. */
  385. public function changePoint($relation_id = '')
  386. {
  387. if ($relation_id) {
  388. $this->point_data['relation_id'] = $relation_id;
  389. }
  390. $point = floor($this->point_data['point'] * 100) / 100;
  391. if ($this->point_data['point_income_type'] == self::POINT_INCOME_LOSE) {
  392. $point = floor(abs($this->point_data['point']) * 100) / 100;
  393. }
  394. if ($point < 0.01) {
  395. return false;
  396. }
  397. if (!$this->is_change) {
  398. \Log::debug('会员等级积分限制不修改', $this->point_data);
  399. return true;
  400. }
  401. $this->getAfterPoint();
  402. Member::updateMemberInfoById(['credit1' => $this->member_point], $this->point_data['member_id']);
  403. return $this->addLog();
  404. }
  405. /**
  406. * 该方法处理扣除积分大于剩余积分按积分归零算。不抛出异常需要积分明细记录
  407. */
  408. public function deductPoint()
  409. {
  410. $point = floor(abs($this->point_data['point']) * 100) / 100;
  411. if (bccomp($point, 0.01, 2) === -1) {
  412. return false;
  413. }
  414. $this->point_data['before_point'] = $this->member_point;
  415. $this->member_point = max(bcadd($this->member_point, $this->point_data['point'], 2), 0);
  416. $this->point_data['after_point'] = round($this->member_point, 2);
  417. Member::updateMemberInfoById(['credit1' => $this->member_point], $this->point_data['member_id']);
  418. return $this->addLog();
  419. }
  420. public function addLog()
  421. {
  422. //$this->point_data['uniacid'] = \YunShop::app()->uniacid;
  423. $uniacid = \YunShop::app()->uniacid;
  424. $this->point_data['thirdStatus'] = empty($this->point_data['thirdStatus']) ? 1 : $this->point_data['thirdStatus'];
  425. $this->point_data['uniacid'] = !empty($uniacid) ? $uniacid : $this->point_data['uniacid'];
  426. $point_model = PointLog::create($this->point_data);
  427. if (!isset($point_model)) {
  428. return false;
  429. }
  430. event(
  431. new MemberPointChangeEvent(
  432. $this->member,
  433. $this->point_data,
  434. $this->getModeAttribute($this->point_data['point_mode'])
  435. )
  436. );
  437. $this->messageNotice();
  438. $this->checkFloorNotice();
  439. return $point_model;
  440. }
  441. public function messageNotice()
  442. {
  443. if ($this->point_data['point'] == 0) {
  444. return;
  445. }
  446. $template_id = \Setting::get('shop.notice')['point_change'];
  447. $point_status = $this->getModeAttribute($this->point_data['point_mode']);
  448. $pointNotice = new PointChangeNotice($this->member, $this->point_data, $point_status);
  449. $pointNotice->sendMessage();
  450. return;
  451. if (!$template_id) {
  452. return;
  453. }
  454. $params = [
  455. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  456. ['name' => '昵称', 'value' => $this->member['nickname']],
  457. ['name' => '时间', 'value' => date('Y-m-d H:i', time())],
  458. ['name' => '积分变动金额', 'value' => $this->point_data['point']],
  459. ['name' => '积分变动类型', 'value' => $this->getModeAttribute($this->point_data['point_mode'])],
  460. ['name' => '变动后积分数值', 'value' => $this->point_data['after_point']]
  461. ];
  462. $news_link = MessageTemp::find($template_id)->news_link;
  463. $news_link = $news_link ?: '';
  464. event(new MessageEvent($this->member->uid, $template_id, $params, $url = $news_link));
  465. }
  466. /**
  467. * 检测是否超过设置的下限并发送消息通知
  468. * @return bool
  469. */
  470. public function checkFloorNotice()
  471. {
  472. try {
  473. if ($this->point_data['point'] == 0) {
  474. return true;
  475. }
  476. $template_id = \Setting::get('shop.notice')['point_deficiency'];
  477. if (!$template_id) {
  478. return true;
  479. }
  480. $set = Setting::get('point.set');
  481. if (!$set['point_floor']) {
  482. return true;
  483. }
  484. if ($set['point_floor_on'] == 0 || empty($set['point_message_type']) == true || in_array(
  485. $set['point_message_type'],
  486. [1, 2, 3]
  487. ) != true) {
  488. return true;
  489. }
  490. //指定会员分组
  491. if ($set['point_message_type'] == 3) {
  492. if ($this->member->yzMember->group_id != $set['group_type']) {
  493. return true;
  494. }
  495. }
  496. //指定会员等级
  497. if ($set['point_message_type'] == 2) {
  498. //这个会员属于当前的这个等级
  499. if ($this->member->yzMember->level_id != $set['level_limit']) {
  500. return true;
  501. }
  502. }
  503. //指定会员
  504. if ($set['point_message_type'] == 1) {
  505. if (in_array($this->member->uid, explode(',', $set['uids'])) != true) {
  506. return true;
  507. }
  508. }
  509. $pointNotice = new PointDeficiencyNotice($this->member, $this->point_data);
  510. $pointNotice->sendMessage();
  511. return;
  512. if ($this->point_data['after_point'] > $set['point_floor']) {
  513. $params = [
  514. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  515. ['name' => '昵称', 'value' => $this->member['nickname']],
  516. ['name' => '时间', 'value' => date('Y-m-d H:i', time())],
  517. ['name' => '通知额度', 'value' => $set['point_floor']],
  518. ['name' => '当前积分', 'value' => $this->point_data['after_point']],
  519. ];
  520. $news_link = MessageTemp::find($template_id)->news_link;
  521. $news_link = $news_link ?: '';
  522. event(new MessageEvent($this->member->uid, $template_id, $params, $url = $news_link));
  523. } else {
  524. return true;
  525. }
  526. } catch (\Exception $e) {
  527. \Log::debug('抛异常了');
  528. return true;
  529. }
  530. }
  531. /**
  532. * 获取变化之后的积分
  533. *
  534. * @throws ShopException
  535. */
  536. public function getAfterPoint()
  537. {
  538. $this->point_data['before_point'] = $this->member_point;
  539. $this->member_point += $this->point_data['point'];
  540. if ($this->member_point < PointService::POINT) {
  541. throw new ShopException('积分不足!!!');
  542. //$this->member_point = PointService::POINT;
  543. }
  544. $this->point_data['after_point'] = round($this->member_point, 2);
  545. }
  546. public function getModeAttribute($mode)
  547. {
  548. $mode_attribute = '';
  549. switch ($mode) {
  550. case (1):
  551. $mode_attribute = self::POINT_MODE_GOODS_ATTACHED;
  552. break;
  553. case (2):
  554. $mode_attribute = self::POINT_MODE_ORDER_ATTACHED;
  555. break;
  556. case (3):
  557. $mode_attribute = self::POINT_MODE_POSTER_ATTACHED;
  558. break;
  559. case (4):
  560. $mode_attribute = self::POINT_MODE_ARTICLE_ATTACHED;
  561. break;
  562. case (5):
  563. $mode_attribute = self::POINT_MODE_ADMIN_ATTACHED;
  564. break;
  565. case (6):
  566. $mode_attribute = self::POINT_MODE_BY_ATTACHED;
  567. break;
  568. case (7):
  569. $mode_attribute = self::POINT_MODE_TEAM_ATTACHED;
  570. break;
  571. case (8):
  572. $mode_attribute = self::POINT_MODE_LIVE_ATTACHED;
  573. break;
  574. case (9):
  575. $mode_attribute = self::POINT_MODE_CASHIER_ATTACHED;
  576. break;
  577. case (10):
  578. $mode_attribute = self::POINT_MODE_AIR_ATTACHED;
  579. break;
  580. case (11):
  581. $mode_attribute = self::POINT_MODE_RECHARGE_ATTACHED;
  582. break;
  583. case (12):
  584. $mode_attribute = self::POINT_MODE_FlOW_ATTACHED;
  585. break;
  586. case (13):
  587. $mode_attribute = self::POINT_MODE_TRANSFER_ATTACHED;
  588. break;
  589. case (14):
  590. $mode_attribute = self::POINT_MODE_RECIPIENT_ATTACHED;
  591. break;
  592. case (15):
  593. $mode_attribute = self::POINT_MODE_ROLLBACK_ATTACHED;
  594. break;
  595. case (16):
  596. $mode_attribute = self::POINT_MODE_COUPON_DEDUCTION_AWARD_ATTACHED;
  597. break;
  598. case (17):
  599. $mode_attribute = self::POINT_MODE_TASK_REWARD_ATTACHED;
  600. break;
  601. case (18):
  602. $mode_attribute = self::POINT_MODE_TRANSFER_LOVE_ATTACHED;
  603. break;
  604. case (19):
  605. $mode_attribute = trans('Yunshop\Sign::sign.plugin_name') ? trans(
  606. 'Yunshop\Sign::sign.plugin_name'
  607. ) . '奖励' : self::POINT_MODE_SIGN_REWARD_ATTACHED;
  608. break;
  609. case (20):
  610. $mode_attribute = self::POINT_MODE_COURIER_REWARD_ATTACHED;
  611. break;
  612. case (22):
  613. $mode_attribute = self::POINT_MODE_COMMUNITY_REWARD_ATTACHED;
  614. break;
  615. case (23):
  616. $mode_attribute = self::POINT_MODE_CREATE_ACTIVITY_ATTACHED;
  617. break;
  618. case (24):
  619. $mode_attribute = self::POINT_MODE_ACTIVITY_OVERDUE_ATTACHED;
  620. break;
  621. case (25):
  622. $mode_attribute = self::POINT_MODE_RECEIVE_ACTIVITY_ATTACHED;
  623. break;
  624. case (26):
  625. $mode_attribute = self::POINT_MODE_RECEIVE_OVERDUE_ATTACHED;
  626. break;
  627. case (27):
  628. $mode_attribute = self::POINT_MODE_COMMISSION_TRANSFER_ATTACHED;
  629. break;
  630. case (28):
  631. $mode_attribute = self::POINT_MODE_HOTEL_CASHIER_ATTACHED;
  632. break;
  633. case (29):
  634. $mode_attribute = self::POINT_MODE_EXCEL_RECHARGE_ATTACHED;
  635. break;
  636. case (92):
  637. $mode_attribute = self::POINT_MODE_RECHARGE_CODE_ATTACHED;
  638. break;
  639. case (93):
  640. $mode_attribute = self::POINT_MODE_STORE_ATTACHED;
  641. break;
  642. case (94):
  643. $mode_attribute = self::POINT_MODE_HOTEL_ATTACHED;
  644. break;
  645. case (30):
  646. $mode_attribute = self::POINT_MODE_CARD_VISIT_REWARD_ATTACHED;
  647. break;
  648. case (31):
  649. $mode_attribute = self::POINT_MODE_CARD_REGISTER_REWARD_ATTACHED;
  650. break;
  651. case (32):
  652. $mode_attribute = self::POINT_MODE_PRESENTATION_ATTACHED;
  653. break;
  654. case (33):
  655. if (app('plugins')->isEnabled('love')) {
  656. $mode_attribute = \Yunshop\Love\Common\Services\SetService::getLoveName() ? \Yunshop\Love\Common\Services\SetService::getLoveName() . '提现扣除' : self::POINT_MODE_LOVE_WITHDRAWAL_DEDUCTION_ATTACHED;
  657. } else {
  658. $mode_attribute = self::POINT_MODE_LOVE_WITHDRAWAL_DEDUCTION_ATTACHED;
  659. }
  660. break;
  661. case (34):
  662. $mode_attribute = self::POINT_MODE_FIGHT_GROUPS_TEAM_SUCCESS_ATTACHED;
  663. break;
  664. case (35):
  665. $mode_attribute = self::POINT_MODE_DRAW_CHARGE_GRT_ATTACHED;
  666. break;
  667. case (36):
  668. $mode_attribute = self::POINT_MODE_DRAW_CHARGE_DEDUCTION_ATTACHED;
  669. break;
  670. case (37):
  671. $mode_attribute = self::POINT_MODE_DRAW_REWARD_GRT_ATTACHED;
  672. break;
  673. case (38):
  674. $mode_attribute = self::POINT_MODE_CONVERT_ATTACHED;
  675. break;
  676. case (39):
  677. $mode_attribute = self::POINT_MODE_THIRD_ATTACHED;
  678. break;
  679. case (40):
  680. $mode_attribute = self::POINT_MODE_CONSUMPTION_POINTS_ATTACHED;
  681. break;
  682. case (41):
  683. $mode_attribute = self::POINT_MODE_ROOM_MEMBER_ACTIVITY_POINTS_ATTACHED;
  684. break;
  685. case (42):
  686. $mode_attribute = self::POINT_MODE_ROOM_ACTIVITY_POINTS_ATTACHED;
  687. break;
  688. case (43):
  689. $mode_attribute = self::POINT_MODE_ROOM_ANCHOR_ACTIVITY_POINTS_ATTACHED;
  690. break;
  691. case (44):
  692. $mode_attribute = self::POINT_MODE_ROOM_REWARD_TRANSFER_POINTS_ATTACHED;
  693. break;
  694. case (45):
  695. $mode_attribute = self::POINT_MODE_ROOM_REWARD_RECIPIENT_POINTS_ATTACHED;
  696. break;
  697. case (46):
  698. $mode_attribute = self::POINT_AUCTION_REWARD_RECIPIENT_POINTS_ATTACHED;
  699. break;
  700. case (47):
  701. $mode_attribute = self::POINT_INCOME_WITHDRAW_AWARD_ATTACHED;
  702. break;
  703. case (48):
  704. $mode_attribute = self::POINT_MODE_TRANSFER_BALANCE_ATTACHED;
  705. break;
  706. case (49):
  707. $mode_attribute = self::POINT_MODE_BIND_MOBILE_ATTACHED;
  708. break;
  709. case 50:
  710. $mode_attribute = self::POINT_MODE_LAYER_CHAIN_ATTACHED;
  711. break;
  712. case 51:
  713. $mode_attribute = self::POINT_MODE_LAYER_CHAIN_RECHARGE_ATTACHED;
  714. break;
  715. case 52:
  716. $mode_attribute = self::POINT_MODE_DRAW_NEW_MEMBER_PRIZE_ATTACHED;
  717. break;
  718. case 53:
  719. $mode_attribute = self::POINT_MODE_LAYER_CHAIN_QUESTIONNAIRE_ATTACHED;
  720. break;
  721. case 54:
  722. $mode_attribute = self::POINT_MODE_HEALTH_ASSESSMENT_ATTACHED;
  723. break;
  724. case 55:
  725. $mode_attribute = self::POINT_INCOME_WITHDRAW_AWARD_ATTACHED_SCALE;
  726. break;
  727. case 56:
  728. $mode_attribute = self::POINT_MODE_MICRO_COMMUNITIES_REWARD;
  729. break;
  730. case 57:
  731. $mode_attribute = self::POINT_MODE_CONFERENCE_REWARD;
  732. break;
  733. case 58:
  734. $mode_attribute = self::POINT_MODE_STORE_SHAREHOLDER_ATTACHED;
  735. break;
  736. case 59:
  737. $mode_attribute = self::POINT_MODE_ANSWER_REWARD_ATTACHED;
  738. break;
  739. case 60:
  740. $mode_attribute = self::POINT_MODE_ANSWER_REWARD_PARENT_ATTACHED;
  741. break;
  742. case 61:
  743. $mode_attribute = self::POINT_MODE_POINT_EXCHANGE_ATTACHED;
  744. break;
  745. case 62:
  746. $mode_attribute = self::POINT_MODE_SNATCH_REGIMENT_ATTACHED;
  747. break;
  748. case 63:
  749. $mode_attribute = self::POINT_MODE_FIGHT_GROUPS_LOTTERY_WIN_ATTACHED;
  750. break;
  751. case 64:
  752. $mode_attribute = self::POINT_MODE_FIGHT_GROUPS_LOTTERY_LOSER_ATTACHED;
  753. break;
  754. case 65:
  755. $mode_attribute = self::POINT_MODE_COMMUNITY_RELAY_ATTACHED;
  756. break;
  757. case 66:
  758. $mode_attribute = self::POINT_MODE_REGISTRATION_REWARDS_PARENT_ATTACHED;
  759. break;
  760. case 67:
  761. $mode_attribute = self::POINT_MODE_REGISTRATION_AWARD_ATTACHED;
  762. break;
  763. case 68:
  764. $mode_attribute = self::POINT_MODE_OPEN_GROUP_DEDUCTION_ATTACHED;
  765. break;
  766. case 69:
  767. $mode_attribute = self::POINT_MODE_EXCHANGE_REDPACK_CHALLENGE_ATTACHED;
  768. break;
  769. case 70:
  770. $mode_attribute = self::POINT_MODE_CPS_ATTACHED;
  771. break;
  772. case 71:
  773. $mode_attribute = self::POINT_MODE_STAR_SPELL_ATTACHED;
  774. break;
  775. case 72:
  776. $mode_attribute = self::POINT_MODE_STAR_SPELL_LOST_ATTACHED;
  777. break;
  778. case 73:
  779. $mode_attribute = self::TEAM_POINTS_REWARD_ATTACHED;
  780. break;
  781. case 74:
  782. $mode_attribute = self::POINT_MODE_LOCK_DRAW_ATTACHED;
  783. break;
  784. case 75:
  785. $mode_attribute = self::POINT_MODE_BLIND_BOX_LOST;
  786. break;
  787. case 76:
  788. $mode_attribute = self::POINT_MODE_CIRCLE_ADD_ATTACHED;
  789. break;
  790. case 77:
  791. $mode_attribute = self::POINT_MODE_LINK_SERVICE_ATTACHED;
  792. break;
  793. case 78:
  794. $mode_attribute = self::POINT_MODE_STORE_RESERVE_ATTACHED;
  795. break;
  796. case 80:
  797. $mode_attribute = self::POINT_MODE_ZHUZHER_CREDIT_LOST_ATTACHED;
  798. break;
  799. case 84:
  800. $mode_attribute = self::POINT_MODE_ZHP_LOST_ATTACHED;
  801. break;
  802. case 82:
  803. $mode_attribute = self::POINT_MODE_FIGHT_GROUP_LOTTERY_COMFORT_ATTACHED;
  804. break;
  805. case 83:
  806. $mode_attribute = self::POINT_MODE_LOVE_REDPACK_ATTACHED;
  807. break;
  808. case 85:
  809. $mode_attribute = self::POINT_MODE_TEAM_DIVIDEND_ATTACHED;
  810. break;
  811. case 86:
  812. $mode_attribute = self::CPS_SUB_PLATFORM_ATTACHED;
  813. break;
  814. case 87:
  815. $mode_attribute = self::CPS_CANCAL_ATTACHED;
  816. break;
  817. case (88):
  818. $mode_attribute = self::POINT_MODE_COUPON_STORE_REWARD_ATTACHED;
  819. break;
  820. case 90:
  821. $mode_attribute = self::POINT_MODE_NEW_MEDIA_LIKE_ATTACHED;
  822. break;
  823. case 91:
  824. $mode_attribute = self::POINT_MODE_NEW_MEDIA_ATTENTION_ATTACHED;
  825. break;
  826. case 95:
  827. $mode_attribute = self::POINT_MODE_NEW_MEDIA_COMMENT_ATTACHED;
  828. break;
  829. case 96:
  830. $mode_attribute = self::POINT_MODE_NEW_MEDIA_REWARD_ATTACHED;
  831. break;
  832. case 97:
  833. $mode_attribute = self::POINT_MODE_NEW_MEDIA_SUPERIOR_ATTACHED;
  834. break;
  835. case 98:
  836. $mode_attribute = self::POINT_MODE_NEW_MEDIA_EXCHANGE_ATTACHED;
  837. break;
  838. case 99:
  839. $mode_attribute = self::POINT_MODE_NEW_MEDIA_READ_ATTACHED;
  840. break;
  841. case 100:
  842. $mode_attribute = self::POINT_MODE_NEW_MEDIA_FORWARD_ATTACHED;
  843. break;
  844. case 101:
  845. $mode_attribute = self::POINT_MODE_NEW_MEDIA_FAVORITES_ATTACHED;
  846. break;
  847. case (102):
  848. $mode_attribute = self::GROUP_WORK_AWARD_ATTACHED;
  849. break;
  850. case (103):
  851. $mode_attribute = self::GROUP_WORK_HEAD_AWARD_ATTACHED;
  852. break;
  853. case (104):
  854. $mode_attribute = self::GROUP_WORK_PARENT_AWARD_ATTACHED;
  855. break;
  856. case (105):
  857. $mode_attribute = self::POINT_MODE_VIDEO_WATCH_REWARD_ATTACHED;
  858. break;
  859. case (106):
  860. $mode_attribute = self::POINT_MODE_VIDEO_TEAM_REWARD_ATTACHED;
  861. break;
  862. case (107):
  863. $mode_attribute = self::POINT_MODE_FLYERS_ADVERTISE_ATTACHED;
  864. break;
  865. case (108):
  866. $mode_attribute = self::POINT_MODE_POINT_MIDDLE_SYNC_ATTACHED;
  867. break;
  868. case (109):
  869. $mode_attribute = self::POINT_MODE_GOODS_REFUND_ATTACHED;
  870. break;
  871. case (110):
  872. $mode_attribute = self::POINT_MODE_ORDER_REFUND_ATTACHED;
  873. break;
  874. case (112):
  875. $mode_attribute = self::POINT_MODE_QQ_ADVERTISE_POINT_ATTACHED;
  876. break;
  877. case (111):
  878. $mode_attribute = self::POINT_MODE_LOVE_TRANSFER_ATTACHED;
  879. break;
  880. case (113):
  881. $mode_attribute = self::POINT_MODE_BALANCE_RECHARGE_REWARD_ATTACHED;
  882. break;
  883. case (114):
  884. $mode_attribute = self::POINT_MODE_ORDER_SHOPKEEPER_REWARD_ATTACHED;
  885. break;
  886. case (115):
  887. $mode_attribute = self::POINT_MODE_HAND_SIGN_PROTOCOL_ATTACHED;
  888. break;
  889. case (116):
  890. $mode_attribute = self::POINT_MODE_GROUP_CHAT_ACTIVITY_REWARD_ATTACHED;
  891. break;
  892. case (117):
  893. $mode_attribute = self::POINT_MODE_CUSTOMER_INCREASE_REWARD_ATTACHED;
  894. break;
  895. case (118):
  896. $mode_attribute = self::INTEGRAL_POINT_ATTACHED;
  897. break;
  898. case (119):
  899. $mode_attribute = self::YS_SYSTEM_POINT_SYNC_NAME;
  900. break;
  901. case (120):
  902. $mode_attribute = self::POINT_MODE_VIDEO_WATCH_TAKE_ATTACHED;
  903. break;
  904. case(121):
  905. $mode_attribute = self::POINT_MODE_PARKING_PAY_COUPON_ATTACHED;
  906. break;
  907. case(122):
  908. $mode_attribute = self::POINT_MODE_LOVE_WITHDRAW_FINAL_REDUCE_ATTACHED;
  909. break;
  910. case(123):
  911. $mode_attribute = self::POINT_MODE_STORE_BALANCE_RECHARGE_ATTACHED;
  912. break;
  913. case(124):
  914. $mode_attribute = self::POINT_MODE_YWM_FIGHT_GROUPS_TEAM_SUCCESS_ATTACHED;
  915. break;
  916. case(125):
  917. $mode_attribute = self::POINT_MODE_LOVE_BUY_DEDUCTE_REDUCE_ATTACHED;
  918. break;
  919. case(126):
  920. $mode_attribute = self::POINT_MODE_SUBSCRIPTION_ATTACHED;
  921. break;
  922. break;
  923. case(127):
  924. $mode_attribute = self::POINT_MODE_ROOM_RED_PACK_RECEIVE_ATTACHED;
  925. break;
  926. case(128):
  927. $mode_attribute = self::POINT_MODE_ROOM_RED_PACK_REFUND_ATTACHED;
  928. break;
  929. case(129):
  930. $mode_attribute = self::POINT_MODE_ROOM_RED_PACK_SEND_ATTACHED;
  931. break;
  932. case(130):
  933. $mode_attribute = self::POINT_MODE_LOVE_FROZE_ACTIVE_ATTACHED;
  934. break;
  935. case(131):
  936. $mode_attribute = self::POINT_MODE_NEWCOMER_FISSION_ACTIVE_ATTACHED;
  937. break;
  938. case(132):
  939. $mode_attribute = self::POINT_MODE_TRANSFER_INTEGRAL_ATTACHED;
  940. break;
  941. case(133):
  942. $mode_attribute = self::POINT_MODE_BLB_CASHIER_ATTACHED;
  943. break;
  944. case(139):
  945. $mode_attribute = self::POINT_EXCHANGE_OUT_ATTACHED;
  946. break;
  947. case(140):
  948. $mode_attribute = self::POINT_EXCHANGE_IN_ATTACHED;
  949. break;
  950. case (141):
  951. $mode_attribute = self::POINT_MODE_FIRST_PARENT_REWARD_ATTACHED;
  952. break;
  953. case (142):
  954. $mode_attribute = self::POINT_MODE_SECOND_PARENT_REWARD_ATTACHED;
  955. break;
  956. case (143):
  957. $mode_attribute = self::POINT_MODE_FIRST_PARENT_REFUND_ATTACHED;
  958. break;
  959. case (144):
  960. $mode_attribute = self::POINT_MODE_SECOND_PARENT_REFUND_ATTACHED;
  961. break;
  962. case (145):
  963. $mode_attribute = self::POINT_MODE_POINT_EXCHANGE_LOVE_ATTACHED;
  964. break;
  965. case(134):
  966. $mode_attribute = self::FACE_TO_FACE_BUY_ATTACHED;
  967. break;
  968. case(135):
  969. $mode_attribute = self::FACE_TO_FACE_MEMBER_GIFT_ATTACHED;
  970. break;
  971. case(136):
  972. $mode_attribute = self::FACE_TO_FACE_MERCHANT_GIFT_ATTACHED;
  973. break;
  974. case(146):
  975. $mode_attribute = self::POINT_MODE_POOL_RESET_ATTACHED;
  976. break;
  977. case(147):
  978. $mode_attribute = self::ACTIVITY_REWARD_INTEGRAL_ATTACHED;
  979. break;
  980. case(148):
  981. $mode_attribute = self::POINT_MODE_AREA_DIVIDEND_ATTACHED;
  982. break;
  983. case(149):
  984. $mode_attribute = self::POINT_MODE_LOVE_SPEED_POOL_CLEAR_ATTACHED;
  985. break;
  986. case(156):
  987. $mode_attribute = self::SIGN_BUY_ALLOWANCE_NAME;
  988. break;
  989. case(150):
  990. $mode_attribute = self::POINT_MODE_MEMBER_MERGE_ATTACHED;
  991. break;
  992. case(151):
  993. $mode_attribute = self::POINT_MODE_NEW_BLIND_BOX_EXCHANGE_ATTACHED;
  994. case (153):
  995. $mode_attribute = self::POINT_MODE_AREA_DIVIDEND_AWARD_ATTACHED;
  996. break;
  997. case (154):
  998. $mode_attribute = self::POINT_MODE_AREA_MERCHANT_AWARD_ATTACHED;
  999. break;
  1000. case (155):
  1001. $mode_attribute = self::POINT_MODE_FACE_TO_FACE_AWARD_ATTACHED;
  1002. break;
  1003. case (157):
  1004. $mode_attribute = self::STAFF_AUDIT_REWARD_ATTACHED;
  1005. break;
  1006. case (158):
  1007. $mode_attribute = self::STATIC_POINT_DIVIDEND_ATTACHED;
  1008. break;
  1009. default:
  1010. $mode_attribute = self::$otherSource[$mode];
  1011. }
  1012. return $mode_attribute;
  1013. }
  1014. }