YohoCoinLogController.md 9.32 KB

YohoCoinLogController

一、getYohoCoinNum()方法:获取有货币(mars point)总数

请求参数

参数名称 参数类型 可否为空 示例 默认值 备注
uid int 8040028 - 用户id

实现逻辑: 1、YohoCoinLogController.getYohoCoinNum()方法中调用users.getYohoCoinNum服务;

2、在YohoCoinCostServiceImpl.getYohoCoin()中进行具体业务逻辑处理,校验uid,若为空,则抛出UID_IS_NULL异常;

3、根据uid查询表yoho_coin_cost,获取该用户的有货币总数(IYohoCoinCostDAO.selectYOHOcoin(uid));

4、根据uid查询表yoho_coin_cost,获取期限为今年最后一秒的有货币总数(IYohoCoinCostDAO.selectNearExpYOHOcoin(uid, expireTime));

5、构造返回对象YohoCoin,包括有货币总数、即将过期的有货币总数以及有货币的单位.

示例

请求: http://localhost:8080/gateway?method=app.yohocoin.total&uid=8040028&debug=XYZ

返回:

  {
   "alg": "SALT_MD5",
   "code": 200,
   "data": {
   "code": "20111130-152530",
   "total": 6235400
    },
    "md5": "2dd8d4039a88bbc49ff392ed0e3abc4a",
    "message": "yoho coin total"
    }

二、getYohoCoinLog()方法:获取有货币(mars point)的明细

请求参数

参数名称 参数类型 可否为空 示例 默认值 备注
uid int 8040028 - 用户id
limit int - 20 每页记录数
page int - 1 页数
queryType int - 0 查询类型
beginTime string - 0 开始时间
endTime string - 0 结束时间

实现逻辑:

1、YohoCoinLogController.getYohoCoinLog()方法中调用users.getYohoCoinLog服务;

2、验证uid是否为空,为空则抛出UID_IS_NULL异常;

3、根据limit、page请求参数计算开始记录行数offset;

4、根据请求参数查询库表yoho_coin_history,获取记录总数total和记录信息yohoCoinHistoryList(IYohoCoinHistoryDAO.selectCountByUid,IYohoCoinHistoryDAO.selectByUid);

5、判断查询的记录信息列表中的Type值若为13("购买商品赠送:%s")、14("晒单奖励:%s")、15("补差价:%s")中的一个,则获取记录信息列表中的params值,根据该值获取商品skn列表;

6、根据skn列表调取product.queryBrowserProduct服务查询获取商品信息,与skn列表结合组装商品信息productMap;

7、判断查询的记录信息列表中的Type值若为19("兑换实物")、20("兑换话费")、21("兑换电子券")中的一个,则获取记录信息列表中的params值,根据该值获取orderCode列表;

8、拼装记录信息返回YohoCoinLogDataRspBO.

示例

请求:http://localhost:8080/gateway?method=app.yohocoin.lists&uid=8040028&debug=XYZ

返回:

{
 "alg": "SALT_MD5",
 "code": 200,
 "data": {
  "coinlist": [
    {
      "date": "2016-04-27 18:11:12",
      "key": "1618096044",
      "message": "下单使用:订单1618096044",
      "num": -122700,
      "title": "下单使用:订单%s",
      "type": 9
    },
    {
      "date": "2016-04-25 18:56:47",
      "key": "1616262205",
      "message": "下单使用:订单1616262205",
      "num": -41900,
      "title": "下单使用:订单%s",
      "type": 9
    }
  ],
  "limit": 20,
  "page": 1,
  "page_total": 2,
  "total": 2
 },
 "md5": "35a15e3c64140cd2dff1e647fc03f65b",
 "message": "yoho coin list"
}

三、acquireMarsPoint()方法:地点签到、合格评价时收入mars点数

请求参数

参数名称 参数类型 可否为空 示例 默认值 备注
uid int 213 0 用户id
num int 100 0 mars点数
type int 17或者18 0 地点签到:17,合格评价:18
marsId String 123456789 0 关联合格评价的具体评价,关联地点签到的具体地点
pid int 100 0 erp操作人员的uid

实现逻辑:

1、YohoCoinLogController.acquireMarsPoint()方法中调用users.acquireMarsPoint服务;

2、对请求参数uid、num、marsId进行非空校验,对参数type进行数值校验,若不为17("地点签到")且不为18("合格评价"),则抛出MARSPOINT_TYPE_INVALID异常;

3、根据请求参数向表yoho_coin_cost和yoho_coin_history中增加mars点数记录(IYohoCoinCostDAO.insertSelective()和IYohoCoinHistoryDAO.insertSelective());

4、获取表yoho_coin_cost中的新增记录的id,更新该条记录的logid字段值为该id值;

5、根据用户id查询表yoho_coin_cost,获取该用户的所有有货币num记录,对num求和得该用户当前有货币数目currentCoinNum,返回.

*示例 *

请求:http://localhost:8080/gateway?method=app.marspoint.acquire&debug=XYZ 入口参数body { "uid": 330770, "num": 100, "type": 18, "marsId":469355, "pid": 11111111 }

返回:

         {
           "alg": "SALT_MD5",
           "code": 200,
           "data": {
           "currency": "400",
           "uid": 330770
           },
           "md5": "0db2249f255e65b4f84f3c07556a0160",
           "message": "ok"
         }

三、exchangeMarsPoint()方法:兑换mars点数

请求参数

参数名称 参数类型 可否为空 示例 默认值 备注
uid int 213 0 用户id
num int -100 0 mars点数
type int 19、20或21 0 兑换实物:19,兑换话费:20,兑换电子券:21
orderCode String 123456789 0 订单号
pid int 100 0 erp操作人员的uid

实现逻辑:

1、YohoCoinLogController.exchangeMarsPoint()方法中调用users.exchangeMarsPoint服务;

2、对请求参数uid、num、OrderCode进行非空校验,对参数type进行数值校验,若不为19("兑换实物")且不为20("兑换话费")且不为22("兑换电子券"),则抛出MARSPOINT_TYPE_INVALID异常;

3、根据uid查询表yoho_coin_cost,获取该用户的mars点总数(IYohoCoinCostDAO.selectYOHOcoin(uid)),结合请求参数中的num判断mars点数是否足够;

4、 若足够则进行mars点数扣除操作:根据uid查询库表yoho_coin_cost获取用户mars点数根据失效时间排列的记录列表,逐个检查对应的logid的有货券是否够扣;

5、若记录列表中遍历完后,扣除后的用户剩余点数为负数,则抛出当前有货币不足异常;

6、扣除成功后,向表yoho_coin_cost中插入详细扣除记录和向表yoho_coin_history中增加一条扣除总数记录;

7、返回用户当前有货币(mars point)数.

示例

请求:http://localhost:8080/gateway?method=app.marspoint.exchange&debug=XYZ

入口参数body

{
"uid": 330620,
"num": -150,
"type": 20,
"orderCode": 1234567890,
"pid": 11111111
}

返回

 {
  "alg": "SALT_MD5",
  "code": 200,
  "data": {
  "currency": "2850",
  "uid": 330620
 },
 "md5": "74814a916f671e84483dd40bd7741de9",
 "message": "ok"
 }

三、returnMarsPoint()方法:mars点数兑换失败返回被使用的mars点数

请求参数

参数名称 参数类型 可否为空 示例 默认值 备注
uid int 213 0 用户id
num int 100 0 mars点数
type int 22 0 mars点数兑换失败:22
orderCode String 123456789 0 订单号
pid int 100 0 erp操作人员的uid

实现逻辑:

1、YohoCoinLogController.returnMarsPoint()方法中调用users.returnMarsPoint服务;

2、对请求参数uid、num、OrderCode进行非空校验,对参数type进行数值校验,若不为22("mars点数兑换失败"),则抛出MARSPOINT_TYPE_INVALID异常;

3、根据uid查询表yoho_coin_cost,获取该用户的mars点总数(IYohoCoinCostDAO.selectYOHOcoin(uid));

4、根据uid和orderCode查询库表yoho_coin_cost查询表yoho_coin_cost,查询对应的记录有货币数,判断订单使用的yoho币是否都已退还;

5、若存在未退还有货币,根据uid和orderCode查询库表yoho_coin_cost,获取用户的有货币按照logid和过期时间排列的列表;

6、根据列表进行有货币的退还,该过程与有货币扣除过程相反;

7、退还成功后,向表yoho_coin_cost中插入详细退还记录和向表yoho_coin_history中增加一条扣除总数记录;

8、返回用户当前有货币(mars point)数.

示例

请求:http://localhost:8080/gateway?method=app.marspoint.return&debug=XYZ

入口参数body

  {
   "uid": 50030199,
   "num": 150,
   "type": 22,
   "orderCode": 1234567890,
   "pid": 11111111
   }

返回:

  {
   "alg": "SALT_MD5",
   "code": 200,
   "data": {
   "currency": "250",
   "uid": 50030199
   },
   "md5": "e79412cd926330de9f49e87046d6c547",
   "message": "ok"
   }