package com.kmall.admin.controller; import com.kmall.admin.dto.GoodsDto; import com.kmall.admin.entity.GoodsEntity; import com.kmall.admin.entity.GoodsGalleryEntity; import com.kmall.admin.entity.StoreEntity; import com.kmall.admin.service.GoodsGalleryService; import com.kmall.admin.service.GoodsService; import com.kmall.admin.service.OfflineCartService; import com.kmall.admin.service.StoreService; import com.kmall.admin.utils.ParamUtils; import com.kmall.admin.utils.ShiroUtils; import com.kmall.common.constant.Dict; import com.kmall.common.constant.JxlsXmlTemplateName; import com.kmall.admin.fromcomm.entity.SysUserEntity; import com.kmall.common.utils.*; import com.kmall.common.utils.excel.ExcelUtil; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.*; /** * Controller * * @author Scott * @email * @date 2017-08-21 21:19:49 */ @RestController @RequestMapping("goods") public class GoodsController { @Autowired private GoodsService goodsService; @Autowired private GoodsGalleryService goodsGalleryService; @Autowired private OfflineCartService offlineCartService; @Autowired private ExcelUtil excelUtil; @Autowired private StoreService storeService; /** * 查看列表 */ @RequestMapping("/list") @RequiresPermissions("goods:list") public R list(@RequestParam Map params) { ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode"); ParamUtils.setName(params, "name"); //查询列表数据 Query query = new Query(params); query.put("isDelete", 0); List goodsList = goodsService.queryList(query); int total = goodsService.queryTotal(query); PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage()); return R.ok().put("page", pageUtil); } /** * 查看信息 */ @RequestMapping("/info/{id}") @RequiresPermissions("goods:info") public R info(@PathVariable("id") Integer id) { GoodsEntity goods = goodsService.queryObject(id); if(goods != null) { GoodsGalleryEntity goodsGalleryEntity =goodsGalleryService.queryVideoObjectByGoodId(goods.getId()); if(goodsGalleryEntity != null){ goods.setVideoUrl(goodsGalleryEntity.getImgUrl()); } } return R.ok().put("goods", goods); } /** * 保存 */ @RequestMapping("/save") @RequiresPermissions("goods:save") public R save(@RequestBody GoodsEntity goods) { goodsService.save(goods); return R.ok(); } /** * 修改 */ @RequestMapping("/update") @RequiresPermissions("goods:update") public R update(@RequestBody GoodsEntity goods) { goodsService.update(goods); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") @RequiresPermissions("goods:delete") public R delete(@RequestBody Integer[] ids) { goodsService.deleteBatch(ids); return R.ok(); } /** * 查看所有列表 */ @RequestMapping("/queryAll") public R queryAll(@RequestParam Map params) { ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode"); params.put("isDelete", Integer.parseInt(Dict.isDelete.item_0.getItem())); params.put("isOnSale", Integer.parseInt(Dict.isOnSale.item_1.getItem())); List list = goodsService.queryList(params); return R.ok().put("list", list); } /** * 商品回收站 * * @param params * @return */ @RequestMapping("/historyList") public R historyList(@RequestParam Map params) { ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode"); //查询列表数据 Query query = new Query(params); query.put("isDelete", 1); List goodsList = goodsService.queryList(query); int total = goodsService.queryTotal(query); PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage()); return R.ok().put("page", pageUtil); } /** * 商品从回收站恢复 */ @RequestMapping("/back") @RequiresPermissions("goods:back") public R back(@RequestBody Integer[] ids) { goodsService.back(ids); return R.ok(); } /** * 总计 */ @RequestMapping("/queryTotal") public R queryTotal(@RequestParam Map params) { ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode"); params.put("isDelete", 0); int sum = goodsService.queryTotal(params); return R.ok().put("goodsSum", sum); } /** * 上架 */ @RequestMapping("/enSale") public R enSale(@RequestBody Integer id) { goodsService.enSale(id); return R.ok(); } /** * 上架 */ @RequestMapping("/enSaleBatch") public R enSaleBatch(@RequestBody Integer[] ids) { goodsService.enSaleBatch(ids); return R.ok(); } /** * 下架 */ @RequestMapping("/unSale") public R unSale(@RequestBody Integer id) { goodsService.unSale(id); return R.ok(); } /** * 下架 */ @RequestMapping("/unSaleBatch") public R unSaleBatch(@RequestBody Integer[] ids) { goodsService.unSaleBatch(ids); return R.ok(); } /** * 上传文件 */ @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file) { List goodsDtoList = new ArrayList<>();//商品信息 try { Map beans = new HashMap(); beans.put("GoodsDtoList", goodsDtoList); if (file.isEmpty()) { return R.error("文件不能为空!"); } excelUtil.readExcel(JxlsXmlTemplateName.GOODS_DTO_LIST, beans, file.getInputStream()); } catch (Exception e) { e.printStackTrace(); return R.error("导入失败!"); } goodsService.uploadExcel(goodsDtoList,1); //上传文件 return R.ok(); } /** * 上传文件 */ @RequestMapping("/generalGoodsUpload") public R generalGoodsUpload(@RequestParam("file") MultipartFile file) { List generalGoodsDtoList = new ArrayList<>();//商品信息 try { Map beans = new HashMap(); beans.put("GeneralGoodsDtoList", generalGoodsDtoList); if (file.isEmpty()) { return R.error("文件不能为空!"); } excelUtil.readExcel(JxlsXmlTemplateName.GENERAL_GOODS_DTO_LIST, beans, file.getInputStream()); } catch (Exception e) { e.printStackTrace(); return R.error("导入失败!"); } goodsService.uploadExcel(generalGoodsDtoList,2); //上传文件 return R.ok(); } /*@RequestMapping("/scannInfo") @RequiresPermissions("goods:scannInfo") public R scannInfo(@RequestParam Map params) { String goodsSn = (String)params.get("goodsSn"); GoodsEntity goods = goodsService.queryObjectByGoodsSnAndBizType(goodsSn); if(goods == null) { return R.error("商品信息不存在"); } List cartEntityList = offlineCartService.offlineGoodsCart(goods); return R.ok().put("cartEntityList", cartEntityList); }*/ @RequestMapping("/scannInfo/{prodBarcode}") @RequiresPermissions("goods:scannInfo") public R scannInfo(@PathVariable("prodBarcode")String prodBarcode) { SysUserEntity user = ShiroUtils.getUserEntity(); if(user == null) { return R.error("用户登录超时,请重新登录"); } if (!user.getRoleType().equalsIgnoreCase("2")) { return R.error("该操作只允许店员账户操作"); } GoodsEntity goods = goodsService.queryObjectByProdBarcodeAndBizType(prodBarcode, user.getStoreId()); if(goods == null) { return R.error("商品信息不存在"); } return R.ok().put("goods", goods); } }