积分模块开发(竞赛使用)

积分模块开发(竞赛使用)

十一月 07, 2020

题目

1.商品订单积分规则,用户购买商品成功后(已付款),根据订单的金额
赠送给用户等比例的积分。订单金额每 10 元赠送 1 个积分,小于 10 元,不赠
送积分。

2.在 Shopping 后端,【用户管理】中,增加一列【积分】,显示用户积分值,如图 3-4 所示。

3.在 PC 端,用户登录后的【会员中心】,加入【积分】标签页,显示用户当前积分,以及积分累计获取的列表

究极重要后端SQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

-- 后端Sql 改造User
SELECT * from `user` u LEFT JOIN (select u.id, SUM(o.price DIV 1000) jifen from User u ,order_info o where u.id = o.user_id and price >= 1000 GROUP BY nickname) as j on u.id
= j.id
-- xml
SELECT * from `user` u LEFT JOIN (select u.id, SUM(o.price DIV 1000) jifen from User u ,order_info o where u.id = o.user_id and price >= 1000 GROUP BY nickname) as j on u.id
= j.id

-- Api sql
select *,(o.price DIV 1000) as jifen from order_info o , `user` u where o.user_id = u.id
and o.payment_flag = 1 and o.user_id = 362791

SELECT
*, (o.price DIV 1000) AS jifen
FROM
order_info o
WHERE
o.payment_flag = 1
AND o.user_id = 362791
--xml
select *,(o.price DIV 1000) as jifen from order_info o , `user` u where o.user_id = u.id and o.payment_flag = 1 and o.user_id = #{userid,jdbcType=INTEGER}

思路重构User查询

left.jsp:添加:

1
2
  <li><a href="${pageContext.request.contextPath}/admin/user">用户详情管理</a></li>
<li><a href="${pageContext.request.contextPath}/admin/jifen">积分</a></li>

新建JifenMain.jsp
复制User.jsp
删除不必要代码

usercontroller.java添加:

1
2
3
4
5
6
@RequestMapping(value = "/admin/jifen", method = RequestMethod.GET)
public ModelAndView useJifen() {
ModelAndView model = new ModelAndView();
model.setViewName("admin/user/jifenMain");
return model;
}

映射:

1
<result column = "jifen" jdbcType="INTEGER" property="jifen"/>

思路新建Order API:

OrderApiCOntroller.java

1
2
3
4
5
6
7
8
9
10
/**
* 获取用户积分信息
*
* @throws InvocationTargetException
* @throws IllegalAccessException
*/
@RequestMapping(value = "/user/orders/jifen", method = RequestMethod.POST, headers = "Accept=application/json")
public ApiResponseObject getUserJifen(@RequestBody User user) {
return reponseJSON(ApiResponseEnum.SUCCESS.getCode(), ApiResponseEnum.SUCCESS.getName(), orderService.getjiFen(user.getId()));
}

orderServicesImpl.java

1
2
3
4
5
6
7
8
9
10
/**
* 查询用户积分
*
* @throws ParseException
*/
@Override
public List<Order> getjiFen(Integer userid) {
//System.out.println(userid);
return orderMapper.selectJifenbyId(userid);
}

OrderMapper.java

1
List<Order> selectJifenbyId(Integer userId);

OrderMapper.xml

1
2
3
4
5
<select id="selectJifenbyId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select *,(o.price DIV 1000) as jifen from order_info o , `user` u where o.user_id = u.id
and o.user_id = #{userid,jdbcType=INTEGER}
</select>