card_list_operation.erl


%%=========================================
%% 1、删除卡号,  直接给卡号
%% 2、排序, 给卡排序后的卡列表
%% 3、添加卡, acc--{name:"卡号",value:"12332112332"}, cardno--{name:"完整卡号", value:"1231231231231234", formatcard--{name:"格式化卡号",value:"622909 ****** *9571*"},  khxm--{name:"客户姓名",value:"熊吉"}, aname--{name:"别名",value:"abc"}, acctype--{name:"卡类别1:理财卡 2:信用卡",value:"1"}, listcardno--{name:"index",value:"0"}, zjzl--{name:"证件种类",value:"0"}, zjhm--{name:"证件号",value:"4415221928910928043"}
%%=========================================
-module(card_list_operation).
-compile([export_all]).

%% 传入session上面的卡列表和要删除的卡号,从卡列表中删除对应的卡号数据
%% CardList  session里面的卡列表
%% CardNo 要删除的卡号数据
dele_card(CardList, CardNo) ->
    {NewCardList, _} = lists:foldl(fun(X, {Acc1, Acc2}) ->
                    {group, CList} = X,
                    CNo = proplists:get_value(value, proplists:get_value(cardno, CList)),
                    case CNo of
                        CardNo ->  %匹配到要删除的卡号,不拼到新的卡列表里面去
                            {Acc1, Acc2};
                        _ ->
                            Index = erlang:length(Acc2),
                            % 对listcardno进行重新排序, 根据Acc2的长度进行赋值,从0开始
                            NCList = lists:keyreplace(listcardno, 1, CList, {listcardno, [{name, "index"}, {value, Index}]}),
                            {[{group, NCList} | Acc1], Acc2++"1"}
                    end
                end, {[], []}, CardList),
    % io:format("NewCardList===~p~n",[lists:reverse(NewCardList)]),
    NewCardList.

%% 根据拖动排序之后的卡号列表顺序ShortCardL,对session里面的卡列表数据CardList进行重新排序
%% CardList  session里面的卡列表
%% ShortCardL 排序后客户端给的卡号列表顺序
%% ShortCardL = ["622909116762944715", "622909116376250319", "966666113491309413", "622909573000010214", "622909116818295716", "622909523000007017"].
sort_card(CardList, ShortCardL) ->
    NewCardList =   lists:foldl(fun(A, Acc0) ->
                        lists:foldl(fun(X, Acc) ->
                                {group, CList} = X,
                                CNo = proplists:get_value(value, proplists:get_value(cardno, CList)),
                                case CNo of
                                    A ->
                                        Index = erlang:length(Acc0),
                                        NCList = lists:keyreplace(listcardno, 1, CList, {listcardno, [{name, "index"}, {value, Index}]}),
                                        Acc0 ++ "1",
                                        [{group, NCList} | Acc];
                                    _ ->
                                        Acc
                                end
                            end, Acc0, CardList) end, [], ShortCardL),
    lists:reverse(NewCardList).

%  SubCardList = [{group, [{acc, [{name, [229, 141, 161, 229, 143, 183]}, {value, "11681829571"}]}, {cardno, [{name, [229, 174, 140, 230, 149, 180, 229, 141, 161, 229, 143, 183]}, {value, "622909116818295716"}]}, {formatcard, [{name, [230, 160, 188, 229, 188, 143, 229, 140, 150, 229, 141, 161, 229, 143, 183]}, {value, "622909 ****** *9571*"}]}, {khxm, [{name, [229, 174, 162, 230, 136, 183, 229, 167, 147, 229, 144, 141]}, {value, [229, 177, 136, 230, 155, 180, 233, 184, 165]}]}, {aname, [{name, [229, 136, 171, 229, 144, 141]}, {value, "abc"}]}, {acctype, [{name, [229, 141, 161, 231, 177, 187, 229, 136, 171, 49, 239, 188, 154, 231, 144, 134, 232, 180, 162, 229, 141, 161, 32, 50, 239, 188, 154, 228, 191, 161, 231, 148, 168, 229, 141, 161]}, {value, "1"}]}, {listcardno, [{name, "index"}, {value, "0"}]}, {zjzl, [{name, [232, 175, 129, 228, 187, 182, 231, 167, 141, 231, 177, 187]}, {value, "0"}]}, {zjhm, [{name, [232, 175, 129, 228, 187, 182, 229, 143, 183]}, {value, "350702198212080178"}]}]}]
%% 往session里面的卡列表CardList插入添加的卡数据SubCardList
%% CardList  session里面的卡列表
%% Relacc 接口返回的银行卡管理的卡列表
add_card(CardList, Relacc) ->
    First_Relacc = lists:nth(1, Relacc),  %% 取第一个列表
    SubCardList = assembly_subcard(First_Relacc),
    NCardList = lists:append(SubCardList, CardList),  %% 新加的卡拼接在第一位
    {NewCardList, _} = lists:foldl(fun(X, {Acc1, Acc2}) ->
                    {group, CList} = X,
                    Index = erlang:length(Acc2),
                    % 对listcardno进行重新排序, 根据Acc2的长度进行赋值,从0开始
                    NCList = lists:keyreplace(listcardno, 1, CList, {listcardno, [{name, "index"}, {value, Index}]}),
                    {[{group, NCList} | Acc1], Acc2++"1"}
                end, {[], []}, NCardList),
    lists:reverse(NewCardList).


%First_Relacc = [{ajaxurl,[{name,[230,159,165,231,156,139,229,174,140,230, 149,180,233,147,182,232,161,140,229,141,161]}, {value,"ajax?func=checkCardPwd"}, {run,"1"}]}, {url_bm,[{name,[232,174,190,231,189,174,229,136,171,229,144, 141]}, {value,"60002.cli?flowsn=80&listno=0"}]}, {acctype,[{name,[229,141,161,229,143,183,231,177,187,229, 158,139]}, {value,"1"}]}, {cardno,[{name,[229,174,140,230,149,180,229,141,161,229,143, 183]}, {value,"622909116818295716"}]}, {aname,[{name,[232,180,166,230,136,183,229,136,171,229,144, 141]}, {value,"abc"}]}, {jm_cardno,[{name,[233,154,144,232,151,143,229,141,161,229, 143,183]}, {value,"622909 ****** *9571*"}]}, {formatcard,[{name,[230,160,188,229,188,143,229,140,150,229, 141,161,229,143,183]}, {value,"622909 ****** *9571*"}]}, {khxm,[{name,[229,174,162,230,136,183,229,167,147,229,144, 141]}, {value,[229,177,136,230,155,180,233,184,165]}]}, {listcardno,[{name,[229,141,161,229,136,151,232,161,168,228, 184,139,230,160,135]}, {value,"0"}]}, {url_newurl,[{name,[232,183,179,232,189,172,230,150,176,229, 138,159,232,131]}, {value,"60003.cli?flowsn=0&listno=0&main_card=2"}]}].
%% 获取银行卡管理新添加的卡的信息,然后按照登录的的时候存到session里面的卡列表的格式拼接,再追加到session的卡列表里面去
%% First_Relacc 接口返回的新加的卡的数据
%% unicode:characters_to_binary(Data). 将一个字符集数据Data转换为一个utf-8的二进制数据
assembly_subcard(First_Relacc) ->
    {group, SubCardList} = First_Relacc,
    CardNo = proplists:get_value(value, proplists:get_value(cardno, SubCardList, [])),
    Acctype = proplists:get_value(value, proplists:get_value(acctype, SubCardList,[])),
    Aname = proplists:get_value(value, proplists:get_value(aname, SubCardList,[])),
    Formatcard = proplists:get_value(value, proplists:get_value(formatcard, SubCardList, [])),
    Khxm = proplists:get_value(value, proplists:get_value(khxm, SubCardList, [])),
    Zjhm = proplists:get_value(value, proplists:get_value(zjhm, SubCardList, [])),
    Zjzl = proplists:get_value(value, proplists:get_value(zjzl, SubCardList, [])),
    Acc = proplists:get_value(value, proplists:get_value(acc, SubCardList, [])),
    NSCList= [{group, [{acc, [{name, binary_to_list(unicode:characters_to_binary("卡号"))}, {value, Acc}]}, {cardno, [{name, binary_to_list(unicode:characters_to_binary("完整卡号"))}, {value, CardNo}]}, {formatcard, [{name, binary_to_list(unicode:characters_to_binary("格式化卡号"))}, {value, Formatcard}]}, {khxm, [{name, binary_to_list(unicode:characters_to_binary("客户姓名"))}, {value, Khxm}]}, {aname, [{name, binary_to_list(unicode:characters_to_binary("别名"))}, {value, Aname}]}, {acctype, [{name, binary_to_list(unicode:characters_to_binary("卡类别1:理财卡 2:信用卡"))}, {value, Acctype}]}, {listcardno, [{name, index}, {value, 0}]}, {zjzl, [{name, binary_to_list(unicode:characters_to_binary("证件种类"))}, {value, Zjzl}]}, {zjhm, [{name, binary_to_list(unicode:characters_to_binary("证件号"))}, {value, Zjhm}]}]}],
    NSCList.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值