| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- if redis.call('exists', KEYS[1]) == 0 then
- ---redis.log(redis.LOG_WARNING, 'kkk' .. KEYS[1]);
- return nil
- else
- local tableCode = redis.call('get', KEYS[1]);
- if tableCode then
- redis.log(redis.LOG_WARNING, tableCode);
- local x = cjson.decode(tableCode);
- local yearlength = tonumber(x['yearLength']);
- local ntime = ARGV[1];
- if (yearlength == 2) then
- ntime = ARGV[2];
- end
- ---redis.log(redis.LOG_WARNING, 'a' .. ntime);
- local prefixlength = tonumber(x['prefixLength']);
- ---redis.log(redis.LOG_WARNING, 'b' .. prefixlength);
- local datelength = tonumber(x['dateLength']);
- ---redis.log(redis.LOG_WARNING, 'b' .. datelength);
- local currcode = x['currcode'];
- if currcode ~= nil then
- redis.log(redis.LOG_WARNING, 'c' .. currcode);
- end
- local codeprefix = '';
- if (prefixlength > 0) then
- codeprefix = x['codePrefix'];
- end
- ---redis.log(redis.LOG_WARNING, 'd' .. codeprefix);
- local codeFormat = x['codeFormat'];
- local acttime = string.sub(ntime, 1, datelength);
- ---redis.log(redis.LOG_WARNING, 'e' .. codeFormat);
- if (currcode and currcode ~= '') then
- ---redis.log(redis.LOG_WARNING, 'h' .. acttime);
- local codetime = string.sub(currcode, prefixlength + 1, datelength + prefixlength);
- ---redis.log(redis.LOG_WARNING, 'i' .. codetime);
- local codeindex = tonumber(string.sub(currcode, prefixlength + datelength + 1));
- ---redis.log(redis.LOG_WARNING, 'j' .. codeindex);
- if acttime == codetime then
- codeindex = codeindex + 1;
- x['currcode'] = codeprefix .. acttime .. string.format(codeFormat, codeindex);
- else
- codeindex = 1;
- x['currcode'] = codeprefix .. acttime .. string.format(codeFormat, codeindex);
- end
- else
- x['currcode'] = codeprefix .. acttime .. string.format(codeFormat, 1);
- end
- local re = cjson.encode(x);
- redis.call('set', KEYS[1], re);
- return re;
- end
- end
- return nil
|