嗨森逛服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hai-server/hai-bweb/src/main/java/com/bweb/controller/HighMerchantStoreController...

367 lines
19 KiB

package com.bweb.controller;
import com.alibaba.excel.EasyExcel;
import com.bweb.excelListener.ImportStoreListener;
import com.bweb.model.ImportStoreModel;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hai.common.exception.ErrorCode;
import com.hai.common.exception.ErrorHelp;
import com.hai.common.exception.SysCode;
import com.hai.common.security.SessionObject;
import com.hai.common.security.UserCenter;
import com.hai.common.utils.ResponseMsgUtil;
import com.hai.config.CommonSysConst;
import com.hai.entity.BsCompany;
import com.hai.entity.HighMerchant;
import com.hai.entity.HighMerchantStore;
import com.hai.entity.SecRegion;
import com.hai.enum_type.MerchantStoreSourceType;
import com.hai.model.*;
import com.hai.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @Auther: 胡锐
* @Description:
* @Date: 2021/3/9 20:58
*/
@Controller
@RequestMapping(value = "/highMerchantStore")
@Api(value = "商户门店接口")
public class HighMerchantStoreController {
private static Logger log = LoggerFactory.getLogger(HighMerchantStoreController.class);
@Autowired
private UserCenter userCenter;
@Resource
private CommonService commonService;
@Resource
private HighMerchantStoreService highMerchantStoreService;
@Resource
private BsCompanyService bsCompanyService;
@Resource
private HighMerchantService highMerchantService;
@Resource
private SecUserService secUserService;
@RequestMapping(value="/insertMerchantStore",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "增加商户门店")
public ResponseData insertMerchantStore(@RequestBody HighMerchantStoreModel highMerchantStore, HttpServletRequest request) {
try {
//发布人员
SessionObject sessionObject = userCenter.getSessionObject(request);
UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject();
if (userInfoModel.getMerchant() == null) {
log.error("HighMerchantController -> insertMerchantStore() error!","该主角色没有权限");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, "");
}
if (highMerchantStore.getRegionId() == null
|| StringUtils.isBlank(highMerchantStore.getStoreName())
|| StringUtils.isBlank(highMerchantStore.getContactName())
|| StringUtils.isBlank(highMerchantStore.getTelephone())
|| StringUtils.isBlank(highMerchantStore.getAddress())
|| StringUtils.isBlank(highMerchantStore.getLatitude())
|| StringUtils.isBlank(highMerchantStore.getLongitude())
|| highMerchantStore.getPrestoreType() == null
) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 校验商户
HighMerchant merchant = highMerchantService.getMerchantById(userInfoModel.getMerchant().getId());
if (merchant == null) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!","未找到商户");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MERCHANT_NOF_FOUND, "");
}
BsCompany company = bsCompanyService.getCompanyById(merchant.getCompanyId());
if (company == null) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!","未找到分公司");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MERCHANT_NOF_FOUND, "");
}
Map<String, SecRegion> regionMap = commonService.getParentInfoByRegionId(highMerchantStore.getRegionId());
if (highMerchantStore.getType() != null && highMerchantStore.getType().equals(1)) {
highMerchantStore.setRegionId(Long.parseLong(company.getRegionId()));
highMerchantStore.setRegionName(commonService.getRegionName(Long.parseLong(company.getRegionId())));
} else {
// 如果是重庆市的区县,使用重庆市的区域代码
if (regionMap.get("region").getRegionId().intValue() == 500100) {
highMerchantStore.setRegionId(regionMap.get("region").getParentId());
highMerchantStore.setRegionName(regionMap.get("region").getRegionName());
} else {
highMerchantStore.setRegionId(regionMap.get("region").getRegionId());
highMerchantStore.setRegionName(regionMap.get("region").getRegionName());
}
}
if (highMerchantStore.getBrandId() != null) {
highMerchantStore.setBrandName(commonService.getDictionaryCodeName("MERCHANT_STORE_BRANCH", highMerchantStore.getBrandId().toString()));
}
// 加油站没有设置图片的情况,默认设置
if (highMerchantStore.getType().equals(1) && StringUtils.isBlank(highMerchantStore.getStoreLogo())) {
highMerchantStore.setStoreLogo(CommonSysConst.getSysConfig().getGasDefaultOilStationImg());
}
highMerchantStore.setCreateTime(new Date());
highMerchantStore.setUpdateTime(new Date());
highMerchantStore.setStatus(1); // 状态:0:删除,1:正常
highMerchantStore.setCompanyId(merchant.getCompanyId());
highMerchantStore.setMerchantId(merchant.getId());
highMerchantStore.setOperatorId(userInfoModel.getSecUser().getId());
highMerchantStore.setOperatorName(userInfoModel.getSecUser().getUserName());
highMerchantStore.setSourceType(MerchantStoreSourceType.type1.getNumber());
highMerchantStoreService.insertMerchantStore(highMerchantStore);
return ResponseMsgUtil.success(highMerchantStore);
} catch (Exception e) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/importMerchantStore",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "导入商户门店")
public ResponseData importMerchantStore( @RequestParam(value = "file" , required = true) MultipartFile files,
HttpServletRequest request) {
try {
//发布人员
SessionObject sessionObject = userCenter.getSessionObject(request);
UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject();
if (userInfoModel.getMerchant() == null) {
log.error("HighMerchantController -> insertMerchantStore() error!","该主角色没有权限");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, "");
}
// 查找商户
HighMerchantModel merchant = highMerchantService.getMerchantById(userInfoModel.getMerchant().getId());
if(merchant == null) {
log.error("HighMerchantStoreController -> importMerchantStore() error!","未找到卡卷信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.NOT_FOUND_COUPON, "");
}
ImportStoreListener importStoreListener = new ImportStoreListener();
importStoreListener.initData(merchant,userInfoModel, highMerchantStoreService, commonService);
EasyExcel.read(files.getInputStream(), ImportStoreModel.class, importStoreListener).sheet().doRead();
Map<String, Object> map = new HashMap<>();
map.put("errorData", importStoreListener.getErrorData());
map.put("errorTotal", importStoreListener.getErrorData().size());
return ResponseMsgUtil.success(map);
} catch (Exception e) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/updateMerchantStore",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "修改商户门店")
public ResponseData updateMerchantStore(@RequestBody HighMerchantStoreModel highMerchantStore, HttpServletRequest request) {
try {
//发布人员
SessionObject sessionObject = userCenter.getSessionObject(request);
UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject();
if (userInfoModel.getMerchant() == null) {
log.error("HighMerchantController -> insertMerchantStore() error!","该主角色没有权限");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MENU_TREE_HAS_NOT_ERROR, "");
}
if (highMerchantStore.getRegionId() == null
|| highMerchantStore.getId() == null
|| StringUtils.isBlank(highMerchantStore.getStoreName())
|| StringUtils.isBlank(highMerchantStore.getContactName())
|| StringUtils.isBlank(highMerchantStore.getTelephone())
|| StringUtils.isBlank(highMerchantStore.getAddress())
|| StringUtils.isBlank(highMerchantStore.getLatitude())
|| StringUtils.isBlank(highMerchantStore.getLongitude())
) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!","参数错误");
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
// 查询门店
HighMerchantStoreModel store = highMerchantStoreService.getMerchantStoreById(highMerchantStore.getId());
if (store == null) {
log.error("BsStudentController --> addStudent() error!", "未找到门店信息");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到门店信息");
}
BsCompany company = bsCompanyService.getCompanyById(store.getCompanyId());
if (company == null) {
log.error("HighMerchantStoreController -> insertMerchantStore() error!","未找到分公司");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MERCHANT_NOF_FOUND, "");
}
Map<String, SecRegion> regionMap = commonService.getParentInfoByRegionId(highMerchantStore.getRegionId());
if (highMerchantStore.getType() != null && highMerchantStore.getType().equals(1)) {
highMerchantStore.setRegionId(Long.parseLong(company.getRegionId()));
highMerchantStore.setRegionName(commonService.getRegionName(Long.parseLong(company.getRegionId())));
} else {
// 如果是重庆市的区县,使用重庆市的区域代码
if (regionMap.get("region").getRegionId().intValue() == 500100) {
highMerchantStore.setRegionId(regionMap.get("region").getParentId());
highMerchantStore.setRegionName(regionMap.get("region").getRegionName());
} else {
highMerchantStore.setRegionId(regionMap.get("region").getRegionId());
highMerchantStore.setRegionName(regionMap.get("region").getRegionName());
}
}
if (highMerchantStore.getBrandId() != null) {
store.setBrandId(highMerchantStore.getBrandId());
store.setBrandName(commonService.getDictionaryCodeName("MERCHANT_STORE_BRANCH", highMerchantStore.getBrandId().toString()));
}
// 加油站没有设置图片的情况,默认设置
if (highMerchantStore.getType().equals(1) && StringUtils.isBlank(highMerchantStore.getStoreLogo())) {
store.setStoreLogo(CommonSysConst.getSysConfig().getGasDefaultOilStationImg());
}
store.setType(highMerchantStore.getType());
store.setStoreLogo(highMerchantStore.getStoreLogo());
store.setStoreName(highMerchantStore.getStoreName());
store.setContactName(highMerchantStore.getContactName());
store.setTelephone(highMerchantStore.getTelephone());
store.setAddress(highMerchantStore.getAddress());
store.setLatitude(highMerchantStore.getLatitude());
store.setLongitude(highMerchantStore.getLongitude());
store.setDeviceSn(highMerchantStore.getDeviceSn());
store.setDeviceKey(highMerchantStore.getDeviceKey());
store.setDeviceName(highMerchantStore.getDeviceName());
store.setUpdateTime(new Date());
store.setOperatorId(userInfoModel.getSecUser().getId());
store.setOperatorName(userInfoModel.getSecUser().getUserName());
highMerchantStoreService.updateMerchantStore(store);
return ResponseMsgUtil.success(store);
} catch (Exception e) {
log.error("HighMerchantStoreController -> editMerchantStore() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/deleteMerchantStore",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "删除商户门店")
public ResponseData deleteMerchantStore(@RequestParam(name = "id", required = true) Long id) {
try {
// 商户门店
HighMerchantStore merchantStore = highMerchantStoreService.getMerchantStoreById(id);
if(merchantStore == null) {
log.error("HighMerchantStoreController -> deleteMerchantStore() error!","未找到商户门店");
throw ErrorHelp.genException(SysCode.System, ErrorCode.MERCHANT_STORE_NOF_FOUND, "");
}
highMerchantStoreService.deleteMerchantStore(id);
return ResponseMsgUtil.success("操作成功");
} catch (Exception e) {
log.error("HighMerchantStoreController -> deleteMerchantStore() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/getMerchantStoreById",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据id查询商户门店")
public ResponseData getMerchantStoreById(@RequestParam(name = "id", required = true) Long id) {
try {
return ResponseMsgUtil.success(highMerchantStoreService.getMerchantStoreById(id));
} catch (Exception e) {
log.error("HighMerchantStoreController -> getMerchantStoreById() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/getStoreListByCompany",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据公司 查询商户门店列表")
public ResponseData getStoreListByCompany(@RequestParam(name = "merchantId", required = false) Long merchantId,
@RequestParam(name = "telephone", required = false) String telephone,
@RequestParam(name = "storeName", required = false) String storeName,
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize,
HttpServletRequest request) {
try {
SessionObject sessionObject = userCenter.getSessionObject(request);
UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject();
if (userInfoModel.getBsCompany() == null) {
log.error("HighMerchantStoreController -> getStoreListByCompany() error!","权限不足");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, "");
}
Map<String, Object> map = new HashMap<>();
map.put("companyId", userInfoModel.getBsCompany().getId());
map.put("merchantId", merchantId);
map.put("telephone", telephone);
map.put("storeName", storeName);
PageHelper.startPage(pageNum, pageSize);
return ResponseMsgUtil.success(new PageInfo<>(highMerchantStoreService.getMerchantStoreList(map)));
} catch (Exception e) {
log.error("HighMerchantStoreController -> getStoreListByCompany() error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/getStoreListByMerchant",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "根据商户 查询门店列表")
public ResponseData getStoreListByMerchant(@RequestParam(name = "telephone", required = false) String telephone,
@RequestParam(name = "storeName", required = false) String storeName,
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize,
HttpServletRequest request) {
try {
SessionObject sessionObject = userCenter.getSessionObject(request);
UserInfoModel userInfoModel = (UserInfoModel) sessionObject.getObject();
if (userInfoModel.getMerchant() == null) {
log.error("HighMerchantStoreController -> getStoreListByMerchant() error!","权限不足");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMPETENCE_INSUFFICIENT, "");
}
Map<String, Object> map = new HashMap<>();
map.put("merchantId", userInfoModel.getMerchant().getId());
map.put("telephone", telephone);
map.put("storeName", storeName);
PageHelper.startPage(pageNum, pageSize);
return ResponseMsgUtil.success(new PageInfo<>(highMerchantStoreService.getMerchantStoreList(map)));
} catch (Exception e) {
log.error("HighMerchantStoreController -> getStoreListByMerchant() error!",e);
return ResponseMsgUtil.exception(e);
}
}
}