nickchange
2023-10-17 a830a73fd10a21e3793c79a35be4e532de124c6f
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -9,17 +9,18 @@
import com.dsh.course.feignClient.account.model.CityManager;
import com.dsh.course.feignClient.account.model.QueryByNamePhone;
import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.account.model.TCityManager;
import com.dsh.course.feignClient.activity.CouponClient;
import com.dsh.course.feignClient.activity.PointMercharsClient;
import com.dsh.course.feignClient.activity.model.*;
import com.dsh.course.feignClient.course.CourseClient;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.core.base.tips.ErrorTip;
import com.dsh.guns.core.base.tips.SuccessTip;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.CouponDataVo;
import com.dsh.guns.modular.system.model.Region;
import com.dsh.guns.modular.system.model.TCity;
import com.dsh.guns.modular.system.model.TStore;
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.service.ICityService;
import com.dsh.guns.modular.system.service.IRegionService;
import com.dsh.guns.modular.system.service.IStoreService;
@@ -32,11 +33,10 @@
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@@ -46,11 +46,12 @@
@Controller
@RequestMapping("/tGoods")
public class TGoodsController {
public class TGoodsController extends BaseController {
    private String PREFIX = "/system/tGoods/";
    private String PREFIX1 = "/system/tGoodsAudit/";
    @Resource
@@ -70,6 +71,9 @@
    @Autowired
    private ICityService cityService;
    @Autowired
    private CourseClient courseClient;
    @Resource
    private PointMercharsClient pointMercharsClient;
@@ -83,6 +87,10 @@
        return PREFIX + "TGoods.html";
    }
    @RequestMapping("/audit")
    public String audit(Model model) {
        return PREFIX1 + "TGoodsAudit.html";
    }
    /**
     * 跳转到添加
@@ -94,7 +102,72 @@
        model.addAttribute("userType",objectType);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",list);
        List<Map<String,Object>> listOne =  courseClient.getPageageType();
        model.addAttribute("courseType",listOne);
        return PREFIX + "TGoods_add.html";
    }
    /**
     * 跳转到添加
     */
    @RequestMapping("/tGoods_info")
    public String tGoodsInfo(Model model) {
        Integer objectType = UserExt.getUser().getObjectType();
        System.out.println(objectType);
        model.addAttribute("userType",objectType);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",list);
        return PREFIX + "TGoods_detail_one.html";
    }
    @RequestMapping("/goods_info/{id}")
    public String memberCouponInfo(@PathVariable Integer id, Model model) {
        PointsMerchandise pointMercharsVo = pointMercharsClient.queryPointMerchaseById(id);
        model.addAttribute("item",pointMercharsVo);
        if(pointMercharsVo.getType()==2){
            Date startTime = pointMercharsVo.getStartTime();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            model.addAttribute("sTime",format.format(startTime));
            model.addAttribute("eTime",format.format(pointMercharsVo.getEndTime()));
            Integer shopId = pointMercharsClient.getshopName(id);
            TStore byId = storeService.getById(shopId);
            model.addAttribute("shopName",byId.getName());
            Integer coursePackageId = pointMercharsVo.getCoursePackageId();
            List<String> name = courseClient.queryPackageById(coursePackageId);
            Integer coursePackageId1 = pointMercharsVo.getCoursePackageId();
            String classHours = courseClient.getHours(coursePackageId1);
            model.addAttribute("typeName",name.get(0));
            model.addAttribute("pageName",name.get(1));
            model.addAttribute("classHours",classHours);
            String productImages = pointMercharsVo.getProductImages();
            ArrayList<String> strings = new ArrayList<>();
            for (String s : productImages.split(",")) {
                strings.add(s);
            }
            model.addAttribute("pictures",strings);
            return PREFIX + "TGoods_detail_two.html";
        }else {
            GoodsInfoOneVo infoOneVo = pointMercharsClient.queryDetailsOfGoods(id);
            System.out.println("pointMercharsVo:"+infoOneVo);
            model.addAttribute("item",infoOneVo);
            String[] split = infoOneVo.getPics().split(",");
            List<String> list = Arrays.asList(split);
            if (infoOneVo.getUseScope() == 2){
                List<StoreVos> provinces = pointMercharsClient.getProvinces(id);
                model.addAttribute("city",provinces);
            }
            if (infoOneVo.getUseScope() == 2){
                List<StoreVos> storeVos = pointMercharsClient.getStoreList(id);
                model.addAttribute("store",storeVos);
            }
            model.addAttribute("pictures",list);
            model.addAttribute("exchangeMethod",infoOneVo.getExchangeMethod());
            return PREFIX + "TGoods_detail_one.html";
        }
    }
@@ -172,7 +245,20 @@
     */
    @RequestMapping("/storeList")
    public String storePage(Model model) {
        List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",provinceList);
        return PREFIX + "TStoreList.html";
    }
    /**
     * 跳转到门店管理列表页
     */
    @RequestMapping("/storeList1")
    public String storePage1(Model model) {
        List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",provinceList);
        return PREFIX + "TStoreListOne.html";
    }
    @RequestMapping("/updateType")
    @ResponseBody
@@ -215,23 +301,6 @@
        return storeList;
    }
//    /**
//     * 获取 优惠券管理
//     */
//    @RequestMapping(value = "/list")
//    @ResponseBody
//    public Object listOfDatas(String name, Integer type, Integer distributionMethod , Integer userPopulation, Integer status, Integer state) {
//        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
//        CouponListOfSearch ofSearch = new CouponListOfSearch();
//        ofSearch.setPage(page);
//        ofSearch.setName(name);
//        ofSearch.setType(type);
//        ofSearch.setDistributionMethod(distributionMethod);
//        ofSearch.setUserPopulation(userPopulation);
//        ofSearch.setStatus(status);
//        ofSearch.setState(state);
//        return client.getCouponListOfSearch(ofSearch);
//    }
    @RequestMapping(value = "/listRecord")
    @ResponseBody
    public Object listRecord(Integer id,String name, Integer type, String phone) {
@@ -318,15 +387,131 @@
        client.insertIntoData(dataVo);
        return new SuccessTip<>();
    }
    /**
     *  编辑 商品详情
     * @param pointMerchandiseId 商品Id
     * @param quantityIssued 发放数量
     * @param pickUpQuantity 限领数量
     * @param redemptionInstructions 说明
     * @param cover 封面图
     * @param productImages 商品图片
     * @param sort 排序
     * @return
     */
    @PostMapping(value = "/update")
    @ResponseBody
    public Object update( Integer id,Integer num,Integer num1,String text){
        Coupon coupon = client.queryCouponById(id);
        coupon.setQuantityIssued(num);
        coupon.setPickUpQuantity(num1);
        coupon.setIllustrate(text);
        client.updateCouponData(coupon);
    public Object update( Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity,String redemptionInstructions,String cover,String productImages,Integer sort){
        Map<String, Object> stringObjectHashMap = new HashMap<>();
        stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId);
        stringObjectHashMap.put("quantityIssued",quantityIssued);
        stringObjectHashMap.put("pickUpQuantity",pickUpQuantity);
        stringObjectHashMap.put("redemptionInstructions",redemptionInstructions);
        stringObjectHashMap.put("cover",cover);
        stringObjectHashMap.put("productImages",productImages);
        stringObjectHashMap.put("sort",sort);
        System.out.println(stringObjectHashMap);
        pointMercharsClient.updateGoodsDetail(stringObjectHashMap);
        return new SuccessTip<>();
    }
    /*
    ajax.set("typeAll",typeAll);
        ajax.set("provinceCode",pCode);
        ajax.set("cityCode",cCode);
        ajax.set("storeId",storeId);
        ajax.set("coursePackageTypeId",coursePackageTypeId);
        ajax.set("coursePackageId",coursePackageId);
        ajax.set("coursePackageConfigId",coursePackageConfigId);
        ajax.set("price",price);
        ajax.set("type",type);
        ajax.set("integral",integral);
        ajax.set("cash",cash);
        ajax.set("cover",cover1);
        ajax.set("imgOne",imgOne);
        ajax.set("userPopulation",userPopulation);
        ajax.set("quantityIssued",quantityIssued);
        ajax.set("pickUpQuantity",pickUpQuantity);
        ajax.set("startTime",startTime);
        ajax.set("text",text);
        ajax.set("sort",sort);
        ajax.set("useScope",company);
        ajax.set("cityIds",cts);
        ajax.set("storeIds",stores);
     */
    @PostMapping(value = "/add")
    @ResponseBody
    public Object add( Integer typeAll,String provinceCode,String cityCode,Integer storeId,Integer coursePackageTypeId,Integer coursePackageId,Integer coursePackageConfigId,
                       Double price,Integer type,Integer integral,Double cash,String cover,String imgOne,Integer userPopulation,Integer quantityIssued,Integer pickUpQuantity,
                       String startTime,String text,Integer sort,String name,Integer useScope,String cityIds,String storeIds,Integer cardType
    ) throws ParseException {
        PointsMerchandise pointsMerchandise = new PointsMerchandise();
        pointsMerchandise.setType(typeAll);
        pointsMerchandise.setName(name);
        pointsMerchandise.setCoursePackageId(coursePackageId);
        pointsMerchandise.setPrice(new BigDecimal(price));
        pointsMerchandise.setRedemptionMethod(type);
        if(type==2 || type==3){
            pointsMerchandise.setCash(new BigDecimal(cash));
        }
        if(type==1 || type==2){
            pointsMerchandise.setIntegral(integral);
        }
        pointsMerchandise.setCover(cover);
        pointsMerchandise.setProductImages(imgOne);
        pointsMerchandise.setUserPopulation(userPopulation);
        pointsMerchandise.setCardType(cardType);
        pointsMerchandise.setQuantityIssued(quantityIssued);
        pointsMerchandise.setPickUpQuantity(pickUpQuantity);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        pointsMerchandise.setStartTime(format.parse(startTime.split(" - ")[0]));
        pointsMerchandise.setEndTime(format.parse(startTime.split(" - ")[1]));
        pointsMerchandise.setUseScope(useScope);
        if(ToolUtil.isNotEmpty(provinceCode)){
            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, provinceCode));
            pointsMerchandise.setProvinceCode(provinceCode);
            pointsMerchandise.setProvince(one.getName());
        }
        if(ToolUtil.isNotEmpty(cityCode)){
            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode));
            pointsMerchandise.setCityCode(cityCode);
            pointsMerchandise.setCity(one.getName());
        }
        pointsMerchandise.setRedemptionInstructions(text);
        pointsMerchandise.setSort(sort);
        pointsMerchandise.setState(1);
        pointsMerchandise.setInsertTime(new Date());
        pointsMerchandise.setCoursePackageConfigId(coursePackageConfigId);
        // 代替storeId
        pointsMerchandise.setShelves(1);
        Integer id = pointMercharsClient.add(pointsMerchandise);
        if(typeAll!=2){
            if(useScope==2){
                ArrayList<Map<String,String>> objects = new ArrayList<>();
                for (String s : cityIds.split(",")) {
                    TCity tCity = cityService.getById(Integer.valueOf(s));
                    HashMap<String, String> map = new HashMap<>();
                    TCity pCity = cityService.getById(tCity.getParentId());
                    map.put("pName",pCity.getName());
                    map.put("pCode",pCity.getCode());
                    map.put("cName",tCity.getName());
                    map.put("cCode",tCity.getCode());
                    map.put("id",id.toString());
                    objects.add(map);
                }
                pointMercharsClient.addCitys(objects);
            }else if(useScope==3){
                String pam = id+"_"+storeIds;
                // 添加多个城市 门店
                try{
                    pointMercharsClient.addOther(pam);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        return new SuccessTip<>();
    }
@@ -349,6 +534,177 @@
        System.out.println(ofSearch);
        return pointMercharsClient.getIntegralGoodsListOfSearch(ofSearch);
    }
    @RequestMapping(value = "/listAudit")
    @ResponseBody
    public Object listOfIntegralGoodsAudit(String name, Integer type, Integer redemptionMethod , Integer userPopulation, Integer activeStatus) {
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        IntegralGoodsOfSearch ofSearch = new IntegralGoodsOfSearch();
        ofSearch.setPage(page);
        ofSearch.setName(name);
        ofSearch.setType(type);
        ofSearch.setRedemptionMethod(redemptionMethod);
        ofSearch.setUserPopulation(userPopulation);
        ofSearch.setActiveStatus(activeStatus);
        return pointMercharsClient.getIntegralGoodsListOfSearchAudit(ofSearch);
    }
    @RequestMapping(value = "/updateTypeOne")
    @ResponseBody
    public Object updateTypeOne(Integer id, Integer type, String remark) {
        Object o = pointMercharsClient.updateType(id + "_" + type + "_" + remark);
        return SUCCESS_TIP;
    }
    /**
     * 跳转到修改商品详情
     */
    @RequestMapping("/tGoods_update/{id}")
    public String tCityUpdate(@PathVariable Integer id, Model model) {
        System.out.println("id:"+id);
        PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
        System.out.println("pointMercharsVo:"+pointMercharsVo);
        String[] split = pointMercharsVo.getPics().split(",");
        StringBuilder concatenatedString = new StringBuilder();
        for (String element : split) {
            concatenatedString.append(element).append(",");
        }
        // 去除末尾的逗号
        if (concatenatedString.length() > 0) {
            concatenatedString.setLength(concatenatedString.length() - 1);
        }
        String result = concatenatedString.toString();
        model.addAttribute("id",id);
        model.addAttribute("item",pointMercharsVo);
        model.addAttribute("pictures",result);
        return PREFIX + "TGoods_edit.html";
    }
    /**
     *  上下架处理操作
     * @param id 商品id
     * @param type 1=上架操作 2=下架操作
     * @return
     */
    @RequestMapping("/grounding")
    @ResponseBody
    public Object updateGrounding(Integer id,Integer type) {
        System.out.println(id);
        System.out.println(type);
        Map<String,Integer> map = new HashMap<>();
        map.put("id",id);
        map.put("type",type);
        boolean b = pointMercharsClient.updateGoodsGroudingStatus(map);
        System.out.println(b);
        return new SuccessTip<>();
    }
    /**
     *  购买详情
     * @param id 商品id
     * @return
     */
    @RequestMapping("/tPay_detail/{id}")
    public String payOfDetails(@PathVariable(value = "id") Integer id,Model model) {
        System.out.println(id);
        model.addAttribute("id",id);
        return PREFIX + "TGoods_pay.html";
    }
    /**
     *  购买详情
     * @param id 商品id
     * @return
     */
    @RequestMapping("/tPay_detail1/{id}")
    public String payOfDetailsOne(@PathVariable(value = "id") Integer id,Model model) {
        System.out.println(id);
        model.addAttribute("id",id);
        return PREFIX + "TGoods_payOne.html";
    }
    /**
     * 获取 购买记录列表
     */
    @ResponseBody
    @RequestMapping(value = "/payList/{id}")
    public Object payList(@PathVariable(value = "id") Integer id, String name, String phone, Integer status) {
        PointMercharsPayedVo  payedVo = new PointMercharsPayedVo();
        payedVo.setId(id);
        payedVo.setName(name);
        payedVo.setPhone(phone);
        payedVo.setStatus(status);
        List<Map<String,Object>> points = pointMercharsClient.queryUserPayedGoodsList(payedVo);
            System.out.println(points);
        if (points.size() > 0 ){
            for (Map<String, Object> point : points) {
                Object id1 = point.get("id");
                String idAsString = String.valueOf(id1);
                // 移除原始的 "id" 键
                point.remove("id");
                // 将字符串类型的 "id" 放回 Map 对象中
                point.put("id", idAsString);
                Integer userId = (Integer) point.get("userId");
                TAppUser tAppUser = appUserClient.queryById(userId);
                if (ToolUtil.isNotEmpty(tAppUser)){
                    point.put("name",tAppUser.getName());
                    point.put("phone",tAppUser.getPhone());
                }
            }
            if (ToolUtil.isNotEmpty(name)){
                points = points.stream()
                        .filter(data -> {
                            String obtName = (String) data.get("name");
                            return obtName != null && obtName.contains(name);
                        })
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(phone)){
                points = points.stream()
                        .filter(data -> {
                            String obtPhone = (String) data.get("phone");
                            return obtPhone != null && obtPhone.contains(phone);
                        })
                        .collect(Collectors.toList());
            }
        }
        return points;
    }
    /**
     *  核销操作
     * @param id 商品id
     * @return
     */
    @RequestMapping("/write_off")
    @ResponseBody
    public Object GoodsWriteOff(String id){
        Integer objectType = UserExt.getUser().getObjectType();
        Map<String, Object> stringObjectHashMap = new HashMap<>();
        stringObjectHashMap.put("goodsId",id);
        stringObjectHashMap.put("managerId",objectType);
        boolean b = pointMercharsClient.writeOffGoodsStatus(stringObjectHashMap);
        System.out.println(b);
        if (b){
            return new SuccessTip<>();
        }else {
            return ERROR;
        }
    }