package com.stylefeng.guns.modular.api; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.system.model.Area; import com.stylefeng.guns.modular.system.model.IntegralOrder; import com.stylefeng.guns.modular.system.service.IAreaService; import com.stylefeng.guns.modular.system.service.IIntegralGoodsService; import com.stylefeng.guns.modular.system.service.IIntegralOrderService; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.IntegralGoodsWarpper; import com.stylefeng.guns.modular.system.warpper.IntegralOrderWarpper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Api @RestController @RequestMapping("/api/integralGoods") public class IntegralGoodsController { @Autowired private IIntegralGoodsService integralGoodsService; @Autowired private IIntegralOrderService integralOrderService; @Autowired private IUserInfoService userInfoService; @Autowired private IAreaService areaService; /** * 获取大区列表 * @return */ @ResponseBody @PostMapping("/queryArea") @ApiOperation(value = "获取大区列表", tags = {"用户端-积分相关"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil>> queryArea(Integer language,HttpServletRequest request){ try { List areas = areaService.selectList(new EntityWrapper()); List> result = new ArrayList<>(); for (Area area : areas) { Map map = new HashMap<>(2); map.put("id",area.getId()); switch (language){ case 1: map.put("cityName",area.getChineseName()); break; case 2: map.put("cityName",area.getEnglishName()); break; case 3: map.put("cityName",area.getFrenchName()); break; } result.add(map); } return ResultUtil.success(result); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取积分兑换的商品 * @param pageNum * @param size * @return */ @ResponseBody @PostMapping("/queryGoods") @ApiOperation(value = "获取积分兑换的商品", tags = {"用户端-积分相关"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryGoods(Integer pageNum, Integer size){ try { List> list = integralGoodsService.queryGoods(pageNum, size); return ResultUtil.success(IntegralGoodsWarpper.getIntegralGoodsWarppers(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 获取商品详情 * @param id * @return */ @ResponseBody @PostMapping("/queryGoodsInfo") @ApiOperation(value = "获取商品详情", tags = {"用户端-积分相关"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil queryGoodsInfo(Integer id){ try { Map map = integralGoodsService.queryGoodsInfo(id); return ResultUtil.success(IntegralGoodsWarpper.getIntegralGoodsWarpper(map)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 兑换商品 * @param integralOrder * @param request * @return */ @ResponseBody @PostMapping("/addIntegralOrder") @ApiOperation(value = "兑换商品", tags = {"用户端-积分相关"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodsId", required = true, dataType = "int"), @ApiImplicitParam(value = "收件人", name = "consigneeName", required = true, dataType = "string"), @ApiImplicitParam(value = "收件人电话", name = "consigneePhone", required = true, dataType = "string"), @ApiImplicitParam(value = "收货地址", name = "consigneeAddress", required = true, dataType = "string"), @ApiImplicitParam(value = "备注", name = "remark", required = true, dataType = "string"), @ApiImplicitParam(value = "1=中文,2=英文,3=法语", name = "language", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil addIntegralOrder(IntegralOrder integralOrder,Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } return integralOrderService.addIntegralOrder(integralOrder,language, uid); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/queryConvertHistory") @ApiOperation(value = "获取兑换历史记录", tags = {"用户端-积分相关"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(value = "1=中文,2=英文,3=法语", name = "language", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryConvertHistory(Integer pageNum, Integer size,Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } List> list = integralOrderService.queryConvertHistory(pageNum, size, uid,language); return ResultUtil.success(IntegralOrderWarpper.getIntegralOrderWarppers(list)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } }